Adding membership relationships to ISO 15926-2 in OWL

Status of this document: Sketch

Author:

  • Martin G. Skjæveland, DNV

Contents

  1. Abstract
  2. Introduction
  3. OWL representation
  4. Identified membership relationships in ISO 15926-2
    1. "Class Of X", "X" and supporting definition
    2. "Class of X" and "not X", but supporting definition
  5. Candidate membership relationships in ISO 15926-2
    1. Class of X and X, but no supporting definition
    2. Class Of X, but no X
    3. Other
  6. Implementation in OWL

Abstract

This article suggests a formalization of the membership relationships expressed more or less informally in the text definition of the entity types of ISO 15926-2:2003 and how they may be expressed in OWL.


Introduction

ISO 15926-2 defines a quite substantial hierarchy of membership relationships. An example of one such sub hierarchy is the following:

A class_of_class_of_individual is a class_of_class whose members are instances of class_of_individual. (ISO 15926-2:2003, p. 166)

A class_of_individual is a class whose members are instances of possible_individual. (ISO 15926-2:2003, p. 117)

Figure 1: An example of a membership hierarchy. ROTATING MECHANICAL EQUIPMENT CLASS is an instance of class_of_class_of_individual and PUMP, a member of ROTATING MECHANICAL EQUIPMENT CLASS, is an instance of class_of_individual. PUMP has the member #TheOldPumpInMyGarage which is an instance of possible_individual.

However, this hierarchy is not included in the EXPRESS listing of ISO 15926-2 due to what seems to be lack of expressiveness in the EXPRESS language:

It should be noted that the EXPRESS subtypes of class defined in this part of ISO 15926 are instances of class_of_class, though the EXPRESS language specification does not allow this to be stated (ISO 15926-2:2003, p. 37).

This information is naturally therefore not included in the OWL representation of the EXPRESS file, since this file is the source of data for the resulting OWL file. (Read more: ISO15926inOWLtranslateEXPRESStoOWL.) The membership relation/(Classification) is together with the specialization relation the most fundamental way to describe the universe of interest. Capturing this information is important to ensure that the ISO 15926-2 data model is used as intended.

OWL representation

The membership relation is represented in ISO 15926-2 using the entity type CLASSIFICATION: classification is a relationship that indicates membership of a class (ISO 15926-2:2003, p. 33). The EXPRESS definition is

ENTITY classification
  SUBTYPE OF (relationship);
    classified 	 :  	thing;
    classifier 	 :  	class;
END_ENTITY;

Figure 2: An example of how membership relationships are expressed using ISO 15926-2. To state that "#TheOldPumpInMyGarage is a member of PUMP" an instance of classification, #12345, has #TheOldPumpInMyGarage as its classified value and PUMP as its classifier value.

The corresponding OWL definition of Classification in the OWL file http://rds.posccaesar.org/2008/02/OWL/ISO-15926-2_2003 is

Class: Classification
    SubClassOf: 
        Relationship,
        hasClassified exactly 1 Thing,
        hasClassifier exactly 1 Class

This definition restricts/requires instances of Classification to have exactly one hasClassified value of type Class and exactly one hasClassifier value of type Thing, i.e., informally a classification must have exactly one classified, which must be a Thing, and one classifier, which must be a Class.

The owl:ObjectProperties hasClassified and hasClassifier are defined in ISO 15926-2 OWL as

ObjectProperty: hasClassifier
  Domain: 
    Classification

ObjectProperty: hasClassified
  Domain: 
    Classification

This definition restricts the use of the ObjectProperties hasClassified and hasClassifier. The domain of both properties is Classification. Informally this means that only classifications may have classifiers and classifieds.

However, these definitions does not restrict the use of Classification for specific entity types, e.g., for instances of ClassOfIndividual such that "A class_of_individual is a class whose members are instances of possible_individual (ISO 15926-2:2003, p. 117)". We need to put local restrictions on the use of Classification on specific entity types. To be able to do so we define the inverse ObjectProperies of hasClassifier and hasClassified, respectively isClassifierIn and isClassifiedIn:

