[[TracNav(TracNav/ISO15926inOWL)]] = Adding membership relationships to ISO 15926-2 in OWL = Status of this document: Sketch {{{ #!comment Placeholder for discussion forum This document is open for feedback, please post questions and comments in the forum at the bottom of this page. You will [WikiStart#Contactpoints need a login] to post in the forum. }}} Author: * [mailto:martin.georg.skjaeveland@dnv.com Martin G. Skjæveland], DNV ---- = Table of Contents = [[PageOutline(2-3,,inline)]] == 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) {{{ #!graphviz.dot digraph G { overlap=false; ranksep=.6; nodesep=.7; label="Figure 1"; node [fontname=Arial, fontsize=8]; edge [fontname=Arial, fontsize=6]; class_of_class_of_individual [shape="box", width=2]; class_of_individual [shape="box", width=2]; possible_individual [shape="box", width=2]; "ROTATING MECHANICAL EQUIPMENT CLASS" [shape="none", label="ROTATING MECHANICAL\nEQUIPMENT CLASS"]; PUMP [shape="none"]; "#TheOldPumpInMyGarage" [shape="none"]; class_of_class_of_individual -> "ROTATING MECHANICAL EQUIPMENT CLASS" [label="instance"]; class_of_individual -> PUMP [label="instance"]; possible_individual -> "#TheOldPumpInMyGarage" [label="instance"]; "ROTATING MECHANICAL EQUIPMENT CLASS" -> PUMP [label="member"]; PUMP -> "#TheOldPumpInMyGarage" [label="member"]; } }}} ''Figure 1: An example of a membership hierarchy. `#TheOldPumpInMyGarage` is a member of `PUMP`, `PUMP` is a member of `ROTATING MECHANICAL EQUIPMENT CLASS`. `ROTATING MECHANICAL EQUIPMENT CLASS` is an instance of class_of_class_of_individual, `PUMP` is an instance of class_of_individual and `#TheOldPumpInMyGarage` 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. (Read more: [wiki: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 thus 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 OWL definition of CLASSIFICATION in the OWL file http://rds.posccaesar.org/2008/02/OWL/ISO-15926-2_2003 is the following {{{ Class: Classification SubClassOf: Relationship, hasClassifier exactly 1 Class, hasClassified exactly 1 Class }}} The EXPRESS definition is found here: [http://www.tc184-sc4.org/wg3ndocs/wg3n1328/lifecycle_integration_schema/lexical/classification.html classification]. [diagram] The owl:ObjectProperties hasClassified and hasClassifier is defined in ISO 15926-2 OWL as {{{ ObjectProperty: hasClassifier Domain: Classification ObjectProperty: hasClassified Domain: Classification }}} We want to put local restrictions on the use of Classification on specific entity types, e.g., such as (informally) "a !ClassOfIndividual may only have !PossibleIndividual-s as members". To be able to do so we need to 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 that "a !ClassOfIndividual may only be a classifier in a Classification which has a !PossibleIndividual as classified" and "a !PossibleIndividual may only be classified in a Classification which has a !ClassOfIndividual as classifier", in OWL: {{{ Class: part2:ClassOfIndividual SubClassOf: isClassifierIn only (part2:hasClassified only part2:PossibleIndividual) Class: part2:PossibleIndividual SubClassOf: isClassifiedIn only (part2:hasClassifier only part2:ClassOfIndividual) }}} == Identified membership relationships in ISO 15926-2 == == Candidate membership relationships in ISO 15926-2 == ---- {{{ #!comment Placeholder for discussion forum [[ViewTopic([Enter forum topic])]] }}}