ObjectProperty: isClassifierIn
  Inverses: 
    hasClassifier

ObjectProperty: isClassifiedIn
  Inverses: 
    hasClassified

This allows us to state in OWL that "a ClassOfIndividual may only be a classifier in a Classification which has a PossibleIndividual as classified":

Class: ClassOfIndividual
  SubClassOf: 
    isClassifierIn only (hasClassified only PossibleIndividual)

and "a PossibleIndividual may only be classified in a Classification which has a ClassOfIndividual as classifier":

Class: PossibleIndividual
  SubClassOf: 
    isClassifiedIn only (hasClassifier only ClassOfIndividual)

We have now established the necessary vocabulary to state the membership relationships in ISO 15926-2 in the chosen OWL serialization. The following sections tries to identify all the membership relationships declared in the ISO 15926-2 text.

Identified membership relationships in ISO 15926-2

"Class Of X", "X" and supporting definition

The following table lists pairs of entity types (Class Of X, X) where the definition of Class Of X contains the following or a similar passage: "A <class_of_X> is a <[some "supertype" of class_of_X]> whose members are instances of <X>".

Class Of X X Excerpt from definition of "Class of X"
ClassOfAbstractObject AbstractObject A <class_of_abstract_object> is a <class> whose members classify members of <abstract_object>.
ClassOfActivity Activity A <class_of_activity> is a <class_of_arranged_individual> whose members are instances of <activity>.
ClassOfApproval Approval A <class_of_approval> is a <class_of_relationship> whose members are members of <approval> ...
ClassOfArrangementOfIndividual ArrangementOfIndividual A <class_of_arrangement_of_individual> is a <class_of_composition_of_individual> whose members are instances of <arrangement_of_individual>.
ClassOfAssemblyOfIndividual AssemblyOfIndividual A <class_of_assembly_of_individual> is a <class_of_arrangement_of_individual> whose members are instances of <assembly_of_individual>.
ClassOfClass Class A <class_of_class> is a <class> whose members are instances of <class>.
ClassOfClassOfDefinition ClassOfDefinition A <class_of_class_of_definition> is a <class_of_class_of_representation> whose members are members of <class_of_definition>.
ClassOfClassOfDescription ClassOfDescription A <class_of_class_of_description> is a <class_of_class_of_representation> whose members are members of <class_of_description>.
ClassOfClassOfIdentification ClassOfIdentification A <class_of_class_of_identification> is a <class_of_class_of_representation> whose members are members of <class_of_identification>.
ClassOfClassOfIndividual ClassOfIndividual A <class_of_class_of_individual> is a <class_of_class> whose members are instances of <class_of_individual>.
ClassOfClassOfRelationship ClassOfRelationship A <class_of_class_of_relationship> is a <class_of_class> whose members are instances of <class_of_relationship>.
ClassOfClassOfRelationshipWithSignature ClassOfRelationshipWithSignature An <class_of_class_of_relationship_with_signature> is a <class_of_class_of_relationship> and <class_of_relationship_with_signature>.
ClassOfClassOfRepresentationTranslation ClassOfRepresentationTranslation A <class_of_class_of_representation_translation> is a <class_of_class_of_relationship> whose members are members of <class_of_representation_translation>.
ClassOfClassOfResponsibilityForRepresentation ClassOfResponsibilityForRepresentation A <class_of_class_of_responsibility_for_representation> is a <class_of_class_of_relationship> whose members are members of <class_of_responsibility_for_representation> ...
ClassOfClassOfUsageOfRepresentation ClassOfUsageOfRepresentation A <class_of_class_of_usage_of_representation> is a <class_of_class_of_relationship> whose members are members of <class_of_usage_of_representation> ...
ClassOfClassification Classification A <class_of_classification> is a <class_of_relationship> whose members are members of <classification>.
ClassOfCompositionOfIndividual CompositionOfIndividual A <class_of_composition_of_individual> is a <class_of_relationship> whose members are members of <composition_of_individual>.
ClassOfConnectionOfIndividual ConnectionOfIndividual A <class_of_connection_of_individual> is a <class_of_relationship> whose members are members of <connection_of_individual>.
ClassOfContainmentOfIndividual ContainmentOfIndividual A <class_of_containment_of_individual> is a <class_of_relative_location> whose members are instances of <containment_of_individual>.
ClassOfDirectConnection DirectConnection A <class_of_direct_connection> is a <class_of_connection_of_individual> whose members are members of <direct_connection>.
ClassOfEvent Event A <class_of_event> is a <class_of_individual> whose members are members of <event>.
ClassOfFeatureWholePart FeatureWholePart A <class_of_feature_whole_part> is a <class_of_arrangement_of_individual> whose members are instances of <feature_whole_part>.
ClassOfIndirectConnection IndirectConnection A <class_of_indirect_connection> is a <class_of_connection_of_individual> whose members are members of <indirect_connection>.
ClassOfIndividualUsedInConnection IndividualUsedInConnection A <class_of_individual_used_in_connection> is a <class_of_relationship> whose members are members of <individual_used_in_connection>.
ClassOfInvolvementByReference InvolvementByReference A <class_of_involvement_by_reference> is a <class_of_relationship> whose members are instances of <involvement_by_reference>.
ClassOfLifecycleStage LifecycleStage A <class_of_lifecycle_stage> is a <class_of_relationship> whose members are members of <lifecycle_stage>.
ClassOfMultidimensionalObject MultidimensionalObject A <class_of_multidimensional_object> is a <class> whose members are instances of <multidimensional_object>.
ClassOfPeriodInTime PeriodInTime A <class_of_period_in_time> is a <class_of_individual> whose members are instances of <period_in_time>.
ClassOfPointInTime PointInTime A <class_of_point_in_time> is a <class_of_event> whose members are members of <point_in_time>.
ClassOfProperty Property A <class_of_property> is a <class_of_class_of_individual> whose members are instances of <property>.
ClassOfPropertySpace PropertySpace A <class_of_property_space> is a <class_of_class> whose members are members of <property_space>.
ClassOfRelationship Relationship A <class_of_relationship> is a <class_of _abstract_object> whose members are members of <relationship>.
ClassOfRelativeLocation RelativeLocation A <class_of_relative_location> is a <class_of_relationship> whose members are instances of <relative_location>.
ClassOfScale Scale A <class_of_scale> is a <class_of_class_of_relationship> whose members are instances of <scale>.
ClassOfShape Shape A <class_of_shape> is a <property_space> that has instances of <shape> as its members.
ClassOfSpecialization Specialization A <class_of_specialization> is a <class_of_relationship> whose members are instances of <specialization>.
ClassOfStatus Status A <class_of_status> is a <class_of_class_of_individual> whose members are a <status>.
ClassOfTemporalWholePart TemporalWholePart A <class_of_temporal_whole_part> is a <class_of_composition_of_individual> whose members are members of <temporal_whole_part>.

"Class of X" and "not X", but supporting definition

The following table lists pairs of entity types where the name of the first (Class of X) is not the result of prefixing the second entity type (not X) with "ClassOf", however, the definition of Class Of X contains the following or a similar passage: "A <class_of_X> is a <[some "supertype" of class_of_X]> whose members are instances of <not X>".

Class of X not X Definition of "Class of X"
ClassOfClassOfRepresentation ClassOfRepresentationOfThing A <class_of_class_of_representation> is a <class_of_class_of_relationship> whose members are instances of <class_of_representation_of_thing>.
ClassOfIndividual PossibleIndividual A <class_of_individual> is a class whose members are instances of <possible_individual>.
ClassOfNumber ArithmeticNumber A <class_of_number> is a <class_of_class> whose members are members of <arithmetic_number>.
ClassOfClassOfComposition ClassOfCompositionOfIndividual A <class_of_class_of_composition> is a <class_of_class_of_relationship> whose members are instances of <class_of_composition>. (NB! There is no entity type named "class_of_composition" so this, or "class_of_composition_of_individual", must be a typo.)

Candidate membership relationships in ISO 15926-2

Class of X and X, but no supporting definition

The following table lists pairs of entity types (Class Of X, X) where the definition of Class Of X does not contain the following or a similar passage: "A <class_of_X> is a <[some "supertype" of class_of_X]> whose members are instances of <X>".

Class Of X X Definition of "Class of X"
ClassOfArrangedIndividual ArrangedIndividual A <class_of_arranged_individual> is a <class_of_individual> whose members are an arrangement of components.
ClassOfClassOfInformationRepresentation ClassOfInformationRepresentation A <class_of_class_of_information_representation> is a <class_of_class_of_individual> that classifies information representation classes.
ClassOfDefinition Definition A <class_of_definition> is a <class_of_representation_of_thing> that indicates the pattern is a definition of the represented <class>.
ClassOfDescription Description A <class_of_description> is a <class_of_representation_of_thing> that indicates the pattern is a description of the represented thing.
ClassOfFunctionalMapping FunctionalMapping A <class_of_functional_mapping> is a <class_of_relationship> that is a many to one mapping. A <class_of_functional_mapping> is a function.
ClassOfIdentification Identification A <class_of_identification> is a <class_of_representation_of_thing> that indicates that the pattern is used to refer to the represented thing.
ClassOfIndirectProperty IndirectProperty A <class_of_indirect_property> is a <class_of_relationship> that indicates that a member of the <class_of_individual> can possess a member of the <class_of_property> as an <indirect_property> of this type.
ClassOfIntendedRoleAndDomain IntendedRoleAndDomain A <class_of_intended_role_and_domain> is a <class_of_relationship> that indicates that a member of the <class_of_individual> is intended to act as a member of the <role_and_domain>.
ClassOfLeftNamespace LeftNamespace A <class_of_left_namespace> is a <class_of_namespace> that indicates that the class_of_part is the left namespace for the members of the class_of_class_of_whole.
ClassOfNamespace Namespace A <class_of_namespace> is a <class_of_class_of_relationship> that indicates that a <class_of_information_representation> is the class_of_part used as a namespace for each member of a <class_of_class_of_information_representation> that is the class_of_class_of_whole.
ClassOfParticipation Participation A <class_of_participation> is a <class_of_composition_of_individual> that indicates a member of an instance of <participating_role_and_domain> participates in a member of an instance of <class_of_activity>.
ClassOfPossibleRoleAndDomain PossibleRoleAndDomain A <class_of_possible_role_and_domain> is a <class of relationship> that indicates the <role_and_domain> that can be played by a member of the <class_of_individual>, in some <activity>.
ClassOfRecognition Recognition A <class_of_recognition> is a <class_of_relationship> that indicates that a member of a <class_of_activity> may result in the recognition of a member of a <class>.
ClassOfRepresentationOfThing RepresentationOfThing A <class_of_representation_of_thing> is a <class_of_relationship> that indicates that all members of the pattern <class_of_information_representation> represent the <thing>.
ClassOfResponsibilityForRepresentation ResponsibilityForRepresentation A <class_of_responsibility_for_representation> is a <class_of_relationship> whose members indicate that a <possible_individual> (usually an organization) deems that members of the pattern can be used as representations of the represented thing.
ClassOfRightNamespace RightNamespace A <class_of_right_namespace> is a <class_of_namespace> where the class_of_part is the namespace for the members of the class_of_class_of_whole.
ClassOfShapeDimension ShapeDimension A <class_of_shape_dimension> is a <class_of_class> that is a dimension of a <class_of_shape>.
ClassOfTemporalSequence TemporalSequence A <class_of_temporal_sequence> is a <class_of_relationship> where the sequence is of a temporal nature.
ClassOfUsageOfRepresentation UsageOfRepresentation A <class_of_usage_of_representation> is a <class_of_relationship> whose members indicate that a <possible_individual> (usually an organization) reads or otherwise uses members of the pattern as a representation of the represented thing.

Class Of X, but no X

The following table lists the entity types with a name starting with "class_of_" which is not listed in any other of the tables in this article and has no immediate identifiable "membership" entity type.

Class Of X ? Definition of "Class of X"
ClassOfApprovalByStatus A <class_of_approval_by_status> is a <class_of_relationship> that indicates a status of the approval that is independent of what is being approved by whom.
ClassOfAssertion A <class_of_assertion> is a <class_of_relationship> that describes the assertive nature of the member relations.
ClassOfAtom A <class_of_atom> is a <class_of_arranged_individual> whose members are atoms.
ClassOfBiologicalMatter A <class_of_biological_matter> is a <class_of_arranged_individual> whose members are particular types of cell or aggregations of cells.
ClassOfCauseOfBeginningOfClassOfIndividual A <class_of_cause_of_beginning_of_class_of_individual> is a <class_of_relationship> that indicates that a member of a <class_of_activity> causes the beginning of a member of a <class_of_individual>.
ClassOfCauseOfEndingOfClassOfIndividual A <class_of_cause_of_ending_of_class_of_individual> is a <class_of_relationship> that indicates that a member of the <class_of_activity> causes the ending of a member of the <class_of_individual>.
ClassOfCompositeMaterial A <class_of_composite_material> is a <class_of_arranged_individual> whose members have a common arrangement of separable compounds.
ClassOfCompound A <class_of_compound> is a <class_of_arranged_individual> whose members consist of arrangements of molecules of the same or different types, bound together by intermolecular forces. This includes both mixtures and alloys.
ClassOfDimensionForShape A <class_of_dimension_for_shape> is a <class_of_class_of_relationship> that indicates that members of the class_of_shape have a dimension that is a member of the class_of_dimension.
ClassOfExpressInformationRepresentation A <class_of_EXPRESS_information_representation> is a <class_of_information_representation> that is defined by ISO 10303-11.
ClassOfFeature A <class_of_feature> is a <class_of_arranged_individual> whose members are contiguous, non-separable parts of some <possible_individual> and have an incompletely defined boundary.
ClassOfFunctionalObject A <class_of_functional_object> is a <class_of_arranged_individual> that indicates the function or purpose of an object.
ClassOfInanimatePhysicalObject A <class_of_inanimate_physical_object> is a <class_of_arranged_individual> whose members are not living.
ClassOfInformationObject A <class_of_information_object> is a <class_of_arranged_individual> whose members are members of zero or more <class_of_information_representation> and of zero or more <class_of_information_presentation>.
ClassOfInformationPresentation A <class_of_information_presentation> is a <class_of_arranged_individual> that distinguishes styles for presenting information.
ClassOfInformationRepresentation A <class_of_information_representation> is a <class_of_arranged_individual> that defines a pattern that represents information.
ClassOfIsomorphicFunctionalMapping A <class_of_isomorphic_functional_mapping> is a <class_of_functional_mapping> that is isomorphic.
ClassOfMolecule A <class_of_molecule> is a <class_of_arranged_individual> whose members are molecules.
ClassOfOrganism A <class_of_organism> is a <class_of_arranged_individual> whose members are living organisms.
ClassOfParticulateMaterial A <class_of_particulate_material> is a <class_of_arranged_individual> whose members are arranged amounts of super-molecular sized objects of the same or different types.
ClassOfPerson A <class_of_person> is a <class_of_organism> whose members are people.
ClassOfRelationshipWithRelatedEnd1 A <class_of_relationship_with_related_end_1> is a <class_of_relationship> where a particular <thing> is related in the <class_of_relationship>, rather than the members of a <class>. The related <thing> plays the <role_and_domain> indicated by the class_of_end_1 attribute.
ClassOfRelationshipWithRelatedEnd2 A <class_of_relationship_with_related_end_2> is a <class_of_relationship> where a particular <thing> is related in the <class_of_relationship>, rather than the members of a <class>. The related <thing> plays the <role_and_domain> indicated by the class_of_end_2 attribute.
ClassOfRelationshipWithSignature A <class_of_relationship_with_signature> is a <class_of_relationship> that may have a <role_and_domain> specified for each end.
ClassOfRepresentationTranslation A <class_of_representation_translation> is a <class_of_relationship> that indicates the translation of two instances of <class_of_information_representation>.
ClassOfScaleConversion A <class_of_scale_conversion> is a <class_of_isomorphic_functional_mapping> that defines a conversion between two different scales of units used for the quantification of properties.
ClassOfSubAtomicParticle A <class_of_sub_atomic_particle> is a <class_of_arranged_individual> whose members are constituent particles of atoms.

Other

The following table lists other entity type pairs where the definition of one of the entity types indicate a possible membership between the pair.

Class Member Definition
ClassOfRelationshipWithSignature OtherRelationship Definition other_relationship: An <other_relationship> is a <relationship> that is not a member of any of the other explicit subtypes of <relationship>. The meaning of an <other_relationship> is specified by a <classification> by an instance of <class_of_relationship_with_signature>.
ClassOfIndirectProperty IndirectProperty Definition indirect_property: An <indirect_property> is a <relationship> between a <property> and a <possible_individual>. The nature of the <indirect_property> is defined by its <classification> by a <class_of_indirect_property>. (Note: ClassOfIndirectProperty is also listed in the table "Class of X and X, but no supporting definition".)
Language ? Definition language: A <language> is a <class_of_class_of_information_representation> whose members are all the information representations made in the language.
RepresentationOfGregorianDateAndUtcTime ? Definition representation_of_Gregorian_date_and_UTC_time: A <representation_of_Gregorian_date_and_UTC_time> is a <class_of_information_representation> whose members are representations of time using the UTC system of time identification as specified in ISO 8601:2000 together with the Gregorian system for representing dates. All times shall be represented using UTC representation of time. Dates shall follow the Gregorian calendar.
ShapeDimension IndividualDimension Definition shape_dimension: A <shape_dimension> is a <class_of_class_of_individual> that is a set of <individual_dimension> that define an aspect of a shape.
PropertySpace Property Definition property_space: A <property_space> is a <class_of_property> whose members are a coherent continuum of <property>.
ClassOfOrganization PhysicalObject A <class_of_organization> is a <class_of_arranged_individual> whose members are instances of <physical_object> that are composed of temporal parts of people and other assets, and are organised with a particular purpose.

Implementation in OWL

The identified relationships (version 9) are all implemented in OWL in the file http://rds.posccaesar.org/2008/07/OWL/ISO-15926-2_2003_entityMembership using the schema

Class: ClassOfIndividual
  SubClassOf: 
    isClassifierIn only (hasClassified only PossibleIndividual)

, but not the schema

Class: PossibleIndividual
  SubClassOf: 
    isClassifiedIn only (hasClassifier only ClassOfIndividual)

This means that this implementation restricts the ClassOfX-s in the identified relationships to only classify X, but there are no added restrictions as to what other classes X may be classified by, e.g., A ClassOfIndividual may only classify instances of PossibleIndividual, but no restrictions are added as to what classes instances of PossibleIndividual may by classified by.

The candidate relationships (version 9) are all but the two relationships (ClassOfRelationshipWithSignature, OtherRelationship) and (ClassOfIndirectProperty, IndirectProperty) implemented in OWL in the file http://rds.posccaesar.org/2008/07/OWL/ISO-15926-2_2003_entityMembershipCandidates using the schema

Class: ClassOfIndividual
  SubClassOf: 
    isClassifierIn only (hasClassified only PossibleIndividual)

, while (ClassOfRelationshipWithSignature, OtherRelationship) and (ClassOfIndirectProperty, IndirectProperty) are implemented using the schema

Class: PossibleIndividual
  SubClassOf: 
    isClassifiedIn only (hasClassifier only ClassOfIndividual)

Home
About PCA
Reference Data Services
Projects
Workgroups