"""
 .15925 Editor
Copyright 2014 TechInvestLab.ru dot15926@gmail.com

.15925 Editor is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 3.0 of the License, or (at your option) any later version.

.15925 Editor is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with .15925 Editor.
"""




ns_dm_part2 = 'http://rds.posccaesar.org/2008/02/OWL/ISO-15926-2_2003#'
ns_dm_rds = 'http://dm.rdlfacade.org/data#'
ns_dm_part8 = 'http://standards.iso.org/iso/ts/15926/-8/ed-1/tech/reference-data/data-model#'

part2_all_ns = set((ns_dm_part2, ns_dm_rds, ns_dm_part8))

labels_part2 = ['{0}{1}'.format(v, 'hasContent') for v in part2_all_ns]

part2_itself = {
 'part2:AbstractObject': {'abstract': True,
                          'comment': 'An [AbstractObject] is a [Thing] that does not exist in space-time.',
                          'icon': 'iso_class',
                          'name': 'AbstractObject',
                          'roles': {},
                          'subtypes': ['part2:Class',
                                       'part2:MultidimensionalObject',
                                       'part2:Relationship'],
                          'supertypes': ['part2:Thing'],
                          'uri': 'part2:AbstractObject'},
 'part2:Activity': {'abstract': False,
                    'comment': 'An [Activity] is a [PossibleIndividual] that brings about change by causing the [Event] that marks the [Beginning], or the [Event] that marks the [Ending] of a [PossibleIndividual]. An activity consists of the temporal parts of those members of [PossibleIndividual] that participate in the activity. The participating temporal parts will be classified by the [ParticipatingRoleAndDomain] that indicates the role of the temporal part in the [Activity].\nEXAMPLE\tPumping a fluid with a mechanical pump can be represented by an instance of [Activity].',
                    'icon': 'iso_individual',
                    'name': 'Activity',
                    'roles': {},
                    'subtypes': [],
                    'supertypes': ['part2:PossibleIndividual'],
                    'uri': 'part2:Activity'},
 'part2:ActualIndividual': {'abstract': False,
                            'comment': 'An [ActualIndividual] is a [PossibleIndividual] that is a part of the space-time continuum that we inhabit. It exists in the present, past, or future of our universe, as opposed to some imagined universe.\nNOTE\tThe things we plan can usually only be assumed to be part of some imagined universe, until they come about.\nEXAMPLE 1\tThe Eiffel Tower is an [ActualIndividual].\nEXAMPLE 2\tThe computer used to edit this part of ISO 15926 is an [ActualIndividual].\nEXAMPLE 3\tThe fictional character, Sherlock Holmes, is a [PossibleIndividual] who is not an [ActualIndividual].\nEXAMPLE 4\tThe Earth in the year 2300 (assuming it still exists) is an [ActualIndividual].',
                            'icon': 'iso_individual',
                            'name': 'ActualIndividual',
                            'roles': {},
                            'subtypes': [],
                            'supertypes': ['part2:PossibleIndividual'],
                            'uri': 'part2:ActualIndividual'},
 'part2:Approval': {'abstract': False,
                    'comment': 'An [Approval] is a [Relationship] that indicates that a [Relationship] has been approved by a [PossibleIndividual] that is an approver.\nNOTE\tCare should be taken as to what is approved. Sometimes it will not be say a pump that is approved, but the participation of the pump in a particular [Activity], or member of some [ClassOfActivity].\nEXAMPLE\tThe [InvolvementByReference] of a plant design with a construction activity, being approved by the site manager, is an example of an [Approval].',
                    'icon': 'iso_rel',
                    'name': 'Approval',
                    'roles': {'part2:hasApproved': {'from': 'part2:Approval',
                                                    'name': 'hasApproved',
                                                    'type_uri': 'part2:Relationship',
                                                    'uri': 'part2:hasApproved'},
                              'part2:hasApprover': {'from': 'part2:Approval',
                                                    'name': 'hasApprover',
                                                    'type_uri': 'part2:PossibleIndividual',
                                                    'uri': 'part2:hasApprover'}},
                    'subtypes': [],
                    'supertypes': ['part2:Relationship'],
                    'uri': 'part2:Approval'},
 'part2:ArithmeticNumber': {'abstract': False,
                            'comment': 'An [ArithmeticNumber] is a [ClassOfClass] whose member classes have the same sign and count or magnitude. An [ArithmeticNumber] is the number itself, not any representation of the number.\nNOTE \t[IntegerNumber] is not a subtype of [RealNumber]. The members of [IntegerNumber] are part of a different continuum from the members of [RealNumber], but are isomorphic to a subset of it.\nEXAMPLE 1\tThe number 2 and the number 2.0 can be represented by instances of [ArithmeticNumber].\nEXAMPLE 2\tFifteen, the number itself not the English word "fifteen", is an [ArithmeticNumber]. It could be represented by an [ExpressInteger] or an [ExpressReal] but could also be represented by  "XV", or a binary, or a hexadecimal representation.',
                            'icon': 'iso_classofclass',
                            'name': 'ArithmeticNumber',
                            'roles': {},
                            'subtypes': ['part2:IntegerNumber',
                                         'part2:MultidimensionalNumber',
                                         'part2:RealNumber'],
                            'supertypes': ['part2:ClassOfClass'],
                            'uri': 'part2:ArithmeticNumber'},
 'part2:ArrangedIndividual': {'abstract': False,
                              'comment': 'An [ArrangedIndividual] is a [PossibleIndividual] that has parts that play distinct roles with respect to the whole. The qualities of an [ArrangedIndividual] are distinct from the qualities of its parts.\nEXAMPLE 1\tThe vessel with serial number V-1234 is an [ArrangedIndividual].\nEXAMPLE 2\tThe company Bloggs & Co. is an [ArrangedIndividual].\nEXAMPLE 3\tA laptop computer that consists of the main unit with its removable CD-ROM and floppy disk drives and power supply cables is an [ArrangedIndividual].',
                              'icon': 'iso_individual',
                              'name': 'ArrangedIndividual',
                              'roles': {},
                              'subtypes': [],
                              'supertypes': ['part2:PossibleIndividual'],
                              'uri': 'part2:ArrangedIndividual'},
 'part2:ArrangementOfIndividual': {'abstract': False,
                                   'comment': 'An [ArrangementOfIndividual] is a [CompositionOfIndividual] that indicates that the part is a part of an [ArrangedIndividual]. The temporal extent of the part is that of the whole. An [ArrangementOfIndividual] may be an [AssemblyOfIndividual]. \nNOTE 1\tThe term "arranged" implies that parts have particular roles with respect to the whole.\nNOTE 2\tThe natures of the relations to other parts of the whole are not specified by the arrangement relation. Relationships like [ConnectionOfIndividual] and [RelativeLocation] would indicate this.\nEXAMPLE 1\tThe relationship that indicates that a particular aircraft is flying as part of a formation can be represented by an instance of [ArrangementOfIndividual].\nEXAMPLE 2\tThe relationship that indicates that a particular bin in a warehouse is part of the warehouse layout can be represented by an instance of [ArrangementOfIndividual].',
                                   'icon': 'iso_rel',
                                   'name': 'ArrangementOfIndividual',
                                   'roles': {'part2:hasPart': {'from': 'part2:CompositionOfIndividual',
                                                               'name': 'hasPart',
                                                               'type_uri': 'part2:PossibleIndividual',
                                                               'uri': 'part2:hasPart'},
                                             'part2:hasWhole': {'from': 'part2:ArrangementOfIndividual',
                                                                'name': 'hasWhole',
                                                                'type_uri': 'part2:ArrangedIndividual',
                                                                'uri': 'part2:hasWhole'}},
                                   'subtypes': ['part2:AssemblyOfIndividual',
                                                'part2:FeatureWholePart'],
                                   'supertypes': ['part2:CompositionOfIndividual'],
                                   'uri': 'part2:ArrangementOfIndividual'},
 'part2:AssemblyOfIndividual': {'abstract': False,
                                'comment': 'An [AssemblyOfIndividual] is an [ArrangementOfIndividual] that indicates that the part is connected directly or indirectly to other parts of the whole. The parts and wholes are super-molecular objects.\nNOTE\tComposition of molecules and smaller is represented through instances of [ClassOfArrangementOfIndividual].\nEXAMPLE\tThe relation that indicates that a temporal part of an impeller is a part of an assembled pump can be represented by an instance of [AssemblyOfIndividual].',
                                'icon': 'iso_rel',
                                'name': 'AssemblyOfIndividual',
                                'roles': {'part2:hasPart': {'from': 'part2:CompositionOfIndividual',
                                                            'name': 'hasPart',
                                                            'type_uri': 'part2:PossibleIndividual',
                                                            'uri': 'part2:hasPart'},
                                          'part2:hasWhole': {'from': 'part2:ArrangementOfIndividual',
                                                             'name': 'hasWhole',
                                                             'type_uri': 'part2:ArrangedIndividual',
                                                             'uri': 'part2:hasWhole'}},
                                'subtypes': [],
                                'supertypes': ['part2:ArrangementOfIndividual'],
                                'uri': 'part2:AssemblyOfIndividual'},
 'part2:Beginning': {'abstract': False,
                     'comment': "A [Beginning] is a [TemporalBounding] that marks the temporal start of a [PossibleIndividual].\nEXAMPLE 1\tThe relation that indicates that the [PointInTime] known as 0000hrs 1st July 1999 UTC is the beginning of the [PeriodInTime] known as July 1999 UTC can be represented by an instance of [Beginning].\nEXAMPLE 2\tThe relation that indicates that the [Event] 'loading complete' marks the start of the [PossibleIndividual] 'loading plant idle' can be represented by an instance of [Beginning].",
                     'icon': 'iso_rel',
                     'name': 'Beginning',
                     'roles': {'part2:hasPart': {'from': 'part2:TemporalBounding',
                                                 'name': 'hasPart',
                                                 'type_uri': 'part2:Event',
                                                 'uri': 'part2:hasPart'},
                               'part2:hasWhole': {'from': 'part2:CompositionOfIndividual',
                                                  'name': 'hasWhole',
                                                  'type_uri': 'part2:PossibleIndividual',
                                                  'uri': 'part2:hasWhole'}},
                     'subtypes': [],
                     'supertypes': ['part2:TemporalBounding'],
                     'uri': 'part2:Beginning'},
 'part2:BoundaryOfNumberSpace': {'abstract': False,
                                 'comment': 'A [BoundaryOfNumberSpace] is a [Specialization] that indicates that a [NumberSpace] is a boundary to another [NumberSpace].\nEXAMPLE\tThe side of a cube in R3 is a [NumberSpace] that is a plane in R3 and that is a boundary to the [NumberSpace] that is a cube in R3.',
                                 'icon': 'iso_rel',
                                 'name': 'BoundaryOfNumberSpace',
                                 'roles': {'part2:hasSubclass': {'from': 'part2:BoundaryOfNumberSpace',
                                                                 'name': 'hasSubclass',
                                                                 'type_uri': 'part2:NumberSpace',
                                                                 'uri': 'part2:hasSubclass'},
                                           'part2:hasSuperclass': {'from': 'part2:BoundaryOfNumberSpace',
                                                                   'name': 'hasSuperclass',
                                                                   'type_uri': 'part2:NumberSpace',
                                                                   'uri': 'part2:hasSuperclass'}},
                                 'subtypes': [],
                                 'supertypes': ['part2:Specialization'],
                                 'uri': 'part2:BoundaryOfNumberSpace'},
 'part2:BoundaryOfPropertySpace': {'abstract': False,
                                   'comment': 'A [BoundaryOfPropertySpace] is a [Specialization] that indicates the members of the subclass form a boundary of the superclass.\nEXAMPLE\tThe [PropertySpace] that corresponds to the maximum speed head flow curve is a boundary of the [PropertySpace] that corresponds to the pump operating envelope.',
                                   'icon': 'iso_rel',
                                   'name': 'BoundaryOfPropertySpace',
                                   'roles': {'part2:hasSubclass': {'from': 'part2:BoundaryOfPropertySpace',
                                                                   'name': 'hasSubclass',
                                                                   'type_uri': 'part2:PropertySpace',
                                                                   'uri': 'part2:hasSubclass'},
                                             'part2:hasSuperclass': {'from': 'part2:BoundaryOfPropertySpace',
                                                                     'name': 'hasSuperclass',
                                                                     'type_uri': 'part2:PropertySpace',
                                                                     'uri': 'part2:hasSuperclass'}},
                                   'subtypes': [],
                                   'supertypes': ['part2:Specialization'],
                                   'uri': 'part2:BoundaryOfPropertySpace'},
 'part2:Cardinality': {'abstract': False,
                       'comment': 'A [Cardinality] is a [Class] that is the maximum and/or minimum number of times a thing can play a particular role in a [ClassOfRelationship] or [ClassOfMultidimensionalObject].\nEXAMPLE\tA minimum of 1 and a maximum of 1 means that there is exactly one [Relationship] or [MultidimensionalObject] of this type for each object.',
                       'icon': 'iso_class',
                       'name': 'Cardinality',
                       'roles': {'part2:hasMaximumCardinality': {'from': 'part2:Cardinality',
                                                                 'is_optional': True,
                                                                 'name': 'hasMaximumCardinality',
                                                                 'type_uri': 'xsd:long',
                                                                 'uri': 'part2:hasMaximumCardinality'},
                                 'part2:hasMinimumCardinality': {'from': 'part2:Cardinality',
                                                                 'is_optional': True,
                                                                 'name': 'hasMinimumCardinality',
                                                                 'type_uri': 'xsd:long',
                                                                 'uri': 'part2:hasMinimumCardinality'}},
                       'subtypes': [],
                       'supertypes': ['part2:Class'],
                       'uri': 'part2:Cardinality'},
 'part2:CauseOfEvent': {'abstract': False,
                        'comment': "A [CauseOfEvent] is a [Relationship] that indicates that the caused [Event] is caused by the causer [Activity].\nEXAMPLE\tThe relation that indicates that the tanker loading activity caused the [Event] described as 'tank liquid level full' can be represented by an instance of [CauseOfEvent].",
                        'icon': 'iso_rel',
                        'name': 'CauseOfEvent',
                        'roles': {'part2:hasCaused': {'from': 'part2:CauseOfEvent',
                                                      'name': 'hasCaused',
                                                      'type_uri': 'part2:Event',
                                                      'uri': 'part2:hasCaused'},
                                  'part2:hasCauser': {'from': 'part2:CauseOfEvent',
                                                      'name': 'hasCauser',
                                                      'type_uri': 'part2:Activity',
                                                      'uri': 'part2:hasCauser'}},
                        'subtypes': [],
                        'supertypes': ['part2:Relationship'],
                        'uri': 'part2:CauseOfEvent'},
 'part2:Class': {'abstract': False,
                 'comment': 'A [Class] is a [Thing] that is an understanding of the nature of things and that divides things into those which are members of the class and those which are not according to one or more criteria.\nThe identity of a [Class] is ultimately defined by its members. No two classes have the same membership. However, a distinction must be made between a [Class] having members, and those members being known, so within an information system the members recorded may change over time, even though the true membership does not change.\nNOTE 1\tThe membership of a [Class] is unchanging as a result of the spatio-temporal paradigm upon which this schema is based. In another paradigm it might be stated that a car is red at one time, and green at another time, indicating that the class of red things and class of green things changed members. However, using a spatio-temporal paradigm, a temporal part, state 1, of the car is red, and another temporal part of the car, state 2, is green. In this way the members of the classes red and green are unchanging. The same principle applies to future temporal parts as to past temporal parts, it is just more likely that the membership of these is not known.\nA class may be a member of another class or itself.\nNOTE 2  The set theory that applies to classes in this model is non-wellfounded set theory [3]. This permits statements like "class is a member of class", unlike traditional set theories such as Zermelo-Fraenkel set theory found in standard texts [4].\nThere is a null [Class] that has no members.\nNOTE 3\tThe known members of a [Class] are identified by [Classification].\nNOTE 4\tAlthough there is only one [Class] that has no members, there can be a [Class] that has no members in the actual world, but which does have members in other possible worlds.\n\nBIBLIOGRAPHY\n[3]\tACZEL, Peter. Non-Well-Founded Sets, Center for the Study of Language and Information, Stanford, California, 1988, ISBN 0937073229.\n[4]\tITO, K. (editor). Encyclopedic Dictionary of Mathematics, Mathematical Society of Japan, Edition 2, Cambridge, Massachusetts, MIT Press, 1993, ISBN 0262590204.\nEXAMPLE 1\tCentrifugal pump is a [Class].\nEXAMPLE 2\tMechanical equipment type is a [Class].\nEXAMPLE 3\tTemperature is a [Class].\nEXAMPLE 4\tCommercial fusion reactor is a [Class].\nEXAMPLE 5\tCentigrade scale is a [Class].',
                 'icon': 'iso_class',
                 'name': 'Class',
                 'roles': {},
                 'subtypes': ['part2:Cardinality',
                              'part2:ClassOfAbstractObject',
                              'part2:ClassOfIndividual',
                              'part2:RoleAndDomain'],
                 'supertypes': ['part2:AbstractObject'],
                 'uri': 'part2:Class'},
 'part2:ClassOfAbstractObject': {'abstract': True,
                                 'comment': 'A [ClassOfAbstractObject] is a [Class] whose members classify members of [AbstractObject].',
                                 'icon': 'iso_class',
                                 'name': 'ClassOfAbstractObject',
                                 'roles': {},
                                 'subtypes': ['part2:ClassOfClass',
                                              'part2:ClassOfMultidimensionalObject',
                                              'part2:ClassOfRelationship'],
                                 'supertypes': ['part2:Class'],
                                 'uri': 'part2:ClassOfAbstractObject'},
 'part2:ClassOfActivity': {'abstract': False,
                           'comment': 'A [ClassOfActivity] is a [ClassOfArrangedIndividual] whose members are instances of [Activity].\nNOTE\tBehaviour is a term used to describe a [ClassOfActivity] either where there are preconditions and the [ClassOfActivity] is a response to those preconditions, e.g. reaction to touching a hot surface, or where the way an activity occurs is described by some property or function, e.g. fluid flow being described by the viscosity of the fluid.\nEXAMPLE\tDrilling, distilling, and approving can be represented by instances of [ClassOfActivity].',
                           'icon': 'iso_class',
                           'name': 'ClassOfActivity',
                           'roles': {},
                           'subtypes': [],
                           'supertypes': ['part2:ClassOfArrangedIndividual'],
                           'uri': 'part2:ClassOfActivity'},
 'part2:ClassOfApproval': {'abstract': False,
                           'comment': 'A [ClassOfApproval] is a [ClassOfRelationship] whose members are members of [Approval] that indicates that members of the [ClassOfIndividual] are approvers in an [Approval] for the members of the [Class] that are approved.\nEXAMPLE\tThat site managers approve design specifications for construction (a [ClassOfInvolvementByReference]) is an example of [ClassOfApproval].',
                           'icon': 'iso_co_rel',
                           'name': 'ClassOfApproval',
                           'roles': {'part2:hasClassOfApproved': {'from': 'part2:ClassOfApproval',
                                                                  'name': 'hasClassOfApproved',
                                                                  'type_uri': 'part2:ClassOfRelationship',
                                                                  'uri': 'part2:hasClassOfApproved'},
                                     'part2:hasClassOfApprover': {'from': 'part2:ClassOfApproval',
                                                                  'name': 'hasClassOfApprover',
                                                                  'type_uri': 'part2:ClassOfIndividual',
                                                                  'uri': 'part2:hasClassOfApprover'},
                                     'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                  'is_optional': True,
                                                                  'name': 'hasEnd1Cardinality',
                                                                  'type_uri': 'part2:Cardinality',
                                                                  'uri': 'part2:hasEnd1Cardinality'},
                                     'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                  'is_optional': True,
                                                                  'name': 'hasEnd2Cardinality',
                                                                  'type_uri': 'part2:Cardinality',
                                                                  'uri': 'part2:hasEnd2Cardinality'}},
                           'subtypes': [],
                           'supertypes': ['part2:ClassOfRelationship'],
                           'uri': 'part2:ClassOfApproval'},
 'part2:ClassOfApprovalByStatus': {'abstract': False,
                                   'comment': 'A [ClassOfApprovalByStatus] is a [ClassOfRelationship] that indicates a status of the approval that is independent of what is being approved by whom.\nEXAMPLE\tapproved, approved with comments, disapproved with comments are examples of [ClassOfApprovalByStatus].',
                                   'icon': 'iso_co_rel',
                                   'name': 'ClassOfApprovalByStatus',
                                   'roles': {'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                          'is_optional': True,
                                                                          'name': 'hasEnd1Cardinality',
                                                                          'type_uri': 'part2:Cardinality',
                                                                          'uri': 'part2:hasEnd1Cardinality'},
                                             'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                          'is_optional': True,
                                                                          'name': 'hasEnd2Cardinality',
                                                                          'type_uri': 'part2:Cardinality',
                                                                          'uri': 'part2:hasEnd2Cardinality'}},
                                   'subtypes': [],
                                   'supertypes': ['part2:ClassOfRelationship'],
                                   'uri': 'part2:ClassOfApprovalByStatus'},
 'part2:ClassOfArrangedIndividual': {'abstract': False,
                                     'comment': 'A [ClassOfArrangedIndividual] is a [ClassOfIndividual] whose members have a distinct form that may arise from the arrangement of their parts.\nNOTE 1\tThe ONEOF constraint on some of the subtypes does not prevent a particular [PossibleIndividual] from being, say, a member of a particular [ArrangedIndividual] classified by [ClassOfBiologicalMatter] and a member of a particular [ClassOfCompositeMaterial]. It is only the classes themselves that are not members of more than one of the entity types.\nNOTE 2\tSpecifications or descriptions of useful objects are often intersections of several arrangement classes, allowing both shape and material aspects to be constrained. In this part of ISO 15926, such intersections are members of [ClassOfArrangedIndividual], [ClassOfFeature], [ClassOfInanimatePhysicalObject], [ClassOfOrganization], [ClassOfActivity], [ClassOfOrganism], or [ClassOfInformationObject].\nEXAMPLE\tRobocop is a [ClassOfArrangedIndividual] that has some parts that are members of some [ClassOfInanimatePhysicalObject] and parts that are members of some [ClassOfOrganism].',
                                     'icon': 'iso_class',
                                     'name': 'ClassOfArrangedIndividual',
                                     'roles': {},
                                     'subtypes': ['part2:ClassOfActivity',
                                                  'part2:ClassOfAtom',
                                                  'part2:ClassOfBiologicalMatter',
                                                  'part2:ClassOfCompositeMaterial',
                                                  'part2:ClassOfCompound',
                                                  'part2:ClassOfFeature',
                                                  'part2:ClassOfFunctionalObject',
                                                  'part2:ClassOfInanimatePhysicalObject',
                                                  'part2:ClassOfInformationObject',
                                                  'part2:ClassOfInformationPresentation',
                                                  'part2:ClassOfInformationRepresentation',
                                                  'part2:ClassOfMolecule',
                                                  'part2:ClassOfOrganism',
                                                  'part2:ClassOfOrganization',
                                                  'part2:ClassOfParticulateMaterial',
                                                  'part2:ClassOfSubAtomicParticle',
                                                  'part2:CrystallineStructure',
                                                  'part2:Phase'],
                                     'supertypes': ['part2:ClassOfIndividual'],
                                     'uri': 'part2:ClassOfArrangedIndividual'},
 'part2:ClassOfArrangementOfIndividual': {'abstract': False,
                                          'comment': 'A [ClassOfArrangementOfIndividual] is a [ClassOfCompositionOfIndividual] whose members are instances of [ArrangementOfIndividual].\nEXAMPLE\tThe fact that water is made up of H2O molecules is an instance of [ClassOfArrangementOfIndividual].',
                                          'icon': 'iso_co_rel',
                                          'name': 'ClassOfArrangementOfIndividual',
                                          'roles': {'part2:hasClassOfPart': {'from': 'part2:ClassOfCompositionOfIndividual',
                                                                             'name': 'hasClassOfPart',
                                                                             'type_uri': 'part2:ClassOfIndividual',
                                                                             'uri': 'part2:hasClassOfPart'},
                                                    'part2:hasClassOfWhole': {'from': 'part2:ClassOfArrangementOfIndividual',
                                                                              'name': 'hasClassOfWhole',
                                                                              'type_uri': 'part2:ClassOfArrangedIndividual',
                                                                              'uri': 'part2:hasClassOfWhole'},
                                                    'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                 'is_optional': True,
                                                                                 'name': 'hasEnd1Cardinality',
                                                                                 'type_uri': 'part2:Cardinality',
                                                                                 'uri': 'part2:hasEnd1Cardinality'},
                                                    'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                 'is_optional': True,
                                                                                 'name': 'hasEnd2Cardinality',
                                                                                 'type_uri': 'part2:Cardinality',
                                                                                 'uri': 'part2:hasEnd2Cardinality'}},
                                          'subtypes': ['part2:ClassOfAssemblyOfIndividual',
                                                       'part2:ClassOfFeatureWholePart',
                                                       'part2:Namespace'],
                                          'supertypes': ['part2:ClassOfCompositionOfIndividual'],
                                          'uri': 'part2:ClassOfArrangementOfIndividual'},
 'part2:ClassOfAssemblyOfIndividual': {'abstract': False,
                                       'comment': 'A [ClassOfAssemblyOfIndividual] is a [ClassOfArrangementOfIndividual] whose members are instances of [AssemblyOfIndividual].\nEXAMPLE\t That impellers are parts of centrifugal pumps is a [ClassOfAssemblyOfIndividual].',
                                       'icon': 'iso_co_rel',
                                       'name': 'ClassOfAssemblyOfIndividual',
                                       'roles': {'part2:hasClassOfPart': {'from': 'part2:ClassOfCompositionOfIndividual',
                                                                          'name': 'hasClassOfPart',
                                                                          'type_uri': 'part2:ClassOfIndividual',
                                                                          'uri': 'part2:hasClassOfPart'},
                                                 'part2:hasClassOfWhole': {'from': 'part2:ClassOfArrangementOfIndividual',
                                                                           'name': 'hasClassOfWhole',
                                                                           'type_uri': 'part2:ClassOfArrangedIndividual',
                                                                           'uri': 'part2:hasClassOfWhole'},
                                                 'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                              'is_optional': True,
                                                                              'name': 'hasEnd1Cardinality',
                                                                              'type_uri': 'part2:Cardinality',
                                                                              'uri': 'part2:hasEnd1Cardinality'},
                                                 'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                              'is_optional': True,
                                                                              'name': 'hasEnd2Cardinality',
                                                                              'type_uri': 'part2:Cardinality',
                                                                              'uri': 'part2:hasEnd2Cardinality'}},
                                       'subtypes': [],
                                       'supertypes': ['part2:ClassOfArrangementOfIndividual'],
                                       'uri': 'part2:ClassOfAssemblyOfIndividual'},
 'part2:ClassOfAssertion': {'abstract': False,
                            'comment': 'A [ClassOfAssertion] is a [ClassOfRelationship] that describes the assertive nature of the member relations.\nEXAMPLE\tAsserting, denying, and probabilistic can be represented by instances of [ClassOfAssertion].',
                            'icon': 'iso_co_rel',
                            'name': 'ClassOfAssertion',
                            'roles': {'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                   'is_optional': True,
                                                                   'name': 'hasEnd1Cardinality',
                                                                   'type_uri': 'part2:Cardinality',
                                                                   'uri': 'part2:hasEnd1Cardinality'},
                                      'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                   'is_optional': True,
                                                                   'name': 'hasEnd2Cardinality',
                                                                   'type_uri': 'part2:Cardinality',
                                                                   'uri': 'part2:hasEnd2Cardinality'}},
                            'subtypes': [],
                            'supertypes': ['part2:ClassOfRelationship'],
                            'uri': 'part2:ClassOfAssertion'},
 'part2:ClassOfAtom': {'abstract': False,
                       'comment': 'A [ClassOfAtom] is a [ClassOfArrangedIndividual] whose members are atoms.\nEXAMPLE\tAll entries in the periodic table of elements can be represented by instances of [ClassOfAtom].',
                       'icon': 'iso_class',
                       'name': 'ClassOfAtom',
                       'roles': {},
                       'subtypes': [],
                       'supertypes': ['part2:ClassOfArrangedIndividual'],
                       'uri': 'part2:ClassOfAtom'},
 'part2:ClassOfBiologicalMatter': {'abstract': False,
                                   'comment': "A [ClassOfBiologicalMatter] is a [ClassOfArrangedIndividual] whose members are particular types of cell or aggregations of cells.\nEXAMPLE\tThe classes known as 'blood', 'enzyme', and 'plasma' can be represented by instances of [ClassOfBiologicalMatter].",
                                   'icon': 'iso_class',
                                   'name': 'ClassOfBiologicalMatter',
                                   'roles': {},
                                   'subtypes': [],
                                   'supertypes': ['part2:ClassOfArrangedIndividual'],
                                   'uri': 'part2:ClassOfBiologicalMatter'},
 'part2:ClassOfCauseOfBeginningOfClassOfIndividual': {'abstract': False,
                                                      'comment': 'A [ClassOfCauseOfBeginningOfClassOfIndividual] is a [ClassOfRelationship] that indicates that a member of a [ClassOfActivity] causes the beginning of a member of a [ClassOfIndividual].\nEXAMPLE\tA car manufacturing activity causes the beginning of a car.',
                                                      'icon': 'iso_co_rel',
                                                      'name': 'ClassOfCauseOfBeginningOfClassOfIndividual',
                                                      'roles': {'part2:hasClassOfBegun': {'from': 'part2:ClassOfCauseOfBeginningOfClassOfIndividual',
                                                                                          'name': 'hasClassOfBegun',
                                                                                          'type_uri': 'part2:ClassOfIndividual',
                                                                                          'uri': 'part2:hasClassOfBegun'},
                                                                'part2:hasClassOfCauser': {'from': 'part2:ClassOfCauseOfBeginningOfClassOfIndividual',
                                                                                           'name': 'hasClassOfCauser',
                                                                                           'type_uri': 'part2:ClassOfActivity',
                                                                                           'uri': 'part2:hasClassOfCauser'},
                                                                'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                             'is_optional': True,
                                                                                             'name': 'hasEnd1Cardinality',
                                                                                             'type_uri': 'part2:Cardinality',
                                                                                             'uri': 'part2:hasEnd1Cardinality'},
                                                                'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                             'is_optional': True,
                                                                                             'name': 'hasEnd2Cardinality',
                                                                                             'type_uri': 'part2:Cardinality',
                                                                                             'uri': 'part2:hasEnd2Cardinality'}},
                                                      'subtypes': [],
                                                      'supertypes': ['part2:ClassOfRelationship'],
                                                      'uri': 'part2:ClassOfCauseOfBeginningOfClassOfIndividual'},
 'part2:ClassOfCauseOfEndingOfClassOfIndividual': {'abstract': False,
                                                   'comment': 'A [ClassOfCauseOfEndingOfClassOfIndividual] is a [ClassOfRelationship] that indicates that a member of the [ClassOfActivity] causes the ending of a member of the [ClassOfIndividual].\nEXAMPLE\tA car crushing activity causes the end of the life of a car.',
                                                   'icon': 'iso_co_rel',
                                                   'name': 'ClassOfCauseOfEndingOfClassOfIndividual',
                                                   'roles': {'part2:hasClassOfCauser': {'from': 'part2:ClassOfCauseOfEndingOfClassOfIndividual',
                                                                                        'name': 'hasClassOfCauser',
                                                                                        'type_uri': 'part2:ClassOfActivity',
                                                                                        'uri': 'part2:hasClassOfCauser'},
                                                             'part2:hasClassOfEnded': {'from': 'part2:ClassOfCauseOfEndingOfClassOfIndividual',
                                                                                       'name': 'hasClassOfEnded',
                                                                                       'type_uri': 'part2:ClassOfIndividual',
                                                                                       'uri': 'part2:hasClassOfEnded'},
                                                             'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                          'is_optional': True,
                                                                                          'name': 'hasEnd1Cardinality',
                                                                                          'type_uri': 'part2:Cardinality',
                                                                                          'uri': 'part2:hasEnd1Cardinality'},
                                                             'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                          'is_optional': True,
                                                                                          'name': 'hasEnd2Cardinality',
                                                                                          'type_uri': 'part2:Cardinality',
                                                                                          'uri': 'part2:hasEnd2Cardinality'}},
                                                   'subtypes': [],
                                                   'supertypes': ['part2:ClassOfRelationship'],
                                                   'uri': 'part2:ClassOfCauseOfEndingOfClassOfIndividual'},
 'part2:ClassOfClass': {'abstract': False,
                        'comment': 'A [ClassOfClass] is a [Class] whose members are instances of [Class].\nNOTE\tWhen it is necessary to classify a [ClassOfClass], another [ClassOfClass] can be used. This is because a [ClassOfClass] is a [Class].',
                        'icon': 'iso_classofclass',
                        'name': 'ClassOfClass',
                        'roles': {},
                        'subtypes': ['part2:ArithmeticNumber',
                                     'part2:ClassOfClassOfIndividual',
                                     'part2:ClassOfClassOfRelationship',
                                     'part2:ClassOfNumber',
                                     'part2:ClassOfPropertySpace',
                                     'part2:ClassOfShapeDimension',
                                     'part2:EnumeratedSetOfClass'],
                        'supertypes': ['part2:ClassOfAbstractObject'],
                        'uri': 'part2:ClassOfClass'},
 'part2:ClassOfClassOfComposition': {'abstract': False,
                                     'comment': 'A [ClassOfClassOfComposition] is a [ClassOfClassOfRelationship] whose members are instances of [ClassOfCompositionOfIndividual]. It indicates that a member of a member of the class_of_class_of_part is a part of a member of an instance of the class_of_class_of_whole.\nEXAMPLE\tToxicity description is a class_of_class_of_part of a material data sheet, where the description "has carcinogenic components" is a class_of_part on the Mogas Material Safety Data Sheet, and copy #5 of the Mogas Material Safety Data Sheet has "has carcinogenic components" as a part.',
                                     'icon': 'iso_co_classofrel',
                                     'name': 'ClassOfClassOfComposition',
                                     'roles': {'part2:hasClassOfClassOfPart': {'from': 'part2:ClassOfClassOfComposition',
                                                                               'name': 'hasClassOfClassOfPart',
                                                                               'type_uri': 'part2:ClassOfClassOfIndividual',
                                                                               'uri': 'part2:hasClassOfClassOfPart'},
                                               'part2:hasClassOfClassOfWhole': {'from': 'part2:ClassOfClassOfComposition',
                                                                                'name': 'hasClassOfClassOfWhole',
                                                                                'type_uri': 'part2:ClassOfClassOfIndividual',
                                                                                'uri': 'part2:hasClassOfClassOfWhole'}},
                                     'subtypes': [],
                                     'supertypes': ['part2:ClassOfClassOfRelationship'],
                                     'uri': 'part2:ClassOfClassOfComposition'},
 'part2:ClassOfClassOfDefinition': {'abstract': False,
                                    'comment': 'A [ClassOfClassOfDefinition] is a [ClassOfClassOfRepresentation] whose members are members of [ClassOfDefinition].\nEXAMPLE\tNormative, is a [ClassOfClassOfDefinition].',
                                    'icon': 'iso_co_classofrel',
                                    'name': 'ClassOfClassOfDefinition',
                                    'roles': {'part2:hasClassOfPattern': {'from': 'part2:ClassOfClassOfRepresentation',
                                                                          'name': 'hasClassOfPattern',
                                                                          'type_uri': 'part2:ClassOfClassOfInformationRepresentation',
                                                                          'uri': 'part2:hasClassOfPattern'},
                                              'part2:hasClassOfRepresented': {'from': 'part2:ClassOfClassOfRepresentation',
                                                                              'name': 'hasClassOfRepresented',
                                                                              'type_uri': 'part2:Class',
                                                                              'uri': 'part2:hasClassOfRepresented'}},
                                    'subtypes': [],
                                    'supertypes': ['part2:ClassOfClassOfRepresentation'],
                                    'uri': 'part2:ClassOfClassOfDefinition'},
 'part2:ClassOfClassOfDescription': {'abstract': False,
                                     'comment': 'A [ClassOfClassOfDescription] is a [ClassOfClassOfRepresentation] whose members are members of [ClassOfDescription].\nEXAMPLE\tService description is a [ClassOfClassOfDescription].',
                                     'icon': 'iso_co_classofrel',
                                     'name': 'ClassOfClassOfDescription',
                                     'roles': {'part2:hasClassOfPattern': {'from': 'part2:ClassOfClassOfRepresentation',
                                                                           'name': 'hasClassOfPattern',
                                                                           'type_uri': 'part2:ClassOfClassOfInformationRepresentation',
                                                                           'uri': 'part2:hasClassOfPattern'},
                                               'part2:hasClassOfRepresented': {'from': 'part2:ClassOfClassOfRepresentation',
                                                                               'name': 'hasClassOfRepresented',
                                                                               'type_uri': 'part2:Class',
                                                                               'uri': 'part2:hasClassOfRepresented'}},
                                     'subtypes': [],
                                     'supertypes': ['part2:ClassOfClassOfRepresentation'],
                                     'uri': 'part2:ClassOfClassOfDescription'},
 'part2:ClassOfClassOfIdentification': {'abstract': False,
                                        'comment': "A [ClassOfClassOfIdentification] is a [ClassOfClassOfRepresentation] whose members are members of [ClassOfIdentification].\nEXAMPLE\tThe link between the [Class] 'family of manufactured parts' and the [RepresentationForm] 'ISO 13584 Basic Semantic Unit', that indicates that part families can be identified using ISO 13584, can be represented by an instance of [ClassOfClassOfIdentification].",
                                        'icon': 'iso_co_classofrel',
                                        'name': 'ClassOfClassOfIdentification',
                                        'roles': {'part2:hasClassOfPattern': {'from': 'part2:ClassOfClassOfRepresentation',
                                                                              'name': 'hasClassOfPattern',
                                                                              'type_uri': 'part2:ClassOfClassOfInformationRepresentation',
                                                                              'uri': 'part2:hasClassOfPattern'},
                                                  'part2:hasClassOfRepresented': {'from': 'part2:ClassOfClassOfRepresentation',
                                                                                  'name': 'hasClassOfRepresented',
                                                                                  'type_uri': 'part2:Class',
                                                                                  'uri': 'part2:hasClassOfRepresented'}},
                                        'subtypes': [],
                                        'supertypes': ['part2:ClassOfClassOfRepresentation'],
                                        'uri': 'part2:ClassOfClassOfIdentification'},
 'part2:ClassOfClassOfIndividual': {'abstract': False,
                                    'comment': 'A [ClassOfClassOfIndividual] is a [ClassOfClass] whose members are instances of [ClassOfIndividual].\nEXAMPLE\t"Premium Product" is a [ClassOfClassOfIndividual] that has [ClassOfIndividual] "mogas" as a member.',
                                    'icon': 'iso_classofclass',
                                    'name': 'ClassOfClassOfIndividual',
                                    'roles': {},
                                    'subtypes': ['part2:ClassOfClassOfInformationRepresentation',
                                                 'part2:ClassOfProperty',
                                                 'part2:ClassOfStatus',
                                                 'part2:ShapeDimension'],
                                    'supertypes': ['part2:ClassOfClass'],
                                    'uri': 'part2:ClassOfClassOfIndividual'},
 'part2:ClassOfClassOfInformationRepresentation': {'abstract': False,
                                                   'comment': 'A [ClassOfClassOfInformationRepresentation] is a [ClassOfClassOfIndividual] that classifies information representation classes.\nEXAMPLE\tInteger Octal is a [ClassOfClassOfInformationRepresentation] whose members are all the information representation classes that correspond to Octal formatted integers.',
                                                   'icon': 'iso_classofclass',
                                                   'name': 'ClassOfClassOfInformationRepresentation',
                                                   'roles': {},
                                                   'subtypes': ['part2:DocumentDefinition',
                                                                'part2:Language',
                                                                'part2:RepresentationForm'],
                                                   'supertypes': ['part2:ClassOfClassOfIndividual'],
                                                   'uri': 'part2:ClassOfClassOfInformationRepresentation'},
 'part2:ClassOfClassOfRelationship': {'abstract': False,
                                      'comment': 'A [ClassOfClassOfRelationship] is a [ClassOfClass] whose members are instances of [ClassOfRelationship].\nEXAMPLE\tReflexive is an example of [ClassOfClassOfRelationship]. A reflexive [ClassOfRelationship] is one that may have the same [Thing] playing both roles, such as connection, where something may be connected to itself.',
                                      'icon': 'iso_co_classofrel',
                                      'name': 'ClassOfClassOfRelationship',
                                      'roles': {},
                                      'subtypes': ['part2:ClassOfClassOfComposition',
                                                   'part2:ClassOfClassOfRelationshipWithSignature',
                                                   'part2:ClassOfClassOfRepresentation',
                                                   'part2:ClassOfClassOfRepresentationTranslation',
                                                   'part2:ClassOfClassOfResponsibilityForRepresentation',
                                                   'part2:ClassOfClassOfUsageOfRepresentation',
                                                   'part2:ClassOfDimensionForShape',
                                                   'part2:ClassOfNamespace',
                                                   'part2:ClassOfScale',
                                                   'part2:DimensionOfShape',
                                                   'part2:PropertySpaceForClassOfShapeDimension'],
                                      'supertypes': ['part2:ClassOfClass'],
                                      'uri': 'part2:ClassOfClassOfRelationship'},
 'part2:ClassOfClassOfRelationshipWithSignature': {'abstract': False,
                                                   'comment': 'An [ClassOfClassOfRelationshipWithSignature] is a [ClassOfClassOfRelationship] and [ClassOfRelationshipWithSignature]. The purpose of [ClassOfClassOfRelationshipWithSignature] is to allow other types of classes of relationship, not explicitly defined as entity data types in this part of ISO 15926, to be defined as reference data.\nEXAMPLE\tTransitive, with the roles from and to indicating the direction of transitivity, is a [ClassOfClassOfRelationshipWithSignature]. A [ClassOfRelationship] is transitive if when A relates to B and B relates to C then A relates to C, all in the same way.',
                                                   'icon': 'iso_co_classofrel',
                                                   'name': 'ClassOfClassOfRelationshipWithSignature',
                                                   'roles': {'part2:hasClassOfEnd1': {'from': 'part2:ClassOfRelationshipWithSignature',
                                                                                      'is_optional': True,
                                                                                      'name': 'hasClassOfEnd1',
                                                                                      'type_uri': 'part2:RoleAndDomain',
                                                                                      'uri': 'part2:hasClassOfEnd1'},
                                                             'part2:hasClassOfEnd2': {'from': 'part2:ClassOfRelationshipWithSignature',
                                                                                      'is_optional': True,
                                                                                      'name': 'hasClassOfEnd2',
                                                                                      'type_uri': 'part2:RoleAndDomain',
                                                                                      'uri': 'part2:hasClassOfEnd2'},
                                                             'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                          'is_optional': True,
                                                                                          'name': 'hasEnd1Cardinality',
                                                                                          'type_uri': 'part2:Cardinality',
                                                                                          'uri': 'part2:hasEnd1Cardinality'},
                                                             'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                          'is_optional': True,
                                                                                          'name': 'hasEnd2Cardinality',
                                                                                          'type_uri': 'part2:Cardinality',
                                                                                          'uri': 'part2:hasEnd2Cardinality'}},
                                                   'subtypes': [],
                                                   'supertypes': ['part2:ClassOfClassOfRelationship'],
                                                   'uri': 'part2:ClassOfClassOfRelationshipWithSignature'},
 'part2:ClassOfClassOfRepresentation': {'abstract': False,
                                        'comment': "A [ClassOfClassOfRepresentation] is a [ClassOfClassOfRelationship] whose members are instances of [ClassOfRepresentationOfThing].\nEXAMPLE\tThe link that indicates that members of the class 'document' can be represented by patterns of the class 'XML' is a [ClassOfClassOfRepresentation].",
                                        'icon': 'iso_co_classofrel',
                                        'name': 'ClassOfClassOfRepresentation',
                                        'roles': {'part2:hasClassOfPattern': {'from': 'part2:ClassOfClassOfRepresentation',
                                                                              'name': 'hasClassOfPattern',
                                                                              'type_uri': 'part2:ClassOfClassOfInformationRepresentation',
                                                                              'uri': 'part2:hasClassOfPattern'},
                                                  'part2:hasClassOfRepresented': {'from': 'part2:ClassOfClassOfRepresentation',
                                                                                  'name': 'hasClassOfRepresented',
                                                                                  'type_uri': 'part2:Class',
                                                                                  'uri': 'part2:hasClassOfRepresented'}},
                                        'subtypes': ['part2:ClassOfClassOfDefinition',
                                                     'part2:ClassOfClassOfDescription',
                                                     'part2:ClassOfClassOfIdentification'],
                                        'supertypes': ['part2:ClassOfClassOfRelationship'],
                                        'uri': 'part2:ClassOfClassOfRepresentation'},
 'part2:ClassOfClassOfRepresentationTranslation': {'abstract': False,
                                                   'comment': 'A [ClassOfClassOfRepresentationTranslation] is a [ClassOfClassOfRelationship] whose members are members of [ClassOfRepresentationTranslation].\nEXAMPLE\tThe class ASCII whose members include all translation classes between members of the ASCII Binary and ASCII Text representation classes is a [ClassOfClassOfRepresentationTranslation].',
                                                   'icon': 'iso_co_classofrel',
                                                   'name': 'ClassOfClassOfRepresentationTranslation',
                                                   'roles': {'part2:hasClassOfFirst': {'from': 'part2:ClassOfClassOfRepresentationTranslation',
                                                                                       'name': 'hasClassOfFirst',
                                                                                       'type_uri': 'part2:ClassOfClassOfInformationRepresentation',
                                                                                       'uri': 'part2:hasClassOfFirst'},
                                                             'part2:hasClassOfSecond': {'from': 'part2:ClassOfClassOfRepresentationTranslation',
                                                                                        'name': 'hasClassOfSecond',
                                                                                        'type_uri': 'part2:ClassOfClassOfInformationRepresentation',
                                                                                        'uri': 'part2:hasClassOfSecond'}},
                                                   'subtypes': [],
                                                   'supertypes': ['part2:ClassOfClassOfRelationship'],
                                                   'uri': 'part2:ClassOfClassOfRepresentationTranslation'},
 'part2:ClassOfClassOfResponsibilityForRepresentation': {'abstract': False,
                                                         'comment': 'A [ClassOfClassOfResponsibilityForRepresentation] is a [ClassOfClassOfRelationship] whose members are members of [ClassOfResponsibilityForRepresentation] linking the controller to a set of representations.\nEXAMPLE\tThe link between Weir and the identification set between Weir pumps and Weir serial numbers indicating that the  identifications are defined by Weir can be represented by an instance of [ClassOfClassOfResponsibilityForRepresentation].',
                                                         'icon': 'iso_co_classofrel',
                                                         'name': 'ClassOfClassOfResponsibilityForRepresentation',
                                                         'roles': {'part2:hasClassOfClassOfControlled': {'from': 'part2:ClassOfClassOfResponsibilityForRepresentation',
                                                                                                         'name': 'hasClassOfClassOfControlled',
                                                                                                         'type_uri': 'part2:ClassOfClassOfRepresentation',
                                                                                                         'uri': 'part2:hasClassOfClassOfControlled'},
                                                                   'part2:hasController': {'from': 'part2:ClassOfClassOfResponsibilityForRepresentation',
                                                                                           'name': 'hasController',
                                                                                           'type_uri': 'part2:PossibleIndividual',
                                                                                           'uri': 'part2:hasController'}},
                                                         'subtypes': [],
                                                         'supertypes': ['part2:ClassOfClassOfRelationship'],
                                                         'uri': 'part2:ClassOfClassOfResponsibilityForRepresentation'},
 'part2:ClassOfClassOfUsageOfRepresentation': {'abstract': False,
                                               'comment': 'A [ClassOfClassOfUsageOfRepresentation] is a [ClassOfClassOfRelationship] whose members are members of [ClassOfUsageOfRepresentation] linking the user to a set of representations.\nEXAMPLE\tThe link between a user company and the identification set between Weir pumps and Weir serial numbers indicating that the user company uses the Weir identifiers can be represented by an instance of [ClassOfClassOfUsageOfRepresentation].',
                                               'icon': 'iso_co_classofrel',
                                               'name': 'ClassOfClassOfUsageOfRepresentation',
                                               'roles': {'part2:hasClassOfClassOfUsed': {'from': 'part2:ClassOfClassOfUsageOfRepresentation',
                                                                                         'name': 'hasClassOfClassOfUsed',
                                                                                         'type_uri': 'part2:ClassOfClassOfRepresentation',
                                                                                         'uri': 'part2:hasClassOfClassOfUsed'},
                                                         'part2:hasUser': {'from': 'part2:ClassOfClassOfUsageOfRepresentation',
                                                                           'name': 'hasUser',
                                                                           'type_uri': 'part2:PossibleIndividual',
                                                                           'uri': 'part2:hasUser'}},
                                               'subtypes': [],
                                               'supertypes': ['part2:ClassOfClassOfRelationship'],
                                               'uri': 'part2:ClassOfClassOfUsageOfRepresentation'},
 'part2:ClassOfClassification': {'abstract': False,
                                 'comment': 'A [ClassOfClassification] is a [ClassOfRelationship] whose members are members of [Classification]. A [ClassOfClassification] indicates that a member of the class_of_classified [Class] is classified by one or more members of the class_of_classifier [ClassOfClass].\nEXAMPLE\tThe link between [Class] centrifugal pump and the [ClassOfProperty] RPM, indicating that a centrifugal pump is a member of at least one RPM class, can be represented by an instance of [ClassOfClassification].',
                                 'icon': 'iso_co_rel',
                                 'name': 'ClassOfClassification',
                                 'roles': {'part2:hasClassOfClassified': {'from': 'part2:ClassOfClassification',
                                                                          'name': 'hasClassOfClassified',
                                                                          'type_uri': 'part2:Class',
                                                                          'uri': 'part2:hasClassOfClassified'},
                                           'part2:hasClassOfClassifier': {'from': 'part2:ClassOfClassification',
                                                                          'name': 'hasClassOfClassifier',
                                                                          'type_uri': 'part2:ClassOfClass',
                                                                          'uri': 'part2:hasClassOfClassifier'},
                                           'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                        'is_optional': True,
                                                                        'name': 'hasEnd1Cardinality',
                                                                        'type_uri': 'part2:Cardinality',
                                                                        'uri': 'part2:hasEnd1Cardinality'},
                                           'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                        'is_optional': True,
                                                                        'name': 'hasEnd2Cardinality',
                                                                        'type_uri': 'part2:Cardinality',
                                                                        'uri': 'part2:hasEnd2Cardinality'}},
                                 'subtypes': [],
                                 'supertypes': ['part2:ClassOfRelationship'],
                                 'uri': 'part2:ClassOfClassification'},
 'part2:ClassOfCompositeMaterial': {'abstract': False,
                                    'comment': 'A [ClassOfCompositeMaterial] is a [ClassOfArrangedIndividual] whose members have a common arrangement of separable compounds.\nEXAMPLE 1\tLaminates such as plywood, fibreglass, and carbon fibre can be represented by instances of [ClassOfCompositeMaterial].\nEXAMPLE 2\tWood, muscle, and skin can be represented by instances of [ClassOfCompositeMaterial].',
                                    'icon': 'iso_class',
                                    'name': 'ClassOfCompositeMaterial',
                                    'roles': {},
                                    'subtypes': [],
                                    'supertypes': ['part2:ClassOfArrangedIndividual'],
                                    'uri': 'part2:ClassOfCompositeMaterial'},
 'part2:ClassOfCompositionOfIndividual': {'abstract': False,
                                          'comment': 'A [ClassOfCompositionOfIndividual] is a [ClassOfRelationship] whose members are members of [CompositionOfIndividual].\nEXAMPLE\tThat piles of sand may have grains of sand as parts is an example of [ClassOfCompositionOfIndividual].',
                                          'icon': 'iso_co_rel',
                                          'name': 'ClassOfCompositionOfIndividual',
                                          'roles': {'part2:hasClassOfPart': {'from': 'part2:ClassOfCompositionOfIndividual',
                                                                             'name': 'hasClassOfPart',
                                                                             'type_uri': 'part2:ClassOfIndividual',
                                                                             'uri': 'part2:hasClassOfPart'},
                                                    'part2:hasClassOfWhole': {'from': 'part2:ClassOfCompositionOfIndividual',
                                                                              'name': 'hasClassOfWhole',
                                                                              'type_uri': 'part2:ClassOfIndividual',
                                                                              'uri': 'part2:hasClassOfWhole'},
                                                    'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                 'is_optional': True,
                                                                                 'name': 'hasEnd1Cardinality',
                                                                                 'type_uri': 'part2:Cardinality',
                                                                                 'uri': 'part2:hasEnd1Cardinality'},
                                                    'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                 'is_optional': True,
                                                                                 'name': 'hasEnd2Cardinality',
                                                                                 'type_uri': 'part2:Cardinality',
                                                                                 'uri': 'part2:hasEnd2Cardinality'}},
                                          'subtypes': ['part2:ClassOfArrangementOfIndividual',
                                                       'part2:ClassOfParticipation',
                                                       'part2:ClassOfTemporalWholePart'],
                                          'supertypes': ['part2:ClassOfRelationship'],
                                          'uri': 'part2:ClassOfCompositionOfIndividual'},
 'part2:ClassOfCompound': {'abstract': False,
                           'comment': 'A [ClassOfCompound] is a [ClassOfArrangedIndividual] whose members consist of arrangements of molecules of the same or different types, bound together by intermolecular forces. This includes both mixtures and alloys.\nNOTE  Compound is being used here in a more general sense than chemical compound.\nEXAMPLE\tWater, sulphuric acid, sand, limestone, and steel can be represented by instances of [ClassOfCompound].',
                           'icon': 'iso_class',
                           'name': 'ClassOfCompound',
                           'roles': {},
                           'subtypes': [],
                           'supertypes': ['part2:ClassOfArrangedIndividual'],
                           'uri': 'part2:ClassOfCompound'},
 'part2:ClassOfConnectionOfIndividual': {'abstract': True,
                                         'comment': 'A [ClassOfConnectionOfIndividual] is a [ClassOfRelationship] whose members are members of [ConnectionOfIndividual]. It indicates that a member of the class_of_side_1 [ClassOfIndividual] can be connected to a member of the class_of_side_2 [ClassOfIndividual].\nNOTE 1\tThe class_of_side_1 and class_of_side_2 indicate the [ClassOfIndividual] that is the side_1 and side_2 respectively in a [ConnectionOfIndividual] that is a member of this [ClassOfConnectionOfIndividual].\nNOTE 2\tFlexible, rigid, and welded cannot be represented as instances of [ClassOfConnectionOfIndividual], these are classes of the materials connected or used in the connection.\nEXAMPLE\tElectrical connection between wires is a [ClassOfConnectionOfIndividual].',
                                         'icon': 'iso_co_rel',
                                         'name': 'ClassOfConnectionOfIndividual',
                                         'roles': {'part2:hasClassOfSide1': {'from': 'part2:ClassOfConnectionOfIndividual',
                                                                             'name': 'hasClassOfSide1',
                                                                             'type_uri': 'part2:ClassOfIndividual',
                                                                             'uri': 'part2:hasClassOfSide1'},
                                                   'part2:hasClassOfSide2': {'from': 'part2:ClassOfConnectionOfIndividual',
                                                                             'name': 'hasClassOfSide2',
                                                                             'type_uri': 'part2:ClassOfIndividual',
                                                                             'uri': 'part2:hasClassOfSide2'},
                                                   'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                'is_optional': True,
                                                                                'name': 'hasEnd1Cardinality',
                                                                                'type_uri': 'part2:Cardinality',
                                                                                'uri': 'part2:hasEnd1Cardinality'},
                                                   'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                'is_optional': True,
                                                                                'name': 'hasEnd2Cardinality',
                                                                                'type_uri': 'part2:Cardinality',
                                                                                'uri': 'part2:hasEnd2Cardinality'}},
                                         'subtypes': ['part2:ClassOfDirectConnection',
                                                      'part2:ClassOfIndirectConnection'],
                                         'supertypes': ['part2:ClassOfRelationship'],
                                         'uri': 'part2:ClassOfConnectionOfIndividual'},
 'part2:ClassOfContainmentOfIndividual': {'abstract': False,
                                          'comment': "A [ClassOfContainmentOfIndividual] is a [ClassOfRelativeLocation] whose members are instances of [ContainmentOfIndividual]. It indicates that a member of the class_of_locator [ClassOfIndividual] can contain a member of the class_of_located [ClassOfIndividual].\nEXAMPLE\tThat 'de-icing fluid' can be contained by a '1500ml screw-top plastic bottle' is a [ClassOfContainmentOfIndividual].",
                                          'icon': 'iso_co_rel',
                                          'name': 'ClassOfContainmentOfIndividual',
                                          'roles': {'part2:hasClassOfLocated': {'from': 'part2:ClassOfRelativeLocation',
                                                                                'name': 'hasClassOfLocated',
                                                                                'type_uri': 'part2:ClassOfIndividual',
                                                                                'uri': 'part2:hasClassOfLocated'},
                                                    'part2:hasClassOfLocator': {'from': 'part2:ClassOfRelativeLocation',
                                                                                'name': 'hasClassOfLocator',
                                                                                'type_uri': 'part2:ClassOfIndividual',
                                                                                'uri': 'part2:hasClassOfLocator'},
                                                    'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                 'is_optional': True,
                                                                                 'name': 'hasEnd1Cardinality',
                                                                                 'type_uri': 'part2:Cardinality',
                                                                                 'uri': 'part2:hasEnd1Cardinality'},
                                                    'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                 'is_optional': True,
                                                                                 'name': 'hasEnd2Cardinality',
                                                                                 'type_uri': 'part2:Cardinality',
                                                                                 'uri': 'part2:hasEnd2Cardinality'}},
                                          'subtypes': [],
                                          'supertypes': ['part2:ClassOfRelativeLocation'],
                                          'uri': 'part2:ClassOfContainmentOfIndividual'},
 'part2:ClassOfDefinition': {'abstract': False,
                             'comment': "A [ClassOfDefinition] is a [ClassOfRepresentationOfThing] that indicates the pattern is a definition of the represented [Class].\nEXAMPLE\tThe link between the pattern 'something that moves liquid' and the [Class] that goes by the name 'pump' in English can be represented by an instance of [ClassOfDefinition].",
                             'icon': 'iso_co_rel',
                             'name': 'ClassOfDefinition',
                             'roles': {'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                    'is_optional': True,
                                                                    'name': 'hasEnd1Cardinality',
                                                                    'type_uri': 'part2:Cardinality',
                                                                    'uri': 'part2:hasEnd1Cardinality'},
                                       'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                    'is_optional': True,
                                                                    'name': 'hasEnd2Cardinality',
                                                                    'type_uri': 'part2:Cardinality',
                                                                    'uri': 'part2:hasEnd2Cardinality'},
                                       'part2:hasPattern': {'from': 'part2:ClassOfRepresentationOfThing',
                                                            'name': 'hasPattern',
                                                            'type_uri': 'part2:ClassOfInformationRepresentation',
                                                            'uri': 'part2:hasPattern'},
                                       'part2:hasRepresented': {'from': 'part2:ClassOfDefinition',
                                                                'name': 'hasRepresented',
                                                                'type_uri': 'part2:Class',
                                                                'uri': 'part2:hasRepresented'}},
                             'subtypes': [],
                             'supertypes': ['part2:ClassOfRepresentationOfThing'],
                             'uri': 'part2:ClassOfDefinition'},
 'part2:ClassOfDescription': {'abstract': False,
                              'comment': "A [ClassOfDescription] is a [ClassOfRepresentationOfThing] that indicates the pattern is a description of the represented [Thing].\nEXAMPLE\tThe link between the pattern 'this is an old bilge pump' and a particular pump can be represented by an instance of [ClassOfDescription].",
                              'icon': 'iso_co_rel',
                              'name': 'ClassOfDescription',
                              'roles': {'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                     'is_optional': True,
                                                                     'name': 'hasEnd1Cardinality',
                                                                     'type_uri': 'part2:Cardinality',
                                                                     'uri': 'part2:hasEnd1Cardinality'},
                                        'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                     'is_optional': True,
                                                                     'name': 'hasEnd2Cardinality',
                                                                     'type_uri': 'part2:Cardinality',
                                                                     'uri': 'part2:hasEnd2Cardinality'},
                                        'part2:hasPattern': {'from': 'part2:ClassOfRepresentationOfThing',
                                                             'name': 'hasPattern',
                                                             'type_uri': 'part2:ClassOfInformationRepresentation',
                                                             'uri': 'part2:hasPattern'},
                                        'part2:hasRepresented': {'from': 'part2:ClassOfRepresentationOfThing',
                                                                 'name': 'hasRepresented',
                                                                 'type_uri': 'part2:Thing',
                                                                 'uri': 'part2:hasRepresented'}},
                              'subtypes': [],
                              'supertypes': ['part2:ClassOfRepresentationOfThing'],
                              'uri': 'part2:ClassOfDescription'},
 'part2:ClassOfDimensionForShape': {'abstract': False,
                                    'comment': 'A [ClassOfDimensionForShape] is a [ClassOfClassOfRelationship] that indicates that members of the class_of_shape have a dimension that is a member of the class_of_dimension.\nEXAMPLE\tSpecifying that members of the "class of circle" have members of "class of diameter" is an instance of [ClassOfDimensionForShape].',
                                    'icon': 'iso_co_classofrel',
                                    'name': 'ClassOfDimensionForShape',
                                    'roles': {'part2:hasClassOfDimension': {'from': 'part2:ClassOfDimensionForShape',
                                                                            'name': 'hasClassOfDimension',
                                                                            'type_uri': 'part2:ClassOfShapeDimension',
                                                                            'uri': 'part2:hasClassOfDimension'},
                                              'part2:hasClassOfShape': {'from': 'part2:ClassOfDimensionForShape',
                                                                        'name': 'hasClassOfShape',
                                                                        'type_uri': 'part2:ClassOfShape',
                                                                        'uri': 'part2:hasClassOfShape'}},
                                    'subtypes': [],
                                    'supertypes': ['part2:ClassOfClassOfRelationship'],
                                    'uri': 'part2:ClassOfDimensionForShape'},
 'part2:ClassOfDirectConnection': {'abstract': False,
                                   'comment': 'A [ClassOfDirectConnection] is a [ClassOfConnectionOfIndividual] whose members are members of [DirectConnection].\nEXAMPLE\tThree-pin electrical plug into three-pin socket is an example of [ClassOfDirectConnection].',
                                   'icon': 'iso_co_rel',
                                   'name': 'ClassOfDirectConnection',
                                   'roles': {'part2:hasClassOfSide1': {'from': 'part2:ClassOfConnectionOfIndividual',
                                                                       'name': 'hasClassOfSide1',
                                                                       'type_uri': 'part2:ClassOfIndividual',
                                                                       'uri': 'part2:hasClassOfSide1'},
                                             'part2:hasClassOfSide2': {'from': 'part2:ClassOfConnectionOfIndividual',
                                                                       'name': 'hasClassOfSide2',
                                                                       'type_uri': 'part2:ClassOfIndividual',
                                                                       'uri': 'part2:hasClassOfSide2'},
                                             'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                          'is_optional': True,
                                                                          'name': 'hasEnd1Cardinality',
                                                                          'type_uri': 'part2:Cardinality',
                                                                          'uri': 'part2:hasEnd1Cardinality'},
                                             'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                          'is_optional': True,
                                                                          'name': 'hasEnd2Cardinality',
                                                                          'type_uri': 'part2:Cardinality',
                                                                          'uri': 'part2:hasEnd2Cardinality'}},
                                   'subtypes': [],
                                   'supertypes': ['part2:ClassOfConnectionOfIndividual'],
                                   'uri': 'part2:ClassOfDirectConnection'},
 'part2:ClassOfEvent': {'abstract': False,
                        'comment': 'A [ClassOfEvent] is a [ClassOfIndividual] whose members are members of [Event].\nEXAMPLE\tContinuous and instantaneous are instances of [ClassOfEvent]. A continuous event is one such as a stream boundary flowing through a pipe.',
                        'icon': 'iso_class',
                        'name': 'ClassOfEvent',
                        'roles': {},
                        'subtypes': ['part2:ClassOfPointInTime'],
                        'supertypes': ['part2:ClassOfIndividual'],
                        'uri': 'part2:ClassOfEvent'},
 'part2:ClassOfExpressInformationRepresentation': {'abstract': True,
                                                   'comment': 'A [ClassOfExpressInformationRepresentation] is a [ClassOfInformationRepresentation] that is defined by ISO 10303-11.',
                                                   'icon': 'iso_class',
                                                   'name': 'ClassOfExpressInformationRepresentation',
                                                   'roles': {},
                                                   'subtypes': ['part2:ExpressBinary',
                                                                'part2:ExpressBoolean',
                                                                'part2:ExpressInteger',
                                                                'part2:ExpressLogical',
                                                                'part2:ExpressReal',
                                                                'part2:ExpressString'],
                                                   'supertypes': ['part2:ClassOfInformationRepresentation'],
                                                   'uri': 'part2:ClassOfExpressInformationRepresentation'},
 'part2:ClassOfFeature': {'abstract': False,
                          'comment': "A [ClassOfFeature] is a [ClassOfArrangedIndividual] whose members are contiguous, non-separable parts of some [PossibleIndividual] and have an incompletely defined boundary.\nEXAMPLE\tThe classes known as 'mountain', 'groove', 'rim', 'nozzle', 'nose', and 'raised face' can all be represented as instances of [ClassOfFeature].",
                          'icon': 'iso_class',
                          'name': 'ClassOfFeature',
                          'roles': {},
                          'subtypes': [],
                          'supertypes': ['part2:ClassOfArrangedIndividual'],
                          'uri': 'part2:ClassOfFeature'},
 'part2:ClassOfFeatureWholePart': {'abstract': False,
                                   'comment': 'A [ClassOfFeatureWholePart] is a [ClassOfArrangementOfIndividual] whose members are instances of [FeatureWholePart].\nEXAMPLE\tThermowells have stems, and tables have tops are examples of [ClassOfFeatureWholePart].',
                                   'icon': 'iso_co_rel',
                                   'name': 'ClassOfFeatureWholePart',
                                   'roles': {'part2:hasClassOfPart': {'from': 'part2:ClassOfCompositionOfIndividual',
                                                                      'name': 'hasClassOfPart',
                                                                      'type_uri': 'part2:ClassOfIndividual',
                                                                      'uri': 'part2:hasClassOfPart'},
                                             'part2:hasClassOfWhole': {'from': 'part2:ClassOfArrangementOfIndividual',
                                                                       'name': 'hasClassOfWhole',
                                                                       'type_uri': 'part2:ClassOfArrangedIndividual',
                                                                       'uri': 'part2:hasClassOfWhole'},
                                             'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                          'is_optional': True,
                                                                          'name': 'hasEnd1Cardinality',
                                                                          'type_uri': 'part2:Cardinality',
                                                                          'uri': 'part2:hasEnd1Cardinality'},
                                             'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                          'is_optional': True,
                                                                          'name': 'hasEnd2Cardinality',
                                                                          'type_uri': 'part2:Cardinality',
                                                                          'uri': 'part2:hasEnd2Cardinality'}},
                                   'subtypes': [],
                                   'supertypes': ['part2:ClassOfArrangementOfIndividual'],
                                   'uri': 'part2:ClassOfFeatureWholePart'},
 'part2:ClassOfFunctionalMapping': {'abstract': False,
                                    'comment': 'A [ClassOfFunctionalMapping] is a [ClassOfRelationship] that is a many to one mapping. A [ClassOfFunctionalMapping] is a function.\nNOTE 1\tThis entity type would naturally have the name of function, but this is an EXPRESS reserved word.\nNOTE 2\tThe significance of a function being a many to one mapping is that the same answer is always obtained. So, for example, 5 - 3 always gives 2. Note that the minus function on two other arguments can also give 2.\nNOTE 3\tWhen there are several arguments to a function, then these are presented in a [MultidimensionalObject].\nEXAMPLE\tMinus is an example of [ClassOfFunctionalMapping].',
                                    'icon': 'iso_co_rel',
                                    'name': 'ClassOfFunctionalMapping',
                                    'roles': {'part2:hasCodomain': {'from': 'part2:ClassOfFunctionalMapping',
                                                                    'name': 'hasCodomain',
                                                                    'type_uri': 'part2:Class',
                                                                    'uri': 'part2:hasCodomain'},
                                              'part2:hasDomain': {'from': 'part2:ClassOfFunctionalMapping',
                                                                  'name': 'hasDomain',
                                                                  'type_uri': 'part2:Class',
                                                                  'uri': 'part2:hasDomain'},
                                              'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                           'is_optional': True,
                                                                           'name': 'hasEnd1Cardinality',
                                                                           'type_uri': 'part2:Cardinality',
                                                                           'uri': 'part2:hasEnd1Cardinality'},
                                              'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                           'is_optional': True,
                                                                           'name': 'hasEnd2Cardinality',
                                                                           'type_uri': 'part2:Cardinality',
                                                                           'uri': 'part2:hasEnd2Cardinality'}},
                                    'subtypes': ['part2:ClassOfIsomorphicFunctionalMapping'],
                                    'supertypes': ['part2:ClassOfRelationship'],
                                    'uri': 'part2:ClassOfFunctionalMapping'},
 'part2:ClassOfFunctionalObject': {'abstract': False,
                                   'comment': 'A [ClassOfFunctionalObject] is a [ClassOfArrangedIndividual] that indicates the function or purpose of an object.\nEXAMPLE\tPump, valve, and car are examples of [ClassOfFunctionalObject]. Particular models of pump, valve, car, etc are instances of [ClassOfInanimatePhysicalObject] that are specializations of these instances of [ClassOfFunctionalObject].',
                                   'icon': 'iso_class',
                                   'name': 'ClassOfFunctionalObject',
                                   'roles': {},
                                   'subtypes': [],
                                   'supertypes': ['part2:ClassOfArrangedIndividual'],
                                   'uri': 'part2:ClassOfFunctionalObject'},
 'part2:ClassOfIdentification': {'abstract': False,
                                 'comment': "A [ClassOfIdentification] is a [ClassOfRepresentationOfThing] that indicates that the pattern is used to refer to the represented thing.\nEXAMPLE\tThe link between the pattern 'AC-1234' and a particular pump, indicating that members of 'AC-1234' are used to refer to the pump, can be represented by an instance of [ClassOfIdentification].",
                                 'icon': 'iso_co_rel',
                                 'name': 'ClassOfIdentification',
                                 'roles': {'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                        'is_optional': True,
                                                                        'name': 'hasEnd1Cardinality',
                                                                        'type_uri': 'part2:Cardinality',
                                                                        'uri': 'part2:hasEnd1Cardinality'},
                                           'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                        'is_optional': True,
                                                                        'name': 'hasEnd2Cardinality',
                                                                        'type_uri': 'part2:Cardinality',
                                                                        'uri': 'part2:hasEnd2Cardinality'},
                                           'part2:hasPattern': {'from': 'part2:ClassOfRepresentationOfThing',
                                                                'name': 'hasPattern',
                                                                'type_uri': 'part2:ClassOfInformationRepresentation',
                                                                'uri': 'part2:hasPattern'},
                                           'part2:hasRepresented': {'from': 'part2:ClassOfRepresentationOfThing',
                                                                    'name': 'hasRepresented',
                                                                    'type_uri': 'part2:Thing',
                                                                    'uri': 'part2:hasRepresented'}},
                                 'subtypes': [],
                                 'supertypes': ['part2:ClassOfRepresentationOfThing'],
                                 'uri': 'part2:ClassOfIdentification'},
 'part2:ClassOfInanimatePhysicalObject': {'abstract': False,
                                          'comment': "A [ClassOfInanimatePhysicalObject] is a  [ClassOfArrangedIndividual] whose members are not living.\nEXAMPLE\tThe class known as 'oil' can be represented by an instance of [ClassOfInanimatePhysicalObject].",
                                          'icon': 'iso_class',
                                          'name': 'ClassOfInanimatePhysicalObject',
                                          'roles': {},
                                          'subtypes': [],
                                          'supertypes': ['part2:ClassOfArrangedIndividual'],
                                          'uri': 'part2:ClassOfInanimatePhysicalObject'},
 'part2:ClassOfIndirectConnection': {'abstract': False,
                                     'comment': 'A [ClassOfIndirectConnection] is a [ClassOfConnectionOfIndividual] whose members are members of [IndirectConnection].\nEXAMPLE\tDrip pipe indirectly connected to drain funnel is an example of [ClassOfIndirectConnection].',
                                     'icon': 'iso_co_rel',
                                     'name': 'ClassOfIndirectConnection',
                                     'roles': {'part2:hasClassOfSide1': {'from': 'part2:ClassOfConnectionOfIndividual',
                                                                         'name': 'hasClassOfSide1',
                                                                         'type_uri': 'part2:ClassOfIndividual',
                                                                         'uri': 'part2:hasClassOfSide1'},
                                               'part2:hasClassOfSide2': {'from': 'part2:ClassOfConnectionOfIndividual',
                                                                         'name': 'hasClassOfSide2',
                                                                         'type_uri': 'part2:ClassOfIndividual',
                                                                         'uri': 'part2:hasClassOfSide2'},
                                               'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                            'is_optional': True,
                                                                            'name': 'hasEnd1Cardinality',
                                                                            'type_uri': 'part2:Cardinality',
                                                                            'uri': 'part2:hasEnd1Cardinality'},
                                               'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                            'is_optional': True,
                                                                            'name': 'hasEnd2Cardinality',
                                                                            'type_uri': 'part2:Cardinality',
                                                                            'uri': 'part2:hasEnd2Cardinality'}},
                                     'subtypes': [],
                                     'supertypes': ['part2:ClassOfConnectionOfIndividual'],
                                     'uri': 'part2:ClassOfIndirectConnection'},
 'part2:ClassOfIndirectProperty': {'abstract': False,
                                   'comment': 'A [ClassOfIndirectProperty] is a [ClassOfRelationship] that indicates that a member of the [ClassOfIndividual] can possess a member of the [ClassOfProperty] as an [IndirectProperty] of this type.\nEXAMPLE\tMaximum Allowable Working Pressure is a [ClassOfIndirectProperty] that is indicated by a pressure, and can be possessed by a pressure vessel.',
                                   'icon': 'iso_co_rel',
                                   'name': 'ClassOfIndirectProperty',
                                   'roles': {'part2:hasClassOfPossessor': {'from': 'part2:ClassOfIndirectProperty',
                                                                           'name': 'hasClassOfPossessor',
                                                                           'type_uri': 'part2:ClassOfIndividual',
                                                                           'uri': 'part2:hasClassOfPossessor'},
                                             'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                          'is_optional': True,
                                                                          'name': 'hasEnd1Cardinality',
                                                                          'type_uri': 'part2:Cardinality',
                                                                          'uri': 'part2:hasEnd1Cardinality'},
                                             'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                          'is_optional': True,
                                                                          'name': 'hasEnd2Cardinality',
                                                                          'type_uri': 'part2:Cardinality',
                                                                          'uri': 'part2:hasEnd2Cardinality'},
                                             'part2:hasPropertySpace': {'from': 'part2:ClassOfIndirectProperty',
                                                                        'name': 'hasPropertySpace',
                                                                        'type_uri': 'part2:PropertySpace',
                                                                        'uri': 'part2:hasPropertySpace'}},
                                   'subtypes': [],
                                   'supertypes': ['part2:ClassOfRelationship'],
                                   'uri': 'part2:ClassOfIndirectProperty'},
 'part2:ClassOfIndividual': {'abstract': False,
                             'comment': "A [ClassOfIndividual] is a [Class] whose members are all instances of [PossibleIndividual].\nEXAMPLE 1 The class known as 'engineer', whose members are people qualified or skilled in engineering principles and practices is an instance of [ClassOfIndividual].\nEXAMPLE 2 The class known as 'pump', whose members can cause liquids to flow, is an instance of [ClassOfIndividual].",
                             'icon': 'iso_class',
                             'name': 'ClassOfIndividual',
                             'roles': {},
                             'subtypes': ['part2:ClassOfArrangedIndividual',
                                          'part2:ClassOfEvent',
                                          'part2:ClassOfPeriodInTime',
                                          'part2:IndividualDimension',
                                          'part2:ParticipatingRoleAndDomain',
                                          'part2:Property',
                                          'part2:Status'],
                             'supertypes': ['part2:Class'],
                             'uri': 'part2:ClassOfIndividual'},
 'part2:ClassOfIndividualUsedInConnection': {'abstract': False,
                                             'comment': 'A [ClassOfIndividualUsedInConnection] is a [ClassOfRelationship] whose members are members of [IndividualUsedInConnection]. It indicates that a member of the [ClassOfIndividual] is used in a [ClassOfConnectionOfIndividual].\nEXAMPLE\tThe link between the [ClassOfConnectionOfIndividual] that indicates that B12 type beams are connected to pipe hangers, and the [ClassOfIndividual] "20mm Diameter bolt", that indicates that four 20mm diameter bolts are used in the connection of a pipe hanger to a type B12 beam can be represented by an instance of  [ClassOfIndividualInvolvedInConnection].',
                                             'icon': 'iso_co_rel',
                                             'name': 'ClassOfIndividualUsedInConnection',
                                             'roles': {'part2:hasClassOfConnection': {'from': 'part2:ClassOfIndividualUsedInConnection',
                                                                                      'name': 'hasClassOfConnection',
                                                                                      'type_uri': 'part2:ClassOfConnectionOfIndividual',
                                                                                      'uri': 'part2:hasClassOfConnection'},
                                                       'part2:hasClassOfUsage': {'from': 'part2:ClassOfIndividualUsedInConnection',
                                                                                 'name': 'hasClassOfUsage',
                                                                                 'type_uri': 'part2:ClassOfIndividual',
                                                                                 'uri': 'part2:hasClassOfUsage'},
                                                       'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                    'is_optional': True,
                                                                                    'name': 'hasEnd1Cardinality',
                                                                                    'type_uri': 'part2:Cardinality',
                                                                                    'uri': 'part2:hasEnd1Cardinality'},
                                                       'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                    'is_optional': True,
                                                                                    'name': 'hasEnd2Cardinality',
                                                                                    'type_uri': 'part2:Cardinality',
                                                                                    'uri': 'part2:hasEnd2Cardinality'}},
                                             'subtypes': [],
                                             'supertypes': ['part2:ClassOfRelationship'],
                                             'uri': 'part2:ClassOfIndividualUsedInConnection'},
 'part2:ClassOfInformationObject': {'abstract': False,
                                    'comment': 'A [ClassOfInformationObject] is a [ClassOfArrangedIndividual] whose members are members of zero or more [ClassOfInformationRepresentation] and of zero or more [ClassOfInformationPresentation].\nNOTE\tUsually, it is a physical_object (like a paper document) that is classified as a [ClassOfInformationObject].\nEXAMPLE\tNewspaper is a [ClassOfInformationObject].',
                                    'icon': 'iso_class',
                                    'name': 'ClassOfInformationObject',
                                    'roles': {},
                                    'subtypes': [],
                                    'supertypes': ['part2:ClassOfArrangedIndividual'],
                                    'uri': 'part2:ClassOfInformationObject'},
 'part2:ClassOfInformationPresentation': {'abstract': False,
                                          'comment': 'A [ClassOfInformationPresentation] is a [ClassOfArrangedIndividual] that distinguishes styles for presenting information. \nEXAMPLE\tThe character styles bold, italic, Times New Roman, and 16pt can be represented as instances of [ClassOfInformationPresentation].',
                                          'icon': 'iso_class',
                                          'name': 'ClassOfInformationPresentation',
                                          'roles': {},
                                          'subtypes': [],
                                          'supertypes': ['part2:ClassOfArrangedIndividual'],
                                          'uri': 'part2:ClassOfInformationPresentation'},
 'part2:ClassOfInformationRepresentation': {'abstract': False,
                                            'comment': "A [ClassOfInformationRepresentation] is a  [ClassOfArrangedIndividual] that defines a pattern that represents information.\nEXAMPLE\tThe texts formed with the pattern of characters 's' concatenated with 'u' concatenated with 'n' are members of the 'sun' [ClassOfInformationRepresentation].",
                                            'icon': 'iso_class',
                                            'name': 'ClassOfInformationRepresentation',
                                            'roles': {},
                                            'subtypes': ['part2:ClassOfExpressInformationRepresentation',
                                                         'part2:RepresentationOfGregorianDateAndUtcTime'],
                                            'supertypes': ['part2:ClassOfArrangedIndividual'],
                                            'uri': 'part2:ClassOfInformationRepresentation'},
 'part2:ClassOfIntendedRoleAndDomain': {'abstract': False,
                                        'comment': 'A [ClassOfIntendedRoleAndDomain] is a [ClassOfRelationship] that indicates that a member of the [ClassOfIndividual] is intended to act as a member of the [RoleAndDomain].\nEXAMPLE\tPumps are intended to play the [RoleAndDomain] of performer in some pumping activity.',
                                        'icon': 'iso_co_rel',
                                        'name': 'ClassOfIntendedRoleAndDomain',
                                        'roles': {'part2:hasClassOfPlayer': {'from': 'part2:ClassOfIntendedRoleAndDomain',
                                                                             'name': 'hasClassOfPlayer',
                                                                             'type_uri': 'part2:ClassOfIndividual',
                                                                             'uri': 'part2:hasClassOfPlayer'},
                                                  'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                               'is_optional': True,
                                                                               'name': 'hasEnd1Cardinality',
                                                                               'type_uri': 'part2:Cardinality',
                                                                               'uri': 'part2:hasEnd1Cardinality'},
                                                  'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                               'is_optional': True,
                                                                               'name': 'hasEnd2Cardinality',
                                                                               'type_uri': 'part2:Cardinality',
                                                                               'uri': 'part2:hasEnd2Cardinality'},
                                                  'part2:hasPlayed': {'from': 'part2:ClassOfIntendedRoleAndDomain',
                                                                      'name': 'hasPlayed',
                                                                      'type_uri': 'part2:RoleAndDomain',
                                                                      'uri': 'part2:hasPlayed'}},
                                        'subtypes': [],
                                        'supertypes': ['part2:ClassOfRelationship'],
                                        'uri': 'part2:ClassOfIntendedRoleAndDomain'},
 'part2:ClassOfInvolvementByReference': {'abstract': False,
                                         'comment': 'A [ClassOfInvolvementByReference] is a [ClassOfRelationship] whose members are instances of [InvolvementByReference].\nEXAMPLE\tDiscussion of historical activities is an example of [ClassOfInvolvementByReference].',
                                         'icon': 'iso_co_rel',
                                         'name': 'ClassOfInvolvementByReference',
                                         'roles': {'part2:hasClassOfInvolved': {'from': 'part2:ClassOfInvolvementByReference',
                                                                                'name': 'hasClassOfInvolved',
                                                                                'type_uri': 'part2:RoleAndDomain',
                                                                                'uri': 'part2:hasClassOfInvolved'},
                                                   'part2:hasClassOfInvolver': {'from': 'part2:ClassOfInvolvementByReference',
                                                                                'name': 'hasClassOfInvolver',
                                                                                'type_uri': 'part2:ClassOfActivity',
                                                                                'uri': 'part2:hasClassOfInvolver'},
                                                   'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                'is_optional': True,
                                                                                'name': 'hasEnd1Cardinality',
                                                                                'type_uri': 'part2:Cardinality',
                                                                                'uri': 'part2:hasEnd1Cardinality'},
                                                   'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                'is_optional': True,
                                                                                'name': 'hasEnd2Cardinality',
                                                                                'type_uri': 'part2:Cardinality',
                                                                                'uri': 'part2:hasEnd2Cardinality'}},
                                         'subtypes': [],
                                         'supertypes': ['part2:ClassOfRelationship'],
                                         'uri': 'part2:ClassOfInvolvementByReference'},
 'part2:ClassOfIsomorphicFunctionalMapping': {'abstract': False,
                                              'comment': 'A [ClassOfIsomorphicFunctionalMapping] is a [ClassOfFunctionalMapping] that is isomorphic.\nEXAMPLE\tThe natural logarithm function is a [ClassOfIsomorphicFunctionalMapping].',
                                              'icon': 'iso_co_rel',
                                              'name': 'ClassOfIsomorphicFunctionalMapping',
                                              'roles': {'part2:hasCodomain': {'from': 'part2:ClassOfFunctionalMapping',
                                                                              'name': 'hasCodomain',
                                                                              'type_uri': 'part2:Class',
                                                                              'uri': 'part2:hasCodomain'},
                                                        'part2:hasDomain': {'from': 'part2:ClassOfFunctionalMapping',
                                                                            'name': 'hasDomain',
                                                                            'type_uri': 'part2:Class',
                                                                            'uri': 'part2:hasDomain'},
                                                        'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                     'is_optional': True,
                                                                                     'name': 'hasEnd1Cardinality',
                                                                                     'type_uri': 'part2:Cardinality',
                                                                                     'uri': 'part2:hasEnd1Cardinality'},
                                                        'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                     'is_optional': True,
                                                                                     'name': 'hasEnd2Cardinality',
                                                                                     'type_uri': 'part2:Cardinality',
                                                                                     'uri': 'part2:hasEnd2Cardinality'}},
                                              'subtypes': ['part2:ClassOfScaleConversion',
                                                           'part2:Scale'],
                                              'supertypes': ['part2:ClassOfFunctionalMapping'],
                                              'uri': 'part2:ClassOfIsomorphicFunctionalMapping'},
 'part2:ClassOfLeftNamespace': {'abstract': False,
                                'comment': 'A [ClassOfLeftNamespace] is a [ClassOfNamespace] that indicates that the class_of_part is the left namespace for the members of the class_of_class_of_whole.\nEXAMPLE\tWC1: is the left namespace for customer site identifiers for Water Company 1.',
                                'icon': 'iso_co_classofrel',
                                'name': 'ClassOfLeftNamespace',
                                'roles': {'part2:hasClassOfClassOfWhole': {'from': 'part2:ClassOfNamespace',
                                                                           'name': 'hasClassOfClassOfWhole',
                                                                           'type_uri': 'part2:ClassOfClassOfInformationRepresentation',
                                                                           'uri': 'part2:hasClassOfClassOfWhole'},
                                          'part2:hasClassOfPart': {'from': 'part2:ClassOfNamespace',
                                                                   'name': 'hasClassOfPart',
                                                                   'type_uri': 'part2:ClassOfInformationRepresentation',
                                                                   'uri': 'part2:hasClassOfPart'}},
                                'subtypes': [],
                                'supertypes': ['part2:ClassOfNamespace'],
                                'uri': 'part2:ClassOfLeftNamespace'},
 'part2:ClassOfLifecycleStage': {'abstract': False,
                                 'comment': 'A [ClassOfLifecycleStage] is a [ClassOfRelationship] whose members are members of [LifecycleStage].\nEXAMPLE\tPlanned, required, expected, and proposed can be represented by instances of [ClassOfLifecycleStage].',
                                 'icon': 'iso_co_rel',
                                 'name': 'ClassOfLifecycleStage',
                                 'roles': {'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                        'is_optional': True,
                                                                        'name': 'hasEnd1Cardinality',
                                                                        'type_uri': 'part2:Cardinality',
                                                                        'uri': 'part2:hasEnd1Cardinality'},
                                           'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                        'is_optional': True,
                                                                        'name': 'hasEnd2Cardinality',
                                                                        'type_uri': 'part2:Cardinality',
                                                                        'uri': 'part2:hasEnd2Cardinality'}},
                                 'subtypes': [],
                                 'supertypes': ['part2:ClassOfRelationship'],
                                 'uri': 'part2:ClassOfLifecycleStage'},
 'part2:ClassOfMolecule': {'abstract': False,
                           'comment': 'A [ClassOfMolecule] is a [ClassOfArrangedIndividual] whose members are molecules.\nEXAMPLE\tH2O, H2SO4, and DNA can be represented by instances of [ClassOfMolecule].',
                           'icon': 'iso_class',
                           'name': 'ClassOfMolecule',
                           'roles': {},
                           'subtypes': [],
                           'supertypes': ['part2:ClassOfArrangedIndividual'],
                           'uri': 'part2:ClassOfMolecule'},
 'part2:ClassOfMultidimensionalObject': {'abstract': False,
                                         'comment': 'A [ClassOfMultidimensionalObject] is a [ClassOfAbstractObject] whose members are instances of [MultidimensionalObject]. The role played by each position in the classified [MultidimensionalObject] is specified at the same position in the [Roles] attribute. Constant values that apply to any position in [Roles] are specified in the same position in the [Parameters] attribute. The cardinalities for the roles attribute are specified by the same position in the cardinalities attribute.\nEXAMPLE\tThe definition of the input to a function y = a + bx to convert Celsius to Fahrenheit with roles [A, b, x] defining the input [MultidimensionalObject], and parameters [32,1.8] with parameter_position list [1,2] is an example of a [ClassOfMultidimensionalObject].',
                                         'icon': 'iso_class',
                                         'name': 'ClassOfMultidimensionalObject',
                                         'roles': {'part2:hasCardinalities': {'from': 'part2:ClassOfMultidimensionalObject',
                                                                              'is_list': True,
                                                                              'is_optional': True,
                                                                              'name': 'hasCardinalities',
                                                                              'type_uri': 'part2:Cardinality',
                                                                              'uri': 'part2:hasCardinalities'},
                                                   'part2:hasOptionalElement': {'from': 'part2:ClassOfMultidimensionalObject',
                                                                                'is_list': True,
                                                                                'name': 'hasOptionalElement',
                                                                                'type_uri': 'part2:ExpressBoolean',
                                                                                'uri': 'part2:hasOptionalElement'},
                                                   'part2:hasParameterPosition': {'from': 'part2:ClassOfMultidimensionalObject',
                                                                                  'is_list': True,
                                                                                  'is_optional': True,
                                                                                  'name': 'hasParameterPosition',
                                                                                  'type_uri': 'part2:ExpressInteger',
                                                                                  'uri': 'part2:hasParameterPosition'},
                                                   'part2:hasParameters': {'from': 'part2:ClassOfMultidimensionalObject',
                                                                           'is_list': True,
                                                                           'is_optional': True,
                                                                           'name': 'hasParameters',
                                                                           'type_uri': 'part2:Thing',
                                                                           'uri': 'part2:hasParameters'},
                                                   'part2:hasRoles': {'from': 'part2:ClassOfMultidimensionalObject',
                                                                      'is_list': True,
                                                                      'name': 'hasRoles',
                                                                      'type_uri': 'part2:RoleAndDomain',
                                                                      'uri': 'part2:hasRoles'}},
                                         'subtypes': [],
                                         'supertypes': ['part2:ClassOfAbstractObject'],
                                         'uri': 'part2:ClassOfMultidimensionalObject'},
 'part2:ClassOfNamespace': {'abstract': False,
                            'comment': 'A [ClassOfNamespace] is a [ClassOfClassOfRelationship] that indicates that a [ClassOfInformationRepresentation] is the class_of_part used as a namespace for each member of a [ClassOfClassOfInformationRepresentation] that is the class_of_class_of_whole.\nEXAMPLE\tWC1: is used as the name space for a set of water company identifiers.',
                            'icon': 'iso_co_classofrel',
                            'name': 'ClassOfNamespace',
                            'roles': {'part2:hasClassOfClassOfWhole': {'from': 'part2:ClassOfNamespace',
                                                                       'name': 'hasClassOfClassOfWhole',
                                                                       'type_uri': 'part2:ClassOfClassOfInformationRepresentation',
                                                                       'uri': 'part2:hasClassOfClassOfWhole'},
                                      'part2:hasClassOfPart': {'from': 'part2:ClassOfNamespace',
                                                               'name': 'hasClassOfPart',
                                                               'type_uri': 'part2:ClassOfInformationRepresentation',
                                                               'uri': 'part2:hasClassOfPart'}},
                            'subtypes': ['part2:ClassOfLeftNamespace',
                                         'part2:ClassOfRightNamespace'],
                            'supertypes': ['part2:ClassOfClassOfRelationship'],
                            'uri': 'part2:ClassOfNamespace'},
 'part2:ClassOfNumber': {'abstract': False,
                         'comment': 'A [ClassOfNumber] is a [ClassOfClass] whose members are members of [ArithmeticNumber].\nEXAMPLE\tThe class of prime numbers can be represented by an instance [ClassOfNumber].',
                         'icon': 'iso_classofclass',
                         'name': 'ClassOfNumber',
                         'roles': {},
                         'subtypes': ['part2:EnumeratedNumberSet',
                                      'part2:NumberSpace'],
                         'supertypes': ['part2:ClassOfClass'],
                         'uri': 'part2:ClassOfNumber'},
 'part2:ClassOfOrganism': {'abstract': False,
                           'comment': 'A [ClassOfOrganism] is a [ClassOfArrangedIndividual] whose members are living organisms. \nEXAMPLE\tHuman being, sheep, earthworm, oak tree, and bacteria are instances of [ClassOfOrganism].',
                           'icon': 'iso_class',
                           'name': 'ClassOfOrganism',
                           'roles': {},
                           'subtypes': ['part2:ClassOfPerson'],
                           'supertypes': ['part2:ClassOfArrangedIndividual'],
                           'uri': 'part2:ClassOfOrganism'},
 'part2:ClassOfOrganization': {'abstract': False,
                               'comment': 'A [ClassOfOrganization] is a [ClassOfArrangedIndividual] whose members are instances of [PhysicalObject] that are composed of temporal parts of people and other assets, and are organised with a particular purpose.\nEXAMPLE\tCompany, government, and project team can be represented by instances of [ClassOfOrganization]',
                               'icon': 'iso_class',
                               'name': 'ClassOfOrganization',
                               'roles': {},
                               'subtypes': [],
                               'supertypes': ['part2:ClassOfArrangedIndividual'],
                               'uri': 'part2:ClassOfOrganization'},
 'part2:ClassOfParticipation': {'abstract': False,
                                'comment': 'A [ClassOfParticipation] is a [ClassOfCompositionOfIndividual] that indicates a member of an instance of [ParticipatingRoleAndDomain] participates in a member of an instance of [ClassOfActivity].\nEXAMPLE\t"Conductor of a musical performance" is an example of [ClassOfParticipation].',
                                'icon': 'iso_co_rel',
                                'name': 'ClassOfParticipation',
                                'roles': {'part2:hasClassOfPart': {'from': 'part2:ClassOfParticipation',
                                                                   'name': 'hasClassOfPart',
                                                                   'type_uri': 'part2:ParticipatingRoleAndDomain',
                                                                   'uri': 'part2:hasClassOfPart'},
                                          'part2:hasClassOfWhole': {'from': 'part2:ClassOfParticipation',
                                                                    'name': 'hasClassOfWhole',
                                                                    'type_uri': 'part2:ClassOfActivity',
                                                                    'uri': 'part2:hasClassOfWhole'},
                                          'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                       'is_optional': True,
                                                                       'name': 'hasEnd1Cardinality',
                                                                       'type_uri': 'part2:Cardinality',
                                                                       'uri': 'part2:hasEnd1Cardinality'},
                                          'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                       'is_optional': True,
                                                                       'name': 'hasEnd2Cardinality',
                                                                       'type_uri': 'part2:Cardinality',
                                                                       'uri': 'part2:hasEnd2Cardinality'}},
                                'subtypes': [],
                                'supertypes': ['part2:ClassOfCompositionOfIndividual'],
                                'uri': 'part2:ClassOfParticipation'},
 'part2:ClassOfParticulateMaterial': {'abstract': False,
                                      'comment': 'A [ClassOfParticulateMaterial] is a [ClassOfArrangedIndividual] whose members are arranged amounts of super-molecular sized objects of the same or different types.\nEXAMPLE\tPile of sand, sand and cement mix, bag of bolts, catalyst fill for a reactor are examples of [ClassOfParticulateMaterial].',
                                      'icon': 'iso_class',
                                      'name': 'ClassOfParticulateMaterial',
                                      'roles': {},
                                      'subtypes': [],
                                      'supertypes': ['part2:ClassOfArrangedIndividual'],
                                      'uri': 'part2:ClassOfParticulateMaterial'},
 'part2:ClassOfPeriodInTime': {'abstract': False,
                               'comment': 'A [ClassOfPeriodInTime] is a [ClassOfIndividual] whose members are instances of [PeriodInTime].\nEXAMPLE\tMonday and June are examples of [ClassOfPeriodInTime].',
                               'icon': 'iso_class',
                               'name': 'ClassOfPeriodInTime',
                               'roles': {},
                               'subtypes': [],
                               'supertypes': ['part2:ClassOfIndividual'],
                               'uri': 'part2:ClassOfPeriodInTime'},
 'part2:ClassOfPerson': {'abstract': False,
                         'comment': 'A [ClassOfPerson] is a [ClassOfOrganism] whose members are people.\nEXAMPLE\tEngineer, plant manager, student, male, female, senior citizen, adult, girl, and boy can be represented by instances of [ClassOfPerson]. Engineer, plant manager, and student are also instances of [ClassOfFunctionalObject].',
                         'icon': 'iso_class',
                         'name': 'ClassOfPerson',
                         'roles': {},
                         'subtypes': [],
                         'supertypes': ['part2:ClassOfOrganism'],
                         'uri': 'part2:ClassOfPerson'},
 'part2:ClassOfPointInTime': {'abstract': False,
                              'comment': 'A [ClassOfPointInTime] is a [ClassOfEvent] whose members are members of [PointInTime]. \nEXAMPLE\tMidnight is a [ClassOfPointInTime]',
                              'icon': 'iso_class',
                              'name': 'ClassOfPointInTime',
                              'roles': {},
                              'subtypes': [],
                              'supertypes': ['part2:ClassOfEvent'],
                              'uri': 'part2:ClassOfPointInTime'},
 'part2:ClassOfPossibleRoleAndDomain': {'abstract': False,
                                        'comment': 'A [ClassOfPossibleRoleAndDomain] is a [ClassOfRelationship] that indicates the [RoleAndDomain] that can be played by a member of the [ClassOfIndividual], in some [Activity].\nEXAMPLE\tPumps can play the [Role] of anchor (although they are not intended to do so).',
                                        'icon': 'iso_co_rel',
                                        'name': 'ClassOfPossibleRoleAndDomain',
                                        'roles': {'part2:hasClassOfPlayer': {'from': 'part2:ClassOfPossibleRoleAndDomain',
                                                                             'name': 'hasClassOfPlayer',
                                                                             'type_uri': 'part2:ClassOfIndividual',
                                                                             'uri': 'part2:hasClassOfPlayer'},
                                                  'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                               'is_optional': True,
                                                                               'name': 'hasEnd1Cardinality',
                                                                               'type_uri': 'part2:Cardinality',
                                                                               'uri': 'part2:hasEnd1Cardinality'},
                                                  'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                               'is_optional': True,
                                                                               'name': 'hasEnd2Cardinality',
                                                                               'type_uri': 'part2:Cardinality',
                                                                               'uri': 'part2:hasEnd2Cardinality'},
                                                  'part2:hasPlayed': {'from': 'part2:ClassOfPossibleRoleAndDomain',
                                                                      'name': 'hasPlayed',
                                                                      'type_uri': 'part2:RoleAndDomain',
                                                                      'uri': 'part2:hasPlayed'}},
                                        'subtypes': [],
                                        'supertypes': ['part2:ClassOfRelationship'],
                                        'uri': 'part2:ClassOfPossibleRoleAndDomain'},
 'part2:ClassOfProperty': {'abstract': False,
                           'comment': "A [ClassOfProperty] is a [ClassOfClassOfIndividual] whose members are instances of [Property]. \nEXAMPLE\t'Temperature' is an example of [ClassOfProperty].",
                           'icon': 'iso_classofclass',
                           'name': 'ClassOfProperty',
                           'roles': {},
                           'subtypes': ['part2:EnumeratedPropertySet',
                                        'part2:PropertySpace'],
                           'supertypes': ['part2:ClassOfClassOfIndividual'],
                           'uri': 'part2:ClassOfProperty'},
 'part2:ClassOfPropertySpace': {'abstract': False,
                                'comment': 'A [ClassOfPropertySpace] is a [ClassOfClass] whose members are members of [PropertySpace].\nEXAMPLE 1\tProperty curves, property areas, and property volumes of various dimensionality and degrees of freedom are members of [ClassOfPropertySpace].\nEXAMPLE 2\tPump performance curve is an example of [ClassOfPropertySpace].',
                                'icon': 'iso_classofclass',
                                'name': 'ClassOfPropertySpace',
                                'roles': {},
                                'subtypes': [],
                                'supertypes': ['part2:ClassOfClass'],
                                'uri': 'part2:ClassOfPropertySpace'},
 'part2:ClassOfRecognition': {'abstract': False,
                              'comment': 'A [ClassOfRecognition] is a [ClassOfRelationship] that indicates that a member of a [ClassOfActivity] may result in the recognition of a member of a [Class].\nEXAMPLE A measurement activity may result in the recognition of the [Classification] of a [PossibleIndividual] by a [Property].',
                              'icon': 'iso_co_rel',
                              'name': 'ClassOfRecognition',
                              'roles': {'part2:hasClassOfRecognized': {'from': 'part2:ClassOfRecognition',
                                                                       'name': 'hasClassOfRecognized',
                                                                       'type_uri': 'part2:Class',
                                                                       'uri': 'part2:hasClassOfRecognized'},
                                        'part2:hasClassOfRecognizing': {'from': 'part2:ClassOfRecognition',
                                                                        'name': 'hasClassOfRecognizing',
                                                                        'type_uri': 'part2:ClassOfActivity',
                                                                        'uri': 'part2:hasClassOfRecognizing'},
                                        'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                     'is_optional': True,
                                                                     'name': 'hasEnd1Cardinality',
                                                                     'type_uri': 'part2:Cardinality',
                                                                     'uri': 'part2:hasEnd1Cardinality'},
                                        'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                     'is_optional': True,
                                                                     'name': 'hasEnd2Cardinality',
                                                                     'type_uri': 'part2:Cardinality',
                                                                     'uri': 'part2:hasEnd2Cardinality'}},
                              'subtypes': [],
                              'supertypes': ['part2:ClassOfRelationship'],
                              'uri': 'part2:ClassOfRecognition'},
 'part2:ClassOfRelationship': {'abstract': False,
                               'comment': 'A [ClassOfRelationship] is a  [ClassOf AbstractObject] whose members are members of [Relationship].',
                               'icon': 'iso_co_rel',
                               'name': 'ClassOfRelationship',
                               'roles': {'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                      'is_optional': True,
                                                                      'name': 'hasEnd1Cardinality',
                                                                      'type_uri': 'part2:Cardinality',
                                                                      'uri': 'part2:hasEnd1Cardinality'},
                                         'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                      'is_optional': True,
                                                                      'name': 'hasEnd2Cardinality',
                                                                      'type_uri': 'part2:Cardinality',
                                                                      'uri': 'part2:hasEnd2Cardinality'}},
                               'subtypes': ['part2:ClassOfApproval',
                                            'part2:ClassOfApprovalByStatus',
                                            'part2:ClassOfAssertion',
                                            'part2:ClassOfCauseOfBeginningOfClassOfIndividual',
                                            'part2:ClassOfCauseOfEndingOfClassOfIndividual',
                                            'part2:ClassOfClassification',
                                            'part2:ClassOfCompositionOfIndividual',
                                            'part2:ClassOfConnectionOfIndividual',
                                            'part2:ClassOfFunctionalMapping',
                                            'part2:ClassOfIndirectProperty',
                                            'part2:ClassOfIndividualUsedInConnection',
                                            'part2:ClassOfIntendedRoleAndDomain',
                                            'part2:ClassOfInvolvementByReference',
                                            'part2:ClassOfLifecycleStage',
                                            'part2:ClassOfPossibleRoleAndDomain',
                                            'part2:ClassOfRecognition',
                                            'part2:ClassOfRelationshipWithRelatedEnd1',
                                            'part2:ClassOfRelationshipWithRelatedEnd2',
                                            'part2:ClassOfRelationshipWithSignature',
                                            'part2:ClassOfRelativeLocation',
                                            'part2:ClassOfRepresentationOfThing',
                                            'part2:ClassOfRepresentationTranslation',
                                            'part2:ClassOfResponsibilityForRepresentation',
                                            'part2:ClassOfSpecialization',
                                            'part2:ClassOfTemporalSequence',
                                            'part2:ClassOfUsageOfRepresentation',
                                            'part2:DimensionOfIndividual',
                                            'part2:PropertyForShapeDimension'],
                               'supertypes': ['part2:ClassOfAbstractObject'],
                               'uri': 'part2:ClassOfRelationship'},
 'part2:ClassOfRelationshipWithRelatedEnd1': {'abstract': False,
                                              'comment': 'A [ClassOfRelationshipWithRelatedEnd1] is a [ClassOfRelationship] where a particular [Thing] is related in the [ClassOfRelationship], rather than the members of a [Class]. The related [Thing] plays the [RoleAndDomain] indicated by the class_of_end_1 attribute.\nEXAMPLE\tProducts manufactured by Bloggs & Co is a [ClassOfRelationshipWithRelatedEnd1] that points to Bloggs & Co as the related [Thing].',
                                              'icon': 'iso_co_rel',
                                              'name': 'ClassOfRelationshipWithRelatedEnd1',
                                              'roles': {'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                     'is_optional': True,
                                                                                     'name': 'hasEnd1Cardinality',
                                                                                     'type_uri': 'part2:Cardinality',
                                                                                     'uri': 'part2:hasEnd1Cardinality'},
                                                        'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                     'is_optional': True,
                                                                                     'name': 'hasEnd2Cardinality',
                                                                                     'type_uri': 'part2:Cardinality',
                                                                                     'uri': 'part2:hasEnd2Cardinality'},
                                                        'part2:hasRelated': {'from': 'part2:ClassOfRelationshipWithRelatedEnd1',
                                                                             'name': 'hasRelated',
                                                                             'type_uri': 'part2:Thing',
                                                                             'uri': 'part2:hasRelated'}},
                                              'subtypes': [],
                                              'supertypes': ['part2:ClassOfRelationship'],
                                              'uri': 'part2:ClassOfRelationshipWithRelatedEnd1'},
 'part2:ClassOfRelationshipWithRelatedEnd2': {'abstract': False,
                                              'comment': 'A [ClassOfRelationshipWithRelatedEnd2] is a [ClassOfRelationship] where a particular [Thing] is related in the [ClassOfRelationship], rather than the members of a [Class]. The related [Thing] plays the [RoleAndDomain] indicated by the class_of_end_2 attribute.\nEXAMPLE\tPossession of welding skills by John Doe is an example of [ClassOfRelationshipWithRelatedEnd2], where John Doe is the related thing.',
                                              'icon': 'iso_co_rel',
                                              'name': 'ClassOfRelationshipWithRelatedEnd2',
                                              'roles': {'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                     'is_optional': True,
                                                                                     'name': 'hasEnd1Cardinality',
                                                                                     'type_uri': 'part2:Cardinality',
                                                                                     'uri': 'part2:hasEnd1Cardinality'},
                                                        'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                     'is_optional': True,
                                                                                     'name': 'hasEnd2Cardinality',
                                                                                     'type_uri': 'part2:Cardinality',
                                                                                     'uri': 'part2:hasEnd2Cardinality'},
                                                        'part2:hasRelated': {'from': 'part2:ClassOfRelationshipWithRelatedEnd2',
                                                                             'name': 'hasRelated',
                                                                             'type_uri': 'part2:Thing',
                                                                             'uri': 'part2:hasRelated'}},
                                              'subtypes': [],
                                              'supertypes': ['part2:ClassOfRelationship'],
                                              'uri': 'part2:ClassOfRelationshipWithRelatedEnd2'},
 'part2:ClassOfRelationshipWithSignature': {'abstract': False,
                                            'comment': 'A [ClassOfRelationshipWithSignature] is a [ClassOfRelationship] that may have a [RoleAndDomain] specified for each end.\nNOTE\tA [ClassOfRelationshipWithSignature] is analogous to a simple EXPRESS attribute and its inverse. More complex objects can be modelled with [MultidimensionalObject] and [ClassOfMultidimensionalObject].\nEXAMPLE\tMarried is a [ClassOfRelationship] where class_of_end_1 is the [RoleAndDomain] husband, and class_of_end_2 the [RoleAndDomain] wife.',
                                            'icon': 'iso_co_rel',
                                            'name': 'ClassOfRelationshipWithSignature',
                                            'roles': {'part2:hasClassOfEnd1': {'from': 'part2:ClassOfRelationshipWithSignature',
                                                                               'is_optional': True,
                                                                               'name': 'hasClassOfEnd1',
                                                                               'type_uri': 'part2:RoleAndDomain',
                                                                               'uri': 'part2:hasClassOfEnd1'},
                                                      'part2:hasClassOfEnd2': {'from': 'part2:ClassOfRelationshipWithSignature',
                                                                               'is_optional': True,
                                                                               'name': 'hasClassOfEnd2',
                                                                               'type_uri': 'part2:RoleAndDomain',
                                                                               'uri': 'part2:hasClassOfEnd2'},
                                                      'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                   'is_optional': True,
                                                                                   'name': 'hasEnd1Cardinality',
                                                                                   'type_uri': 'part2:Cardinality',
                                                                                   'uri': 'part2:hasEnd1Cardinality'},
                                                      'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                   'is_optional': True,
                                                                                   'name': 'hasEnd2Cardinality',
                                                                                   'type_uri': 'part2:Cardinality',
                                                                                   'uri': 'part2:hasEnd2Cardinality'}},
                                            'subtypes': [],
                                            'supertypes': ['part2:ClassOfRelationship'],
                                            'uri': 'part2:ClassOfRelationshipWithSignature'},
 'part2:ClassOfRelativeLocation': {'abstract': False,
                                   'comment': 'A [ClassOfRelativeLocation] is a [ClassOfRelationship] whose members are instances of [RelativeLocation].\nEXAMPLE\tBeside, above, and below are examples of [ClassOfRelativeLocation].',
                                   'icon': 'iso_co_rel',
                                   'name': 'ClassOfRelativeLocation',
                                   'roles': {'part2:hasClassOfLocated': {'from': 'part2:ClassOfRelativeLocation',
                                                                         'name': 'hasClassOfLocated',
                                                                         'type_uri': 'part2:ClassOfIndividual',
                                                                         'uri': 'part2:hasClassOfLocated'},
                                             'part2:hasClassOfLocator': {'from': 'part2:ClassOfRelativeLocation',
                                                                         'name': 'hasClassOfLocator',
                                                                         'type_uri': 'part2:ClassOfIndividual',
                                                                         'uri': 'part2:hasClassOfLocator'},
                                             'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                          'is_optional': True,
                                                                          'name': 'hasEnd1Cardinality',
                                                                          'type_uri': 'part2:Cardinality',
                                                                          'uri': 'part2:hasEnd1Cardinality'},
                                             'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                          'is_optional': True,
                                                                          'name': 'hasEnd2Cardinality',
                                                                          'type_uri': 'part2:Cardinality',
                                                                          'uri': 'part2:hasEnd2Cardinality'}},
                                   'subtypes': ['part2:ClassOfContainmentOfIndividual'],
                                   'supertypes': ['part2:ClassOfRelationship'],
                                   'uri': 'part2:ClassOfRelativeLocation'},
 'part2:ClassOfRepresentationOfThing': {'abstract': False,
                                        'comment': "A [ClassOfRepresentationOfThing] is a [ClassOfRelationship] that indicates that all members of the pattern [ClassOfInformationRepresentation] represent the [Thing].\nEXAMPLE\tThe [ClassOfRelationship] that indicates that occurrences of the pattern denoted by 'London' represent the concept of the capital of the United Kingdom can be represented by an instance of [ClassOfRepresentationOfThing].",
                                        'icon': 'iso_co_rel',
                                        'name': 'ClassOfRepresentationOfThing',
                                        'roles': {'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                               'is_optional': True,
                                                                               'name': 'hasEnd1Cardinality',
                                                                               'type_uri': 'part2:Cardinality',
                                                                               'uri': 'part2:hasEnd1Cardinality'},
                                                  'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                               'is_optional': True,
                                                                               'name': 'hasEnd2Cardinality',
                                                                               'type_uri': 'part2:Cardinality',
                                                                               'uri': 'part2:hasEnd2Cardinality'},
                                                  'part2:hasPattern': {'from': 'part2:ClassOfRepresentationOfThing',
                                                                       'name': 'hasPattern',
                                                                       'type_uri': 'part2:ClassOfInformationRepresentation',
                                                                       'uri': 'part2:hasPattern'},
                                                  'part2:hasRepresented': {'from': 'part2:ClassOfRepresentationOfThing',
                                                                           'name': 'hasRepresented',
                                                                           'type_uri': 'part2:Thing',
                                                                           'uri': 'part2:hasRepresented'}},
                                        'subtypes': ['part2:ClassOfDefinition',
                                                     'part2:ClassOfDescription',
                                                     'part2:ClassOfIdentification'],
                                        'supertypes': ['part2:ClassOfRelationship'],
                                        'uri': 'part2:ClassOfRepresentationOfThing'},
 'part2:ClassOfRepresentationTranslation': {'abstract': False,
                                            'comment': "A [ClassOfRepresentationTranslation] is a [ClassOfRelationship] that indicates the translation of two instances of [ClassOfInformationRepresentation].\nEXAMPLE\tThe link that indicates that the representations 'F' and '15' are equivalent (concept of fifteen in hexadecimal and octal respectively) can be represented by an instance of [ClassOfRepresentationTranslation].",
                                            'icon': 'iso_co_rel',
                                            'name': 'ClassOfRepresentationTranslation',
                                            'roles': {'part2:hasClassOfFirst': {'from': 'part2:ClassOfRepresentationTranslation',
                                                                                'name': 'hasClassOfFirst',
                                                                                'type_uri': 'part2:ClassOfInformationRepresentation',
                                                                                'uri': 'part2:hasClassOfFirst'},
                                                      'part2:hasClassOfSecond': {'from': 'part2:ClassOfRepresentationTranslation',
                                                                                 'name': 'hasClassOfSecond',
                                                                                 'type_uri': 'part2:ClassOfInformationRepresentation',
                                                                                 'uri': 'part2:hasClassOfSecond'},
                                                      'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                   'is_optional': True,
                                                                                   'name': 'hasEnd1Cardinality',
                                                                                   'type_uri': 'part2:Cardinality',
                                                                                   'uri': 'part2:hasEnd1Cardinality'},
                                                      'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                   'is_optional': True,
                                                                                   'name': 'hasEnd2Cardinality',
                                                                                   'type_uri': 'part2:Cardinality',
                                                                                   'uri': 'part2:hasEnd2Cardinality'}},
                                            'subtypes': [],
                                            'supertypes': ['part2:ClassOfRelationship'],
                                            'uri': 'part2:ClassOfRepresentationTranslation'},
 'part2:ClassOfResponsibilityForRepresentation': {'abstract': False,
                                                  'comment': 'A [ClassOfResponsibilityForRepresentation] is a [ClassOfRelationship] whose members indicate that a [PossibleIndividual] (usually an organization) deems that members of the pattern can be used as representations of the represented thing.\nEXAMPLE\tThe link between the identification of pump #1234 and the XYZ Corporation, that indicates that the XYZ Corporation controls this identification, can be represented by an instance of  [ClassOfResponsibilityForRepresentation].',
                                                  'icon': 'iso_co_rel',
                                                  'name': 'ClassOfResponsibilityForRepresentation',
                                                  'roles': {'part2:hasClassOfControlled': {'from': 'part2:ClassOfResponsibilityForRepresentation',
                                                                                           'name': 'hasClassOfControlled',
                                                                                           'type_uri': 'part2:ClassOfRepresentationOfThing',
                                                                                           'uri': 'part2:hasClassOfControlled'},
                                                            'part2:hasController': {'from': 'part2:ClassOfResponsibilityForRepresentation',
                                                                                    'name': 'hasController',
                                                                                    'type_uri': 'part2:PossibleIndividual',
                                                                                    'uri': 'part2:hasController'},
                                                            'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                         'is_optional': True,
                                                                                         'name': 'hasEnd1Cardinality',
                                                                                         'type_uri': 'part2:Cardinality',
                                                                                         'uri': 'part2:hasEnd1Cardinality'},
                                                            'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                                         'is_optional': True,
                                                                                         'name': 'hasEnd2Cardinality',
                                                                                         'type_uri': 'part2:Cardinality',
                                                                                         'uri': 'part2:hasEnd2Cardinality'}},
                                                  'subtypes': [],
                                                  'supertypes': ['part2:ClassOfRelationship'],
                                                  'uri': 'part2:ClassOfResponsibilityForRepresentation'},
 'part2:ClassOfRightNamespace': {'abstract': False,
                                 'comment': 'A [ClassOfRightNamespace] is a [ClassOfNamespace] where the class_of_part is the namespace for the members of the class_of_class_of_whole.',
                                 'icon': 'iso_co_classofrel',
                                 'name': 'ClassOfRightNamespace',
                                 'roles': {'part2:hasClassOfClassOfWhole': {'from': 'part2:ClassOfNamespace',
                                                                            'name': 'hasClassOfClassOfWhole',
                                                                            'type_uri': 'part2:ClassOfClassOfInformationRepresentation',
                                                                            'uri': 'part2:hasClassOfClassOfWhole'},
                                           'part2:hasClassOfPart': {'from': 'part2:ClassOfNamespace',
                                                                    'name': 'hasClassOfPart',
                                                                    'type_uri': 'part2:ClassOfInformationRepresentation',
                                                                    'uri': 'part2:hasClassOfPart'}},
                                 'subtypes': [],
                                 'supertypes': ['part2:ClassOfNamespace'],
                                 'uri': 'part2:ClassOfRightNamespace'},
 'part2:ClassOfScale': {'abstract': False,
                        'comment': 'A [ClassOfScale] is a [ClassOfClassOfRelationship] whose members are instances of [Scale].\nEXAMPLE\tSI Unit is an example of class_of_scale.',
                        'icon': 'iso_co_classofrel',
                        'name': 'ClassOfScale',
                        'roles': {},
                        'subtypes': [],
                        'supertypes': ['part2:ClassOfClassOfRelationship'],
                        'uri': 'part2:ClassOfScale'},
 'part2:ClassOfScaleConversion': {'abstract': False,
                                  'comment': 'A [ClassOfScaleConversion] is a [ClassOfIsomorphicFunctionalMapping] that defines a conversion between two different scales of units used for the quantification of properties.\nEXAMPLE\tThe Fahrenheit scale for temperature and the Celsius scale for temperature can each be represented by instances of [Scale]. The conversion between these scales can be represented by an instance of [ClassOfScaleConversion].',
                                  'icon': 'iso_co_rel',
                                  'name': 'ClassOfScaleConversion',
                                  'roles': {'part2:hasCodomain': {'from': 'part2:ClassOfScaleConversion',
                                                                  'name': 'hasCodomain',
                                                                  'type_uri': 'part2:Scale',
                                                                  'uri': 'part2:hasCodomain'},
                                            'part2:hasDomain': {'from': 'part2:ClassOfScaleConversion',
                                                                'name': 'hasDomain',
                                                                'type_uri': 'part2:Scale',
                                                                'uri': 'part2:hasDomain'},
                                            'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                         'is_optional': True,
                                                                         'name': 'hasEnd1Cardinality',
                                                                         'type_uri': 'part2:Cardinality',
                                                                         'uri': 'part2:hasEnd1Cardinality'},
                                            'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                         'is_optional': True,
                                                                         'name': 'hasEnd2Cardinality',
                                                                         'type_uri': 'part2:Cardinality',
                                                                         'uri': 'part2:hasEnd2Cardinality'}},
                                  'subtypes': [],
                                  'supertypes': ['part2:ClassOfIsomorphicFunctionalMapping'],
                                  'uri': 'part2:ClassOfScaleConversion'},
 'part2:ClassOfShape': {'abstract': False,
                        'comment': 'A [ClassOfShape] is a [PropertySpace] that has instances of [Shape] as its members.\nEXAMPLE\tRegular geometric forms such as line, circle, square, cylinder, sphere, and cone can be represented by instances of [ClassOfShape].',
                        'icon': 'iso_classofclass',
                        'name': 'ClassOfShape',
                        'roles': {},
                        'subtypes': [],
                        'supertypes': ['part2:PropertySpace'],
                        'uri': 'part2:ClassOfShape'},
 'part2:ClassOfShapeDimension': {'abstract': False,
                                 'comment': 'A [ClassOfShapeDimension] is a [ClassOfClass] that is a dimension of a [ClassOfShape].\nEXAMPLE\tDiameter, height, and width (in general rather than a particular one) are examples of [ClassOfShapeDimension].',
                                 'icon': 'iso_classofclass',
                                 'name': 'ClassOfShapeDimension',
                                 'roles': {},
                                 'subtypes': [],
                                 'supertypes': ['part2:ClassOfClass'],
                                 'uri': 'part2:ClassOfShapeDimension'},
 'part2:ClassOfSpecialization': {'abstract': False,
                                 'comment': 'A [ClassOfSpecialization] is a [ClassOfRelationship] whose members are instances of [Specialization]. It indicates that a member of the class_of_subclass is a subclass of a member of the class_of_superclass.\nEXAMPLE\tThe [ClassOfSpecialization] that indicates that members of the class "family of ASME bolts", e.g. 3 inch, 2 inch bolts, are specializations of members of the [EnumeratedPropertySet] "set of bolt lengths", e.g. 3 inch, 2 inch.',
                                 'icon': 'iso_co_rel',
                                 'name': 'ClassOfSpecialization',
                                 'roles': {'part2:hasClassOfSubclass': {'from': 'part2:ClassOfSpecialization',
                                                                        'name': 'hasClassOfSubclass',
                                                                        'type_uri': 'part2:ClassOfClass',
                                                                        'uri': 'part2:hasClassOfSubclass'},
                                           'part2:hasClassOfSuperclass': {'from': 'part2:ClassOfSpecialization',
                                                                          'name': 'hasClassOfSuperclass',
                                                                          'type_uri': 'part2:ClassOfClass',
                                                                          'uri': 'part2:hasClassOfSuperclass'},
                                           'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                        'is_optional': True,
                                                                        'name': 'hasEnd1Cardinality',
                                                                        'type_uri': 'part2:Cardinality',
                                                                        'uri': 'part2:hasEnd1Cardinality'},
                                           'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                        'is_optional': True,
                                                                        'name': 'hasEnd2Cardinality',
                                                                        'type_uri': 'part2:Cardinality',
                                                                        'uri': 'part2:hasEnd2Cardinality'}},
                                 'subtypes': [],
                                 'supertypes': ['part2:ClassOfRelationship'],
                                 'uri': 'part2:ClassOfSpecialization'},
 'part2:ClassOfStatus': {'abstract': False,
                         'comment': 'A [ClassOfStatus] is a [ClassOfClassOfIndividual] whose members are a [Status].\nEXAMPLE\tAn example of [ClassOfStatus] is approval, with members: not assessed, approved, rejected.',
                         'icon': 'iso_classofclass',
                         'name': 'ClassOfStatus',
                         'roles': {},
                         'subtypes': [],
                         'supertypes': ['part2:ClassOfClassOfIndividual'],
                         'uri': 'part2:ClassOfStatus'},
 'part2:ClassOfSubAtomicParticle': {'abstract': False,
                                    'comment': 'A [ClassOfSubAtomicParticle] is a [ClassOfArrangedIndividual] whose members are constituent particles of atoms.\nEXAMPLE\tProton, electron, meson, neutron, positron, muon, quark, and neutrino can be represented by instances of [ClassOfSubAtomicParticle].',
                                    'icon': 'iso_class',
                                    'name': 'ClassOfSubAtomicParticle',
                                    'roles': {},
                                    'subtypes': [],
                                    'supertypes': ['part2:ClassOfArrangedIndividual'],
                                    'uri': 'part2:ClassOfSubAtomicParticle'},
 'part2:ClassOfTemporalSequence': {'abstract': False,
                                   'comment': 'A [ClassOfTemporalSequence] is a [ClassOfRelationship] where the sequence is of a temporal nature.\nEXAMPLE 1\tThe link that indicates that members of July follow members of June can be represented by an instance of [ClassOfTemporalSequence].\nEXAMPLE 2\tThe link that indicates that emptying activities for a tank precede cleaning activities can be represented by an instance of [ClassOfTemporalSequence].',
                                   'icon': 'iso_co_rel',
                                   'name': 'ClassOfTemporalSequence',
                                   'roles': {'part2:hasClassOfPredecessor': {'from': 'part2:ClassOfTemporalSequence',
                                                                             'name': 'hasClassOfPredecessor',
                                                                             'type_uri': 'part2:ClassOfIndividual',
                                                                             'uri': 'part2:hasClassOfPredecessor'},
                                             'part2:hasClassOfSuccessor': {'from': 'part2:ClassOfTemporalSequence',
                                                                           'name': 'hasClassOfSuccessor',
                                                                           'type_uri': 'part2:ClassOfIndividual',
                                                                           'uri': 'part2:hasClassOfSuccessor'},
                                             'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                          'is_optional': True,
                                                                          'name': 'hasEnd1Cardinality',
                                                                          'type_uri': 'part2:Cardinality',
                                                                          'uri': 'part2:hasEnd1Cardinality'},
                                             'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                          'is_optional': True,
                                                                          'name': 'hasEnd2Cardinality',
                                                                          'type_uri': 'part2:Cardinality',
                                                                          'uri': 'part2:hasEnd2Cardinality'}},
                                   'subtypes': [],
                                   'supertypes': ['part2:ClassOfRelationship'],
                                   'uri': 'part2:ClassOfTemporalSequence'},
 'part2:ClassOfTemporalWholePart': {'abstract': False,
                                    'comment': 'A [ClassOfTemporalWholePart] is a [ClassOfCompositionOfIndividual] whose members are members of [TemporalWholePart].\nEXAMPLE\tThe class that indicates that Crude Distillation Units may have a maximum naphtha mode can be represented by an instance of [ClassOfTemporalWholePart].',
                                    'icon': 'iso_co_rel',
                                    'name': 'ClassOfTemporalWholePart',
                                    'roles': {'part2:hasClassOfPart': {'from': 'part2:ClassOfCompositionOfIndividual',
                                                                       'name': 'hasClassOfPart',
                                                                       'type_uri': 'part2:ClassOfIndividual',
                                                                       'uri': 'part2:hasClassOfPart'},
                                              'part2:hasClassOfWhole': {'from': 'part2:ClassOfCompositionOfIndividual',
                                                                        'name': 'hasClassOfWhole',
                                                                        'type_uri': 'part2:ClassOfIndividual',
                                                                        'uri': 'part2:hasClassOfWhole'},
                                              'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                           'is_optional': True,
                                                                           'name': 'hasEnd1Cardinality',
                                                                           'type_uri': 'part2:Cardinality',
                                                                           'uri': 'part2:hasEnd1Cardinality'},
                                              'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                           'is_optional': True,
                                                                           'name': 'hasEnd2Cardinality',
                                                                           'type_uri': 'part2:Cardinality',
                                                                           'uri': 'part2:hasEnd2Cardinality'}},
                                    'subtypes': [],
                                    'supertypes': ['part2:ClassOfCompositionOfIndividual'],
                                    'uri': 'part2:ClassOfTemporalWholePart'},
 'part2:ClassOfUsageOfRepresentation': {'abstract': False,
                                        'comment': 'A [ClassOfUsageOfRepresentation] is a [ClassOfRelationship] whose members indicate that a [PossibleIndividual] (usually an organization) reads or otherwise uses members of the pattern as a representation of the represented thing.\nEXAMPLE\tThe link between the identification of pump #1234 and contractor ABC Ltd, that indicates that ABC Ltd uses this identification can be represented by a class of [ClassOfUsageOfRepresentation].',
                                        'icon': 'iso_co_rel',
                                        'name': 'ClassOfUsageOfRepresentation',
                                        'roles': {'part2:hasClassOfUsed': {'from': 'part2:ClassOfUsageOfRepresentation',
                                                                           'name': 'hasClassOfUsed',
                                                                           'type_uri': 'part2:ClassOfRepresentationOfThing',
                                                                           'uri': 'part2:hasClassOfUsed'},
                                                  'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                               'is_optional': True,
                                                                               'name': 'hasEnd1Cardinality',
                                                                               'type_uri': 'part2:Cardinality',
                                                                               'uri': 'part2:hasEnd1Cardinality'},
                                                  'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                               'is_optional': True,
                                                                               'name': 'hasEnd2Cardinality',
                                                                               'type_uri': 'part2:Cardinality',
                                                                               'uri': 'part2:hasEnd2Cardinality'},
                                                  'part2:hasUser': {'from': 'part2:ClassOfUsageOfRepresentation',
                                                                    'name': 'hasUser',
                                                                    'type_uri': 'part2:PossibleIndividual',
                                                                    'uri': 'part2:hasUser'}},
                                        'subtypes': [],
                                        'supertypes': ['part2:ClassOfRelationship'],
                                        'uri': 'part2:ClassOfUsageOfRepresentation'},
 'part2:Classification': {'abstract': False,
                          'comment': "A [Classification] is type of [Relationship] that indicates that the classified [Thing] is a member of the classifier [Class]. [Classification] is not transitive. \nNOTE\tA subtype of [Relationship] is transitive if when A is related to B, and B is related to C in the same way, then A is necessarily related to C in that way. [Specialization] and [Composition] are examples of transitive subtypes of [Relationship]. However, because [Classification] is not transitive does not mean that A cannot be related to C in the same way, only that it does not necessarily follow from A being related to B and B being related to C.\nEXAMPLE 1\tThe [Relationship] that indicates that London is a member of the class known as 'capital city' is a [Classification].\nEXAMPLE 2\tThe [Relationship] that indicates that 'pump' is a member of the class 'equipment type' is a [Classification].",
                          'icon': 'iso_rel',
                          'name': 'Classification',
                          'roles': {'part2:hasClassified': {'from': 'part2:Classification',
                                                            'name': 'hasClassified',
                                                            'type_uri': 'part2:Thing',
                                                            'uri': 'part2:hasClassified'},
                                    'part2:hasClassifier': {'from': 'part2:Classification',
                                                            'name': 'hasClassifier',
                                                            'type_uri': 'part2:Class',
                                                            'uri': 'part2:hasClassifier'}},
                          'subtypes': ['part2:LowerBoundOfNumberRange',
                                       'part2:LowerBoundOfPropertyRange',
                                       'part2:UpperBoundOfNumberRange',
                                       'part2:UpperBoundOfPropertyRange'],
                          'supertypes': ['part2:Relationship'],
                          'uri': 'part2:Classification'},
 'part2:ComparisonOfProperty': {'abstract': False,
                                'comment': 'A [ComparisonOfProperty] is a [Relationship] that indicates the magnitude of one [Property] is greater than that of another.\nEXAMPLE\tThat the temperature in a room is less than that in a furnace can be indicated by an instance of [ComparisonOfProperty].',
                                'icon': 'iso_rel',
                                'name': 'ComparisonOfProperty',
                                'roles': {'part2:hasGreaterElement': {'from': 'part2:ComparisonOfProperty',
                                                                      'name': 'hasGreaterElement',
                                                                      'type_uri': 'part2:Property',
                                                                      'uri': 'part2:hasGreaterElement'},
                                          'part2:hasLesserElement': {'from': 'part2:ComparisonOfProperty',
                                                                     'name': 'hasLesserElement',
                                                                     'type_uri': 'part2:Property',
                                                                     'uri': 'part2:hasLesserElement'}},
                                'subtypes': [],
                                'supertypes': ['part2:Relationship'],
                                'uri': 'part2:ComparisonOfProperty'},
 'part2:CompositionOfIndividual': {'abstract': False,
                                   'comment': 'A [CompositionOfIndividual] is a [Relationship] that indicates that the part [PossibleIndividual] is a part of the whole [PossibleIndividual]. A simple composition is indicated, unless a subtype is instantiated too. [CompositionOfIndividual] is transitive. \nNOTE\tSimple composition means that for example no arrangement of parts is necessarily implied or of concern. Where there is an arrangement of parts, this is indicated by an [ArrangementOfIndividual], which, by being a subtype, implies also a simple composition.\nEXAMPLE\tA grain of sand being part of a pile of sand is an example of [CompositionOfIndividual].',
                                   'icon': 'iso_rel',
                                   'name': 'CompositionOfIndividual',
                                   'roles': {'part2:hasPart': {'from': 'part2:CompositionOfIndividual',
                                                               'name': 'hasPart',
                                                               'type_uri': 'part2:PossibleIndividual',
                                                               'uri': 'part2:hasPart'},
                                             'part2:hasWhole': {'from': 'part2:CompositionOfIndividual',
                                                                'name': 'hasWhole',
                                                                'type_uri': 'part2:PossibleIndividual',
                                                                'uri': 'part2:hasWhole'}},
                                   'subtypes': ['part2:ArrangementOfIndividual',
                                                'part2:Participation',
                                                'part2:TemporalBounding',
                                                'part2:TemporalWholePart'],
                                   'supertypes': ['part2:Relationship'],
                                   'uri': 'part2:CompositionOfIndividual'},
 'part2:ConnectionOfIndividual': {'abstract': False,
                                  'comment': 'A [ConnectionOfIndividual] is a [Relationship] that indicates that matter, energy, or both can be transferred between the members of [PossibleIndividual] that are connected, either directly or indirectly.\nNOTE\tThere is no significance to the ordering of the two related instances of [PossibleIndividual]. The names side_1 and side_2 serve only to distinguish the attributes.',
                                  'icon': 'iso_rel',
                                  'name': 'ConnectionOfIndividual',
                                  'roles': {'part2:hasSide1': {'from': 'part2:ConnectionOfIndividual',
                                                               'name': 'hasSide1',
                                                               'type_uri': 'part2:PossibleIndividual',
                                                               'uri': 'part2:hasSide1'},
                                            'part2:hasSide2': {'from': 'part2:ConnectionOfIndividual',
                                                               'name': 'hasSide2',
                                                               'type_uri': 'part2:PossibleIndividual',
                                                               'uri': 'part2:hasSide2'}},
                                  'subtypes': ['part2:DirectConnection',
                                               'part2:IndirectConnection'],
                                  'supertypes': ['part2:Relationship'],
                                  'uri': 'part2:ConnectionOfIndividual'},
 'part2:ContainmentOfIndividual': {'abstract': False,
                                   'comment': 'A [ContainmentOfIndividual] is a [RelativeLocation] where the located [PossibleIndividual] is contained by the locator [PossibleIndividual] but is not part of it.\nNOTE\tContainment is distinct from composition; in composition the whole consists of all of its part, with containment, what is contained is not a part of the container.\nEXAMPLE\tThe contents of a vessel being inside the vessel can be represented by an instance of [ContainmentOfIndividual].',
                                   'icon': 'iso_rel',
                                   'name': 'ContainmentOfIndividual',
                                   'roles': {'part2:hasLocated': {'from': 'part2:RelativeLocation',
                                                                  'name': 'hasLocated',
                                                                  'type_uri': 'part2:PossibleIndividual',
                                                                  'uri': 'part2:hasLocated'},
                                             'part2:hasLocator': {'from': 'part2:RelativeLocation',
                                                                  'name': 'hasLocator',
                                                                  'type_uri': 'part2:PossibleIndividual',
                                                                  'uri': 'part2:hasLocator'}},
                                   'subtypes': [],
                                   'supertypes': ['part2:RelativeLocation'],
                                   'uri': 'part2:ContainmentOfIndividual'},
 'part2:CoordinateSystem': {'abstract': False,
                            'comment': 'A [CoordinateSystem] is a [MultidimensionalScale] for locating and relating a [PossibleIndividual] in an n-dimensional space in which arbitrary geometric transformations are valid.\nEXAMPLE\tThe XYZ site coordinate system, is an example of a [CoordinateSystem].',
                            'icon': 'iso_individual',
                            'name': 'CoordinateSystem',
                            'roles': {'part2:hasCodomain': {'from': 'part2:Scale',
                                                            'name': 'hasCodomain',
                                                            'type_uri': 'part2:NumberSpace',
                                                            'uri': 'part2:hasCodomain'},
                                      'part2:hasDomain': {'from': 'part2:Scale',
                                                          'name': 'hasDomain',
                                                          'type_uri': 'part2:PropertySpace',
                                                          'uri': 'part2:hasDomain'},
                                      'part2:hasElements': {'from': 'part2:MultidimensionalObject',
                                                            'is_list': True,
                                                            'name': 'hasElements',
                                                            'type_uri': 'part2:Thing',
                                                            'uri': 'part2:hasElements'},
                                      'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                   'is_optional': True,
                                                                   'name': 'hasEnd1Cardinality',
                                                                   'type_uri': 'part2:Cardinality',
                                                                   'uri': 'part2:hasEnd1Cardinality'},
                                      'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                   'is_optional': True,
                                                                   'name': 'hasEnd2Cardinality',
                                                                   'type_uri': 'part2:Cardinality',
                                                                   'uri': 'part2:hasEnd2Cardinality'},
                                      'part2:hasPosition': {'from': 'part2:MultidimensionalObject',
                                                            'is_list': True,
                                                            'is_optional': True,
                                                            'name': 'hasPosition',
                                                            'type_uri': 'part2:ExpressInteger',
                                                            'uri': 'part2:hasPosition'}},
                            'subtypes': [],
                            'supertypes': ['part2:MultidimensionalScale'],
                            'uri': 'part2:CoordinateSystem'},
 'part2:CrystallineStructure': {'abstract': False,
                                'comment': 'A [CrystallineStructure] is a [ClassOfArrangedIndividual] that is a form in which many simple elements and their natural compounds regularly aggregate by the operation of natural affinity: it has a definite internal structure, with the external form of a solid enclosed by a number of symmetrically arranged plane faces, and varying in simplicity from the cube to much more complicated geometric bodies.\nEXAMPLE\tFerritic, martensitic, and austenitic are examples of [CrystallineStructure].',
                                'icon': 'iso_class',
                                'name': 'CrystallineStructure',
                                'roles': {},
                                'subtypes': [],
                                'supertypes': ['part2:ClassOfArrangedIndividual'],
                                'uri': 'part2:CrystallineStructure'},
 'part2:Definition': {'abstract': False,
                      'comment': 'A [Definition] is a [RepresentationOfThing] that indicates that the [Class] is defined by the sign [PossibleIndividual].\nEXAMPLE\tThe [Relationship] between this copy of the preceding sentence and the heading before that is a [Definition].',
                      'icon': 'iso_rel',
                      'name': 'Definition',
                      'roles': {'part2:hasRepresented': {'from': 'part2:Definition',
                                                         'name': 'hasRepresented',
                                                         'type_uri': 'part2:Class',
                                                         'uri': 'part2:hasRepresented'},
                                'part2:hasSign': {'from': 'part2:RepresentationOfThing',
                                                  'name': 'hasSign',
                                                  'type_uri': 'part2:PossibleIndividual',
                                                  'uri': 'part2:hasSign'}},
                      'subtypes': [],
                      'supertypes': ['part2:RepresentationOfThing'],
                      'uri': 'part2:Definition'},
 'part2:Description': {'abstract': False,
                       'comment': 'A [Description] is a [RepresentationOfThing] that indicates that the [PossibleIndividual] describes the [Thing].\nEXAMPLE\tA copy of the Piping and Instrumentation Diagram for Crude Distillation Unit 1 at refinery X has a [Description] relationship with the plant.',
                       'icon': 'iso_rel',
                       'name': 'Description',
                       'roles': {'part2:hasRepresented': {'from': 'part2:RepresentationOfThing',
                                                          'name': 'hasRepresented',
                                                          'type_uri': 'part2:Thing',
                                                          'uri': 'part2:hasRepresented'},
                                 'part2:hasSign': {'from': 'part2:RepresentationOfThing',
                                                   'name': 'hasSign',
                                                   'type_uri': 'part2:PossibleIndividual',
                                                   'uri': 'part2:hasSign'}},
                       'subtypes': [],
                       'supertypes': ['part2:RepresentationOfThing'],
                       'uri': 'part2:Description'},
 'part2:DifferenceOfSetOfClass': {'abstract': False,
                                  'comment': 'A [DifferenceOfSetOfClass] is a [FunctionalMapping] that indicates that the membership of the result [Class] is the difference between the membership of the union of the classes that are members of the [EnumeratedSetOfClass] and their intersection.\nNOTE\tWhen the [EnumeratedSetOfClass] consists of a [Class] and another [Class] that is a subclass of the first class, then the difference is the complement of the subclass.\nEXAMPLE\tThe difference of the [EnumeratedSetOfClass] {{A,B,C},{B,C,D},{C,D,E}} is {A,B,D,E}.',
                                  'icon': 'iso_rel',
                                  'name': 'DifferenceOfSetOfClass',
                                  'roles': {'part2:hasInput': {'from': 'part2:DifferenceOfSetOfClass',
                                                               'name': 'hasInput',
                                                               'type_uri': 'part2:EnumeratedSetOfClass',
                                                               'uri': 'part2:hasInput'},
                                            'part2:hasResult': {'from': 'part2:DifferenceOfSetOfClass',
                                                                'name': 'hasResult',
                                                                'type_uri': 'part2:Class',
                                                                'uri': 'part2:hasResult'}},
                                  'subtypes': [],
                                  'supertypes': ['part2:FunctionalMapping'],
                                  'uri': 'part2:DifferenceOfSetOfClass'},
 'part2:DimensionOfIndividual': {'abstract': False,
                                 'comment': 'A [DimensionOfIndividual] is a [ClassOfRelationship] that indicates that each member of the set of lines that are the [IndividualDimension] are a dimension of the [PossibleIndividual].\nEXAMPLE\tThe set of all lines that pass through the centre of a particular circle and end at the circumference of that circle, are a dimension (diameter) of that circle. The particular dimension is indicated by the [DimensionOfShape] that classifies the [DimensionOfIndividual].',
                                 'icon': 'iso_co_rel',
                                 'name': 'DimensionOfIndividual',
                                 'roles': {'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                        'is_optional': True,
                                                                        'name': 'hasEnd1Cardinality',
                                                                        'type_uri': 'part2:Cardinality',
                                                                        'uri': 'part2:hasEnd1Cardinality'},
                                           'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                        'is_optional': True,
                                                                        'name': 'hasEnd2Cardinality',
                                                                        'type_uri': 'part2:Cardinality',
                                                                        'uri': 'part2:hasEnd2Cardinality'},
                                           'part2:hasIndividual': {'from': 'part2:DimensionOfIndividual',
                                                                   'name': 'hasIndividual',
                                                                   'type_uri': 'part2:PossibleIndividual',
                                                                   'uri': 'part2:hasIndividual'},
                                           'part2:hasIndividualDimension': {'from': 'part2:DimensionOfIndividual',
                                                                            'name': 'hasIndividualDimension',
                                                                            'type_uri': 'part2:IndividualDimension',
                                                                            'uri': 'part2:hasIndividualDimension'}},
                                 'subtypes': [],
                                 'supertypes': ['part2:ClassOfRelationship'],
                                 'uri': 'part2:DimensionOfIndividual'},
 'part2:DimensionOfShape': {'abstract': False,
                            'comment': 'A [DimensionOfShape] is a [ClassOfClassOfRelationship] that indicates that members of the [ShapeDimension] are dimensions of the [Shape] members.\nEXAMPLE\tThe sets of 10m lines that are diameters of 10m circles is an example of [DimensionOfShape].',
                            'icon': 'iso_co_classofrel',
                            'name': 'DimensionOfShape',
                            'roles': {'part2:hasDimension': {'from': 'part2:DimensionOfShape',
                                                             'name': 'hasDimension',
                                                             'type_uri': 'part2:ShapeDimension',
                                                             'uri': 'part2:hasDimension'},
                                      'part2:hasShape': {'from': 'part2:DimensionOfShape',
                                                         'name': 'hasShape',
                                                         'type_uri': 'part2:Shape',
                                                         'uri': 'part2:hasShape'}},
                            'subtypes': [],
                            'supertypes': ['part2:ClassOfClassOfRelationship'],
                            'uri': 'part2:DimensionOfShape'},
 'part2:DirectConnection': {'abstract': False,
                            'comment': 'A [DirectConnection] is a [ConnectionOfIndividual] that indicates that the side_1 and side_2 are directly connected via a common spatial boundary.\nEXAMPLE\tThe relation that indicates that the plug terminating a serial communications cable is connected to the socket on a piece of computer equipment can be represented by an instance of [DirectConnection].',
                            'icon': 'iso_rel',
                            'name': 'DirectConnection',
                            'roles': {'part2:hasSide1': {'from': 'part2:ConnectionOfIndividual',
                                                         'name': 'hasSide1',
                                                         'type_uri': 'part2:PossibleIndividual',
                                                         'uri': 'part2:hasSide1'},
                                      'part2:hasSide2': {'from': 'part2:ConnectionOfIndividual',
                                                         'name': 'hasSide2',
                                                         'type_uri': 'part2:PossibleIndividual',
                                                         'uri': 'part2:hasSide2'}},
                            'subtypes': [],
                            'supertypes': ['part2:ConnectionOfIndividual'],
                            'uri': 'part2:DirectConnection'},
 'part2:DocumentDefinition': {'abstract': False,
                              'comment': 'A [DocumentDefinition] is a [ClassOfClassOfInformationRepresentation] that defines the content and/or structure of documents.\nEXAMPLE\tXYZ Corp. Material Safety Data Sheet is a [DocumentDefinition].',
                              'icon': 'iso_classofclass',
                              'name': 'DocumentDefinition',
                              'roles': {},
                              'subtypes': [],
                              'supertypes': ['part2:ClassOfClassOfInformationRepresentation'],
                              'uri': 'part2:DocumentDefinition'},
 'part2:Ending': {'abstract': False,
                  'comment': "An [Ending] is a [TemporalBounding] that marks the end of a [PossibleIndividual].\nEXAMPLE 1\tThe relation that indicates that the [PointInTime] known as 0000hrs 1st July 1999 GMT is the end of the [PeriodInTime] known as June 1999 GMT can be represented by an instance of [Ending].\nEXAMPLE 2\tThe relation that indicates that the [Event] 'loading complete' marks the end of the [PossibleIndividual] 'loading plant operating period 1' (a temporal part of the loading plant) is an instance of [Ending].",
                  'icon': 'iso_rel',
                  'name': 'Ending',
                  'roles': {'part2:hasPart': {'from': 'part2:TemporalBounding',
                                              'name': 'hasPart',
                                              'type_uri': 'part2:Event',
                                              'uri': 'part2:hasPart'},
                            'part2:hasWhole': {'from': 'part2:CompositionOfIndividual',
                                               'name': 'hasWhole',
                                               'type_uri': 'part2:PossibleIndividual',
                                               'uri': 'part2:hasWhole'}},
                  'subtypes': [],
                  'supertypes': ['part2:TemporalBounding'],
                  'uri': 'part2:Ending'},
 'part2:EnumeratedNumberSet': {'abstract': False,
                               'comment': 'An [EnumeratedNumberSet] is a [ClassOfNumber] and an [EnumeratedSetOfClass].\nEXAMPLE\tThe set of integer numbers {3,4,5} can be represented by an instance of [EnumeratedNumberSet].',
                               'icon': 'iso_classofclass',
                               'name': 'EnumeratedNumberSet',
                               'roles': {},
                               'subtypes': [],
                               'supertypes': ['part2:ClassOfNumber',
                                              'part2:EnumeratedSetOfClass'],
                               'uri': 'part2:EnumeratedNumberSet'},
 'part2:EnumeratedPropertySet': {'abstract': False,
                                 'comment': 'An [EnumeratedPropertySet] is a [ClassOfProperty] and an [EnumeratedSetOfClass] whose members are an enumerated set of properties of the same [SinglePropertyDimension] or [MultidimensionalPropertySpace].\nEXAMPLE\t{115 Volt, 240 Volt} is an example of an [EnumeratedPropertySet].',
                                 'icon': 'iso_classofclass',
                                 'name': 'EnumeratedPropertySet',
                                 'roles': {},
                                 'subtypes': [],
                                 'supertypes': ['part2:ClassOfProperty',
                                                'part2:EnumeratedSetOfClass'],
                                 'uri': 'part2:EnumeratedPropertySet'},
 'part2:EnumeratedSetOfClass': {'abstract': False,
                                'comment': 'An [EnumeratedSetOfClass] is a [ClassOfClass] that is an enumerated set of the instances of [Class]. Enumerated means that the full set of members is specified.\nEXAMPLE\t{Plastic, 1.2kg, frame} is an [EnumeratedSetOfClass]. More generally {{A,B,C},{B,C,D},{C,D,E}} is an [EnumeratedSetOfClass]. Also "electrical engineering classes for ERDL V1.1" is an [EnumeratedSetOfClass].',
                                'icon': 'iso_classofclass',
                                'name': 'EnumeratedSetOfClass',
                                'roles': {},
                                'subtypes': ['part2:EnumeratedNumberSet',
                                             'part2:EnumeratedPropertySet'],
                                'supertypes': ['part2:ClassOfClass'],
                                'uri': 'part2:EnumeratedSetOfClass'},
 'part2:Event': {'abstract': False,
                 'comment': 'An [Event] is a [PossibleIndividual] with zero extent in time at any point in space-time - a four dimensional plane. An [Event] may be at one-time only, or may extend in time at different places, or a combination of both. An [Event] is the temporal boundary of one or more [PossibleIndividual]s, although there may be no knowledge of these [PossibleIndividual]s.\nEXAMPLE\tThe connection of power to a pump is an event that marks the beginning of a temporal part of that pump.',
                 'icon': 'iso_individual',
                 'name': 'Event',
                 'roles': {},
                 'subtypes': ['part2:PointInTime'],
                 'supertypes': ['part2:PossibleIndividual'],
                 'uri': 'part2:Event'},
 'part2:ExpressBinary': {'abstract': False,
                         'comment': 'An [ExpressBinary] is a [ClassOfExpressInformationRepresentation] that represents a binary value as defined in ISO 10303-11:1994, 8.1.7.\nNOTE\tThe UNIQUE rule ensures that any value is only held once.',
                         'icon': 'iso_class',
                         'name': 'ExpressBinary',
                         'roles': {'part2:hasContent': {'from': 'part2:ExpressBinary',
                                                        'name': 'hasContent',
                                                        'type_uri': 'xsd:hexBinary',
                                                        'uri': 'part2:hasContent'}},
                         'subtypes': [],
                         'supertypes': ['part2:ClassOfExpressInformationRepresentation'],
                         'uri': 'part2:ExpressBinary'},
 'part2:ExpressBoolean': {'abstract': False,
                          'comment': 'An [ExpressBoolean] is a [ClassOfExpressInformationRepresentation] that represents a Boolean value as defined in ISO 10303-11:1994, 8.1.5.\nNOTE\tThe UNIQUE rule ensures that any value is only held once.',
                          'icon': 'iso_class',
                          'name': 'ExpressBoolean',
                          'roles': {'part2:hasContent': {'from': 'part2:ExpressBoolean',
                                                         'name': 'hasContent',
                                                         'type_uri': 'xsd:boolean',
                                                         'uri': 'part2:hasContent'}},
                          'subtypes': [],
                          'supertypes': ['part2:ClassOfExpressInformationRepresentation'],
                          'uri': 'part2:ExpressBoolean'},
 'part2:ExpressInteger': {'abstract': False,
                          'comment': 'An [ExpressInteger] is a [ClassOfExpressInformationRepresentation] that represents an integer number as defined in ISO 10303-11:1994, 8.1.3.\nNOTE\tThe UNIQUE rule ensures that any value is only held once.',
                          'icon': 'iso_class',
                          'name': 'ExpressInteger',
                          'roles': {'part2:hasContent': {'from': 'part2:ExpressInteger',
                                                         'name': 'hasContent',
                                                         'type_uri': 'xsd:long',
                                                         'uri': 'part2:hasContent'}},
                          'subtypes': [],
                          'supertypes': ['part2:ClassOfExpressInformationRepresentation'],
                          'uri': 'part2:ExpressInteger'},
 'part2:ExpressLogical': {'abstract': False,
                          'comment': 'An [ExpressLogical] is a [ClassOfExpressInformationRepresentation] that represents a logical value as defined in ISO 10303-11:1994, 8.1.4.\nNOTE\tThe UNIQUE rule ensures that any value is only held once.',
                          'icon': 'iso_class',
                          'name': 'ExpressLogical',
                          'roles': {'part2:hasContent': {'from': 'part2:ExpressLogical',
                                                         'name': 'hasContent',
                                                         'type_uri': 'xsd:string',
                                                         'uri': 'part2:hasContent'}},
                          'subtypes': [],
                          'supertypes': ['part2:ClassOfExpressInformationRepresentation'],
                          'uri': 'part2:ExpressLogical'},
 'part2:ExpressReal': {'abstract': False,
                       'comment': 'An [ExpressReal] is a [ClassOfExpressInformationRepresentation] that represents a real number as defined in ISO 10303-11:1994, 8.1.2.\nNOTE\tThe UNIQUE rule ensures that any value is only held once.',
                       'icon': 'iso_class',
                       'name': 'ExpressReal',
                       'roles': {'part2:hasContent': {'from': 'part2:ExpressReal',
                                                      'name': 'hasContent',
                                                      'type_uri': 'xsd:double',
                                                      'uri': 'part2:hasContent'}},
                       'subtypes': [],
                       'supertypes': ['part2:ClassOfExpressInformationRepresentation'],
                       'uri': 'part2:ExpressReal'},
 'part2:ExpressString': {'abstract': False,
                         'comment': 'An [ExpressString] is a [ClassOfExpressInformationRepresentation] that represents a string as defined in ISO 10303-11:1994, 8.1.6.\nNOTE\tThe UNIQUE rule ensures that any value is only held once.',
                         'icon': 'iso_class',
                         'name': 'ExpressString',
                         'roles': {'part2:hasContent': {'from': 'part2:ExpressString',
                                                        'name': 'hasContent',
                                                        'type_uri': 'xsd:normalizedString',
                                                        'uri': 'part2:hasContent'}},
                         'subtypes': [],
                         'supertypes': ['part2:ClassOfExpressInformationRepresentation'],
                         'uri': 'part2:ExpressString'},
 'part2:FeatureWholePart': {'abstract': False,
                            'comment': 'A [FeatureWholePart] is an [ArrangementOfIndividual] that indicates that the part is a non-separable, contiguous part of the whole.\nNOTE\tThis includes wholes that cannot be non-destructively disassembled and reassembled such as the cast inlet flange of a pump.\nEXAMPLE\tThe relation that indicates that a flange face is part of a flange can be represented by an instance of [FeatureWholePart].',
                            'icon': 'iso_rel',
                            'name': 'FeatureWholePart',
                            'roles': {'part2:hasPart': {'from': 'part2:CompositionOfIndividual',
                                                        'name': 'hasPart',
                                                        'type_uri': 'part2:PossibleIndividual',
                                                        'uri': 'part2:hasPart'},
                                      'part2:hasWhole': {'from': 'part2:ArrangementOfIndividual',
                                                         'name': 'hasWhole',
                                                         'type_uri': 'part2:ArrangedIndividual',
                                                         'uri': 'part2:hasWhole'}},
                            'subtypes': [],
                            'supertypes': ['part2:ArrangementOfIndividual'],
                            'uri': 'part2:FeatureWholePart'},
 'part2:FunctionalMapping': {'abstract': False,
                             'comment': 'A [FunctionalMapping] is a [Relationship] that indicates that the input gave the result as determined by the classifying [ClassOfFunctionalMapping].\nEXAMPLE The mapping of [5, 3] to 2, classified by the minus function is an example of [FunctionalMapping].',
                             'icon': 'iso_rel',
                             'name': 'FunctionalMapping',
                             'roles': {'part2:hasInput': {'from': 'part2:FunctionalMapping',
                                                          'name': 'hasInput',
                                                          'type_uri': 'part2:Thing',
                                                          'uri': 'part2:hasInput'},
                                       'part2:hasResult': {'from': 'part2:FunctionalMapping',
                                                           'name': 'hasResult',
                                                           'type_uri': 'part2:Thing',
                                                           'uri': 'part2:hasResult'}},
                             'subtypes': ['part2:DifferenceOfSetOfClass',
                                          'part2:IntersectionOfSetOfClass',
                                          'part2:PropertyQuantification',
                                          'part2:UnionOfSetOfClass'],
                             'supertypes': ['part2:Relationship'],
                             'uri': 'part2:FunctionalMapping'},
 'part2:FunctionalPhysicalObject': {'abstract': False,
                                    'comment': 'A [FunctionalPhysicalObject] is a [PhysicalObject] that has functional, rather than material, continuity as its basis for identity. Adjacent temporal parts of a [FunctionalPhysicalObject] need not have common matter or energy, provided the matter or energy of each temporal part fulfils the same function.\nEXAMPLE\tThe heat exchanger system known as tag E-4507, which is part of a distillate transfer system, can be represented by an instance of [FunctionalPhysicalObject]. Note that this is distinct from the "shell and tube heat exchanger manufacture number ES/1234" that was installed as E-4507 when the plant was first built and later removed when worn out, to be replaced by a new heat exchanger with different serial number. "Shell and tube heat exchanger manufacture number ES/1234" and its differently numbered replacement can be represented by instances of [MaterializedPhysicalObject]. When ES/1234 is installed as E-4507 there is a temporal part of ES/1234 that is also a temporal part of E-4507.',
                                    'icon': 'iso_individual',
                                    'name': 'FunctionalPhysicalObject',
                                    'roles': {},
                                    'subtypes': [],
                                    'supertypes': ['part2:PhysicalObject'],
                                    'uri': 'part2:FunctionalPhysicalObject'},
 'part2:Identification': {'abstract': False,
                          'comment': 'An [Identification] is a [RepresentationOfThing] that indicates that the [PossibleIndividual] is an identifier for the [Thing] identified.\nEXAMPLE 1\tThe relationship between the text "P101" on a printed copy of a pump data sheet and the applicable [FunctionalPhysicalObject] is an example of [Identification].\nEXAMPLE 2\tThe relationship between a name tag and an employee wearing it is an example of [Identification].',
                          'icon': 'iso_rel',
                          'name': 'Identification',
                          'roles': {'part2:hasRepresented': {'from': 'part2:RepresentationOfThing',
                                                             'name': 'hasRepresented',
                                                             'type_uri': 'part2:Thing',
                                                             'uri': 'part2:hasRepresented'},
                                    'part2:hasSign': {'from': 'part2:RepresentationOfThing',
                                                      'name': 'hasSign',
                                                      'type_uri': 'part2:PossibleIndividual',
                                                      'uri': 'part2:hasSign'}},
                          'subtypes': [],
                          'supertypes': ['part2:RepresentationOfThing'],
                          'uri': 'part2:Identification'},
 'part2:IndirectConnection': {'abstract': False,
                              'comment': 'An [IndirectConnection] is a [ConnectionOfIndividual] that indicates that side_1 and side_2 are connected via other individuals.\nEXAMPLE\tThe relation that indicates that there is a railway connection between the cities of London and Paris can be represented by an instance of [IndirectConnection].',
                              'icon': 'iso_rel',
                              'name': 'IndirectConnection',
                              'roles': {'part2:hasSide1': {'from': 'part2:ConnectionOfIndividual',
                                                           'name': 'hasSide1',
                                                           'type_uri': 'part2:PossibleIndividual',
                                                           'uri': 'part2:hasSide1'},
                                        'part2:hasSide2': {'from': 'part2:ConnectionOfIndividual',
                                                           'name': 'hasSide2',
                                                           'type_uri': 'part2:PossibleIndividual',
                                                           'uri': 'part2:hasSide2'}},
                              'subtypes': [],
                              'supertypes': ['part2:ConnectionOfIndividual'],
                              'uri': 'part2:IndirectConnection'},
 'part2:IndirectProperty': {'abstract': False,
                            'comment': 'An [IndirectProperty] is a [Relationship] between a [Property] and a [PossibleIndividual]. The nature of the [IndirectProperty] is defined by its [Classification] by a [ClassOfIndirectProperty]. A property is indirect when it does not directly apply to the [PossibleIndividual] it applies to, but is derived from some process.\nNOTE\tA property is indirect because it does not directly apply. There can only be one temperature that a thing has (at a time), so a Maximum Allowable Working Temperature is not its temperature, but an indirect property derived from doing some tests or calculations to determine its value (as opposed to it being a current measurement). This is what makes it indirect.\nEXAMPLE\tA Maximum Allowable Working Pressure of 50 BarA for V101 is specified by an [IndirectProperty] between the pressure of 50 BarA and V101, classified by the [ClassOfIndirectProperty] Maximum Allowable Working Pressure.',
                            'icon': 'iso_rel',
                            'name': 'IndirectProperty',
                            'roles': {'part2:hasPossessor': {'from': 'part2:IndirectProperty',
                                                             'name': 'hasPossessor',
                                                             'type_uri': 'part2:PossibleIndividual',
                                                             'uri': 'part2:hasPossessor'},
                                      'part2:hasProperty': {'from': 'part2:IndirectProperty',
                                                            'name': 'hasProperty',
                                                            'type_uri': 'part2:Property',
                                                            'uri': 'part2:hasProperty'}},
                            'subtypes': [],
                            'supertypes': ['part2:Relationship'],
                            'uri': 'part2:IndirectProperty'},
 'part2:IndividualDimension': {'abstract': False,
                               'comment': 'An [IndividualDimension] is a [ClassOfIndividual] whose members characterize a particular [PossibleIndividual].\nEXAMPLE\tThe set of lines that are each a diameter of a particular circle.',
                               'icon': 'iso_class',
                               'name': 'IndividualDimension',
                               'roles': {},
                               'subtypes': [],
                               'supertypes': ['part2:ClassOfIndividual'],
                               'uri': 'part2:IndividualDimension'},
 'part2:IndividualUsedInConnection': {'abstract': False,
                                      'comment': 'An [IndividualUsedInConnection] is a [Relationship] that indicates that a [PossibleIndividual] is used in a [ConnectionOfIndividual].\nEXAMPLE\tThe [Relationship] between the connection of the flanged ends of two pipes and a temporal part of the bolts, nuts, washers and gasket set that indicates that the bolt and gasket set participates in the connection can be represented by an instance of [IndividualUsedInConnection].',
                                      'icon': 'iso_rel',
                                      'name': 'IndividualUsedInConnection',
                                      'roles': {'part2:hasConnection': {'from': 'part2:IndividualUsedInConnection',
                                                                        'name': 'hasConnection',
                                                                        'type_uri': 'part2:ConnectionOfIndividual',
                                                                        'uri': 'part2:hasConnection'},
                                                'part2:hasUsage': {'from': 'part2:IndividualUsedInConnection',
                                                                   'name': 'hasUsage',
                                                                   'type_uri': 'part2:PossibleIndividual',
                                                                   'uri': 'part2:hasUsage'}},
                                      'subtypes': [],
                                      'supertypes': ['part2:Relationship'],
                                      'uri': 'part2:IndividualUsedInConnection'},
 'part2:IntegerNumber': {'abstract': False,
                         'comment': 'An [IntegerNumber] is an [ArithmeticNumber] that is an integer number.\nEXAMPLE\t1, 2, and 10 are representations of integer numbers.',
                         'icon': 'iso_classofclass',
                         'name': 'IntegerNumber',
                         'roles': {},
                         'subtypes': [],
                         'supertypes': ['part2:ArithmeticNumber'],
                         'uri': 'part2:IntegerNumber'},
 'part2:IntendedRoleAndDomain': {'abstract': False,
                                 'comment': 'An [IntendedRoleAndDomain] is a [Relationship] that indicates the [RoleAndDomain] some temporal part of the [PossibleIndividual] is intended to take with respect to some [Activity].\nEXAMPLE\tSome [PossibleIndividual] that is classified as a pump is intended to play the [RoleAndDomain] of a performer in some pumping activity.',
                                 'icon': 'iso_rel',
                                 'name': 'IntendedRoleAndDomain',
                                 'roles': {'part2:hasPlayed': {'from': 'part2:IntendedRoleAndDomain',
                                                               'name': 'hasPlayed',
                                                               'type_uri': 'part2:RoleAndDomain',
                                                               'uri': 'part2:hasPlayed'},
                                           'part2:hasPlayer': {'from': 'part2:IntendedRoleAndDomain',
                                                               'name': 'hasPlayer',
                                                               'type_uri': 'part2:PossibleIndividual',
                                                               'uri': 'part2:hasPlayer'}},
                                 'subtypes': [],
                                 'supertypes': ['part2:Relationship'],
                                 'uri': 'part2:IntendedRoleAndDomain'},
 'part2:IntersectionOfSetOfClass': {'abstract': False,
                                    'comment': 'An [IntersectionOfSetOfClass] is a [FunctionalMapping] that indicates that the result [Class] consists of those members of the members of the classes [EnumeratedSetOfClass] that are common to each class.\nEXAMPLE\tThe intersection of the [EnumeratedSetOfClass] {{A,B,C},{B,C,D},{C,D,E}} is {C}.',
                                    'icon': 'iso_rel',
                                    'name': 'IntersectionOfSetOfClass',
                                    'roles': {'part2:hasInput': {'from': 'part2:IntersectionOfSetOfClass',
                                                                 'name': 'hasInput',
                                                                 'type_uri': 'part2:EnumeratedSetOfClass',
                                                                 'uri': 'part2:hasInput'},
                                              'part2:hasResult': {'from': 'part2:IntersectionOfSetOfClass',
                                                                  'name': 'hasResult',
                                                                  'type_uri': 'part2:Class',
                                                                  'uri': 'part2:hasResult'}},
                                    'subtypes': [],
                                    'supertypes': ['part2:FunctionalMapping'],
                                    'uri': 'part2:IntersectionOfSetOfClass'},
 'part2:InvolvementByReference': {'abstract': False,
                                  'comment': "An [InvolvementByReference] is a [Relationship] that indicates that a [Thing] is referred to in an [Activity].\nNOTE\tThis entity type is for involvements that are not direct [Participation] of a [PossibleIndividual], such as involvement of a class, or of a historical or future temporal part of a [PossibleIndividual].\nEXAMPLE 1\tA conversation that refers to the Roman Empire is an [Activity] that relates to the Roman Empire by an [InvolvementByReference].\nEXAMPLE 2\tThe relation between API 610 and the <class_of_activity> 'design of centrifugal pumps' is represented by an instance of <class_of_involvement_by_reference>.",
                                  'icon': 'iso_rel',
                                  'name': 'InvolvementByReference',
                                  'roles': {'part2:hasInvolved': {'from': 'part2:InvolvementByReference',
                                                                  'name': 'hasInvolved',
                                                                  'type_uri': 'part2:Thing',
                                                                  'uri': 'part2:hasInvolved'},
                                            'part2:hasInvolver': {'from': 'part2:InvolvementByReference',
                                                                  'name': 'hasInvolver',
                                                                  'type_uri': 'part2:Activity',
                                                                  'uri': 'part2:hasInvolver'}},
                                  'subtypes': [],
                                  'supertypes': ['part2:Relationship'],
                                  'uri': 'part2:InvolvementByReference'},
 'part2:Language': {'abstract': False,
                    'comment': 'A [Language] is a [ClassOfClassOfInformationRepresentation] whose members are all the information representations made in the language.\nEXAMPLE\tEnglish, French, C++ and Java can be represented by instances of [Language].',
                    'icon': 'iso_classofclass',
                    'name': 'Language',
                    'roles': {},
                    'subtypes': [],
                    'supertypes': ['part2:ClassOfClassOfInformationRepresentation'],
                    'uri': 'part2:Language'},
 'part2:LeftNamespace': {'abstract': False,
                         'comment': 'A [LeftNamespace] is a [Namespace] where the [ClassOfPart] is the left part of the [ClassOfWhole].\nEXAMPLE\tWhere WC1: is the [Namespace] in WC1:1234, it is a [LeftNamespace].',
                         'icon': 'iso_co_rel',
                         'name': 'LeftNamespace',
                         'roles': {'part2:hasClassOfPart': {'from': 'part2:Namespace',
                                                            'name': 'hasClassOfPart',
                                                            'type_uri': 'part2:ClassOfInformationRepresentation',
                                                            'uri': 'part2:hasClassOfPart'},
                                   'part2:hasClassOfWhole': {'from': 'part2:Namespace',
                                                             'name': 'hasClassOfWhole',
                                                             'type_uri': 'part2:ClassOfInformationRepresentation',
                                                             'uri': 'part2:hasClassOfWhole'},
                                   'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                'is_optional': True,
                                                                'name': 'hasEnd1Cardinality',
                                                                'type_uri': 'part2:Cardinality',
                                                                'uri': 'part2:hasEnd1Cardinality'},
                                   'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                'is_optional': True,
                                                                'name': 'hasEnd2Cardinality',
                                                                'type_uri': 'part2:Cardinality',
                                                                'uri': 'part2:hasEnd2Cardinality'}},
                         'subtypes': [],
                         'supertypes': ['part2:Namespace'],
                         'uri': 'part2:LeftNamespace'},
 'part2:LifecycleStage': {'abstract': False,
                          'comment': "A [LifecycleStage] is a [Relationship] that indicates the interest that a [PossibleIndividual] has in some [PossibleIndividual]. \nEXAMPLE\tThe relation that links a possible building to a temporal part of the XYZ Corp. can be represented by an instance of [LifecycleStage]. The nature of that [LifecycleStage] (e.g. 'planned') can be expressed by classifying with the applicable [ClassOfLifecycleStage].",
                          'icon': 'iso_rel',
                          'name': 'LifecycleStage',
                          'roles': {'part2:hasInterest': {'from': 'part2:LifecycleStage',
                                                          'name': 'hasInterest',
                                                          'type_uri': 'part2:PossibleIndividual',
                                                          'uri': 'part2:hasInterest'},
                                    'part2:hasInterested': {'from': 'part2:LifecycleStage',
                                                            'name': 'hasInterested',
                                                            'type_uri': 'part2:PossibleIndividual',
                                                            'uri': 'part2:hasInterested'}},
                          'subtypes': [],
                          'supertypes': ['part2:Relationship'],
                          'uri': 'part2:LifecycleStage'},
 'part2:LowerBoundOfNumberRange': {'abstract': False,
                                   'comment': "A [LowerBoundOfNumberRange] is a [Classification] that indicates an [ArithmeticNumber] is the lowest value in a [NumberRange].\nEXAMPLE\tThe instance of [RealNumber] that is represented by the instance of [ExpressReal] '3.1' has a [LowerBoundOfNumberRange] relationship with the instance of [NumberRange] '(3.1 to 5.3)'.",
                                   'icon': 'iso_rel',
                                   'name': 'LowerBoundOfNumberRange',
                                   'roles': {'part2:hasClassified': {'from': 'part2:LowerBoundOfNumberRange',
                                                                     'name': 'hasClassified',
                                                                     'type_uri': 'part2:ArithmeticNumber',
                                                                     'uri': 'part2:hasClassified'},
                                             'part2:hasClassifier': {'from': 'part2:LowerBoundOfNumberRange',
                                                                     'name': 'hasClassifier',
                                                                     'type_uri': 'part2:NumberRange',
                                                                     'uri': 'part2:hasClassifier'}},
                                   'subtypes': [],
                                   'supertypes': ['part2:Classification'],
                                   'uri': 'part2:LowerBoundOfNumberRange'},
 'part2:LowerBoundOfPropertyRange': {'abstract': False,
                                     'comment': "A [LowerBoundOfPropertyRange] is a [Classification] that indicates that a [Property] is the lower bound of a [PropertyRange].\nEXAMPLE\tThe instance of [Property] that is represented by the instance of [ExpressReal] '-10' has a [LowerBoundOfPropertyRange] relationship with the instance of [PropertyRange] '(-10 to +20 degrees Celsius)'.",
                                     'icon': 'iso_rel',
                                     'name': 'LowerBoundOfPropertyRange',
                                     'roles': {'part2:hasClassified': {'from': 'part2:LowerBoundOfPropertyRange',
                                                                       'name': 'hasClassified',
                                                                       'type_uri': 'part2:Property',
                                                                       'uri': 'part2:hasClassified'},
                                               'part2:hasClassifier': {'from': 'part2:LowerBoundOfPropertyRange',
                                                                       'name': 'hasClassifier',
                                                                       'type_uri': 'part2:PropertyRange',
                                                                       'uri': 'part2:hasClassifier'}},
                                     'subtypes': [],
                                     'supertypes': ['part2:Classification'],
                                     'uri': 'part2:LowerBoundOfPropertyRange'},
 'part2:MaterializedPhysicalObject': {'abstract': False,
                                      'comment': "A [MaterializedPhysicalObject] is a [PhysicalObject] that has matter and/or energy continuity as its basis for identity. Matter or energy continuity requires some matter or energy to be common to adjacent temporal parts of the [MaterializedPhysicalObject]. Replacement of some components from time to time does not create a new identity.\nEXAMPLE\tThe shell and tube heat exchanger with manufacturer's serial number ES/1234 can be represented by an instance of [MaterializedPhysicalObject].",
                                      'icon': 'iso_individual',
                                      'name': 'MaterializedPhysicalObject',
                                      'roles': {},
                                      'subtypes': [],
                                      'supertypes': ['part2:PhysicalObject'],
                                      'uri': 'part2:MaterializedPhysicalObject'},
 'part2:MultidimensionalNumber': {'abstract': False,
                                  'comment': 'A [MultidimensionalNumber] is an [ArithmeticNumber] that is also a [MultidimensionalObject].\nEXAMPLE\t[3.2, 5.4, 55.6] is a [MultidimensionalNumber].',
                                  'icon': 'iso_individual',
                                  'name': 'MultidimensionalNumber',
                                  'roles': {'part2:hasElements': {'from': 'part2:MultidimensionalObject',
                                                                  'is_list': True,
                                                                  'name': 'hasElements',
                                                                  'type_uri': 'part2:Thing',
                                                                  'uri': 'part2:hasElements'},
                                            'part2:hasPosition': {'from': 'part2:MultidimensionalObject',
                                                                  'is_list': True,
                                                                  'is_optional': True,
                                                                  'name': 'hasPosition',
                                                                  'type_uri': 'part2:ExpressInteger',
                                                                  'uri': 'part2:hasPosition'}},
                                  'subtypes': [],
                                  'supertypes': ['part2:ArithmeticNumber',
                                                 'part2:MultidimensionalObject'],
                                  'uri': 'part2:MultidimensionalNumber'},
 'part2:MultidimensionalNumberSpace': {'abstract': False,
                                       'comment': 'A [MultidimensionalNumberSpace] is a [NumberSpace] and a [MultidimensionalObject].\nEXAMPLE\tR3, the space defined as being all the triples of real numbers (e.g. [1.0, 2.1, 5.4]), is a [MultidimensionalNumberSpace].',
                                       'icon': 'iso_individual',
                                       'name': 'MultidimensionalNumberSpace',
                                       'roles': {'part2:hasElements': {'from': 'part2:MultidimensionalObject',
                                                                       'is_list': True,
                                                                       'name': 'hasElements',
                                                                       'type_uri': 'part2:Thing',
                                                                       'uri': 'part2:hasElements'},
                                                 'part2:hasPosition': {'from': 'part2:MultidimensionalObject',
                                                                       'is_list': True,
                                                                       'is_optional': True,
                                                                       'name': 'hasPosition',
                                                                       'type_uri': 'part2:ExpressInteger',
                                                                       'uri': 'part2:hasPosition'}},
                                       'subtypes': [],
                                       'supertypes': ['part2:MultidimensionalObject',
                                                      'part2:NumberSpace'],
                                       'uri': 'part2:MultidimensionalNumberSpace'},
 'part2:MultidimensionalObject': {'abstract': False,
                                  'comment': 'A [MultidimensionalObject] is an [AbstractObject] that is an ordered list of [Thing]. The significance of the [MultidimensionalObject] is determined by being a member of a  [ClassOfMultidimensionalObject] that indicates the role played by each of its elements.\nNOTE\tThe [MultidimensionalObject] [A,b,c] is different from [B,c,a].\nEXAMPLE\t[32, 1.8, 20] is a [MultidimensionalObject] that may be specified to be the input parameters for the function y=a+bx to convert 20 Celsius to Fahrenheit.',
                                  'icon': 'iso_individual',
                                  'name': 'MultidimensionalObject',
                                  'roles': {'part2:hasElements': {'from': 'part2:MultidimensionalObject',
                                                                  'is_list': True,
                                                                  'name': 'hasElements',
                                                                  'type_uri': 'part2:Thing',
                                                                  'uri': 'part2:hasElements'},
                                            'part2:hasPosition': {'from': 'part2:MultidimensionalObject',
                                                                  'is_list': True,
                                                                  'is_optional': True,
                                                                  'name': 'hasPosition',
                                                                  'type_uri': 'part2:ExpressInteger',
                                                                  'uri': 'part2:hasPosition'}},
                                  'subtypes': ['part2:MultidimensionalNumber',
                                               'part2:MultidimensionalNumberSpace',
                                               'part2:MultidimensionalProperty',
                                               'part2:MultidimensionalPropertySpace',
                                               'part2:MultidimensionalScale'],
                                  'supertypes': ['part2:AbstractObject'],
                                  'uri': 'part2:MultidimensionalObject'},
 'part2:MultidimensionalProperty': {'abstract': False,
                                    'comment': 'A [MultidimensionalProperty] is a [Property] that is also a [MultidimensionalObject].\nEXAMPLE\tA pump flow head characteristic is a [MultidimensionalProperty]. It consists of a continuum of Q, H property pairs, where Q is the flow rate and H is the flowing head difference. Each pair of properties Qa and Ha, where Qa is a particular flow rate and Ha a particular head, is a [MultidimensionalProperty] (Qa, Ha).',
                                    'icon': 'iso_individual',
                                    'name': 'MultidimensionalProperty',
                                    'roles': {'part2:hasElements': {'from': 'part2:MultidimensionalObject',
                                                                    'is_list': True,
                                                                    'name': 'hasElements',
                                                                    'type_uri': 'part2:Thing',
                                                                    'uri': 'part2:hasElements'},
                                              'part2:hasPosition': {'from': 'part2:MultidimensionalObject',
                                                                    'is_list': True,
                                                                    'is_optional': True,
                                                                    'name': 'hasPosition',
                                                                    'type_uri': 'part2:ExpressInteger',
                                                                    'uri': 'part2:hasPosition'}},
                                    'subtypes': [],
                                    'supertypes': ['part2:MultidimensionalObject',
                                                   'part2:Property'],
                                    'uri': 'part2:MultidimensionalProperty'},
 'part2:MultidimensionalPropertySpace': {'abstract': False,
                                         'comment': 'A [MultidimensionalPropertySpace] is a [PropertySpace] and a [MultidimensionalObject] whose members are properties each of which maps to more than one number. Each property will consist of elements of the same property dimensions.\nEXAMPLE\tA pump performance curve of flowrate and differential head is a [MultidimensionalPropertySpace].',
                                         'icon': 'iso_individual',
                                         'name': 'MultidimensionalPropertySpace',
                                         'roles': {'part2:hasElements': {'from': 'part2:MultidimensionalObject',
                                                                         'is_list': True,
                                                                         'name': 'hasElements',
                                                                         'type_uri': 'part2:Thing',
                                                                         'uri': 'part2:hasElements'},
                                                   'part2:hasPosition': {'from': 'part2:MultidimensionalObject',
                                                                         'is_list': True,
                                                                         'is_optional': True,
                                                                         'name': 'hasPosition',
                                                                         'type_uri': 'part2:ExpressInteger',
                                                                         'uri': 'part2:hasPosition'}},
                                         'subtypes': [],
                                         'supertypes': ['part2:MultidimensionalObject',
                                                        'part2:PropertySpace'],
                                         'uri': 'part2:MultidimensionalPropertySpace'},
 'part2:MultidimensionalScale': {'abstract': False,
                                 'comment': 'A [MultidimensionalScale] is a [Scale] that is also a [MultidimensionalObject].\nEXAMPLE\tA [Celsius, seconds] scale is a [MultidimensionalScale] on which temperature variation over time can be plotted.',
                                 'icon': 'iso_individual',
                                 'name': 'MultidimensionalScale',
                                 'roles': {'part2:hasCodomain': {'from': 'part2:Scale',
                                                                 'name': 'hasCodomain',
                                                                 'type_uri': 'part2:NumberSpace',
                                                                 'uri': 'part2:hasCodomain'},
                                           'part2:hasDomain': {'from': 'part2:Scale',
                                                               'name': 'hasDomain',
                                                               'type_uri': 'part2:PropertySpace',
                                                               'uri': 'part2:hasDomain'},
                                           'part2:hasElements': {'from': 'part2:MultidimensionalObject',
                                                                 'is_list': True,
                                                                 'name': 'hasElements',
                                                                 'type_uri': 'part2:Thing',
                                                                 'uri': 'part2:hasElements'},
                                           'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                        'is_optional': True,
                                                                        'name': 'hasEnd1Cardinality',
                                                                        'type_uri': 'part2:Cardinality',
                                                                        'uri': 'part2:hasEnd1Cardinality'},
                                           'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                        'is_optional': True,
                                                                        'name': 'hasEnd2Cardinality',
                                                                        'type_uri': 'part2:Cardinality',
                                                                        'uri': 'part2:hasEnd2Cardinality'},
                                           'part2:hasPosition': {'from': 'part2:MultidimensionalObject',
                                                                 'is_list': True,
                                                                 'is_optional': True,
                                                                 'name': 'hasPosition',
                                                                 'type_uri': 'part2:ExpressInteger',
                                                                 'uri': 'part2:hasPosition'}},
                                 'subtypes': ['part2:CoordinateSystem'],
                                 'supertypes': ['part2:MultidimensionalObject',
                                                'part2:Scale'],
                                 'uri': 'part2:MultidimensionalScale'},
 'part2:Namespace': {'abstract': True,
                     'comment': 'A [Namespace] is a [ClassOfArrangementOfIndividual] where the class_of_whole and class_of_part are members of [ClassOfInformationRepresentation] and the part is the most significant part of the whole that is the namespace.\nEXAMPLE\tThe STRING WC1: is the namespace in the identifier WC1:1234.',
                     'icon': 'iso_co_rel',
                     'name': 'Namespace',
                     'roles': {'part2:hasClassOfPart': {'from': 'part2:Namespace',
                                                        'name': 'hasClassOfPart',
                                                        'type_uri': 'part2:ClassOfInformationRepresentation',
                                                        'uri': 'part2:hasClassOfPart'},
                               'part2:hasClassOfWhole': {'from': 'part2:Namespace',
                                                         'name': 'hasClassOfWhole',
                                                         'type_uri': 'part2:ClassOfInformationRepresentation',
                                                         'uri': 'part2:hasClassOfWhole'},
                               'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                            'is_optional': True,
                                                            'name': 'hasEnd1Cardinality',
                                                            'type_uri': 'part2:Cardinality',
                                                            'uri': 'part2:hasEnd1Cardinality'},
                               'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                            'is_optional': True,
                                                            'name': 'hasEnd2Cardinality',
                                                            'type_uri': 'part2:Cardinality',
                                                            'uri': 'part2:hasEnd2Cardinality'}},
                     'subtypes': ['part2:LeftNamespace',
                                  'part2:RightNamespace'],
                     'supertypes': ['part2:ClassOfArrangementOfIndividual'],
                     'uri': 'part2:Namespace'},
 'part2:NumberRange': {'abstract': False,
                       'comment': 'A [NumberRange] is a one dimensional [NumberSpace].\nEXAMPLE\tThe number space -273.1 to +infinity is a [NumberRange].',
                       'icon': 'iso_classofclass',
                       'name': 'NumberRange',
                       'roles': {},
                       'subtypes': [],
                       'supertypes': ['part2:NumberSpace'],
                       'uri': 'part2:NumberRange'},
 'part2:NumberSpace': {'abstract': False,
                       'comment': 'A [NumberSpace] is a [ClassOfNumber] that is a continuum.\nEXAMPLE\tThe integers from 1 to 5 and the reals from 0.000 to 1.000 are examples of [NumberSpace].',
                       'icon': 'iso_classofclass',
                       'name': 'NumberSpace',
                       'roles': {},
                       'subtypes': ['part2:MultidimensionalNumberSpace',
                                    'part2:NumberRange'],
                       'supertypes': ['part2:ClassOfNumber'],
                       'uri': 'part2:NumberSpace'},
 'part2:OtherRelationship': {'abstract': False,
                             'comment': 'An [OtherRelationship] is a [Relationship] that is not a member of any of the other explicit subtypes of [Relationship]. The meaning of an [OtherRelationship] is specified by a [Classification] by an instance of [ClassOfRelationshipWithSignature].\nEXAMPLE\tThe [Relationship] that indicates that a car is manufactured by Ford can be represented by an instance of [OtherRelationship]. The [RoleAndDomain] that classifies the end_1 and end_2 attributes is given by the class_of_end_1 and class_of_end_2 attributes respectively for the [ClassOfRelationshipWithSignature] that classifies the [OtherRelationship]. Where the [ClassOfRelationshipWithSignature] is also a [ClassOfRelationshipWithRelatedEnd1] or a [ClassOfRelationshipWithRelatedEnd2] then the end_1 or end_2 respectively of the [OtherRelationship] shall take the value specified by the related attribute.',
                             'icon': 'iso_rel',
                             'name': 'OtherRelationship',
                             'roles': {'part2:hasEnd1': {'from': 'part2:OtherRelationship',
                                                         'name': 'hasEnd1',
                                                         'type_uri': 'part2:Thing',
                                                         'uri': 'part2:hasEnd1'},
                                       'part2:hasEnd2': {'from': 'part2:OtherRelationship',
                                                         'name': 'hasEnd2',
                                                         'type_uri': 'part2:Thing',
                                                         'uri': 'part2:hasEnd2'}},
                             'subtypes': [],
                             'supertypes': ['part2:Relationship'],
                             'uri': 'part2:OtherRelationship'},
 'part2:ParticipatingRoleAndDomain': {'abstract': False,
                                      'comment': "A [ParticipatingRoleAndDomain] is a [RoleAndDomain] that is also a [ClassOfIndividual] that indicates a participating role in an [Activity].\nEXAMPLE\t'Pumper and centrifugal pump' is an instance of  [ParticipatingRoleAndDomain].",
                                      'icon': 'iso_class',
                                      'name': 'ParticipatingRoleAndDomain',
                                      'roles': {},
                                      'subtypes': [],
                                      'supertypes': ['part2:ClassOfIndividual',
                                                     'part2:RoleAndDomain'],
                                      'uri': 'part2:ParticipatingRoleAndDomain'},
 'part2:Participation': {'abstract': False,
                         'comment': 'A [Participation] is a [CompositionOfIndividual] that indicates that a [PossibleIndividual] is a participant in an [Activity].\nNOTE\tThe [PossibleIndividual] that is the part in the [Participation] is may be a temporal part of a [WholeLifeIndividual] that is classified by the [RoleAndDomain] that indicates the role it plays in the [Activity].\nEXAMPLE\tThe relationship between the temporal part of P1234 that performs the discharge of the Motor Vessel Murex on 2nd December 2002, and the activity that is that discharge of that vessel is a [Participation].',
                         'icon': 'iso_rel',
                         'name': 'Participation',
                         'roles': {'part2:hasPart': {'from': 'part2:CompositionOfIndividual',
                                                     'name': 'hasPart',
                                                     'type_uri': 'part2:PossibleIndividual',
                                                     'uri': 'part2:hasPart'},
                                   'part2:hasWhole': {'from': 'part2:Participation',
                                                      'name': 'hasWhole',
                                                      'type_uri': 'part2:Activity',
                                                      'uri': 'part2:hasWhole'}},
                         'subtypes': [],
                         'supertypes': ['part2:CompositionOfIndividual'],
                         'uri': 'part2:Participation'},
 'part2:PeriodInTime': {'abstract': False,
                        'comment': 'A [PeriodInTime] is a [PossibleIndividual] that is all space for part of time - a temporal part of the universe.\nEXAMPLE 1\tJuly 2000 is an instance of [PeriodInTime].\nEXAMPLE 2\tThe period described by UTC 2000-11-21T06:00 to UTC 2000-11-21T11:53 is an instance of [PeriodInTime] compliant with ISO8601.',
                        'icon': 'iso_individual',
                        'name': 'PeriodInTime',
                        'roles': {},
                        'subtypes': [],
                        'supertypes': ['part2:PossibleIndividual'],
                        'uri': 'part2:PeriodInTime'},
 'part2:Phase': {'abstract': False,
                 'comment': "A [Phase] is a [ClassOfArrangedIndividual] based on the nature of the boundary behaviour of material resulting from its atomic and molecular bonding.\nNOTE\t[Phase] excludes types of internal structure such as crystalline. \nEXAMPLE\tThe classes known as 'liquid' and 'solid' can be represented by instances of [Phase].",
                 'icon': 'iso_class',
                 'name': 'Phase',
                 'roles': {},
                 'subtypes': [],
                 'supertypes': ['part2:ClassOfArrangedIndividual'],
                 'uri': 'part2:Phase'},
 'part2:PhysicalObject': {'abstract': False,
                          'comment': 'A [PhysicalObject] is a [PossibleIndividual] that is a distribution of\nmatter, energy, or both. \nEXAMPLE 1\tA piece of metal is a [PhysicalObject].\nEXAMPLE 2\tA tree is a [PhysicalObject]\nEXAMPLE 3\tThe thing identified by tag P101 is a [PhysicalObject].\nEXAMPLE 4\tA light beam is a [PhysicalObject].\nEXAMPLE 5\tA tank that is built and dismantled on site is both a [MaterializedPhysicalObject] and  a [FunctionalPhysicalObject].',
                          'icon': 'iso_individual',
                          'name': 'PhysicalObject',
                          'roles': {},
                          'subtypes': ['part2:FunctionalPhysicalObject',
                                       'part2:MaterializedPhysicalObject',
                                       'part2:SpatialLocation',
                                       'part2:Stream'],
                          'supertypes': ['part2:PossibleIndividual'],
                          'uri': 'part2:PhysicalObject'},
 'part2:PointInTime': {'abstract': False,
                       'comment': 'An [Event] that is the whole space extension with zero extent in time.\nNOTE \tIn using this part of ISO15926, a [PointInTime] should be represented by a [RepresentationOfGregorianDateAndUtcTime].\nEXAMPLE\tThe time known as UTC 1999-05-13T16:31:23.56 is a [PointInTime].',
                       'icon': 'iso_individual',
                       'name': 'PointInTime',
                       'roles': {},
                       'subtypes': [],
                       'supertypes': ['part2:Event'],
                       'uri': 'part2:PointInTime'},
 'part2:PossibleIndividual': {'abstract': False,
                              'comment': 'A [PossibleIndividual] is a [Thing] that exists in space and time. This includes:\n- things where any of the space time dimensions are vanishingly small, \n- those that are either all space for any time, or all time and any space, \n- the entirety of all space time \n- things that actually exist, or have existed, \n- things that are fictional or conjectured and possibly exist in the past, present or future,\n- temporal parts (states) of other individuals,\n- things that have a specific position, but zero extent in one or more dimensions, such as points, lines, and surfaces. In this context existence is based upon being imaginable within some consistent logic, including actual, hypothetical, planned, expected, or required individuals.\nEXAMPLE\tThe pump with serial number ABC123, Battersea Power Station, Sir Joseph Whitworth, Shakespeare, and the starship "Enterprise" can be represented by instances of [PossibleIndividual].',
                              'icon': 'iso_individual',
                              'name': 'PossibleIndividual',
                              'roles': {},
                              'subtypes': ['part2:Activity',
                                           'part2:ActualIndividual',
                                           'part2:ArrangedIndividual',
                                           'part2:Event',
                                           'part2:PeriodInTime',
                                           'part2:PhysicalObject',
                                           'part2:WholeLifeIndividual'],
                              'supertypes': ['part2:Thing'],
                              'uri': 'part2:PossibleIndividual'},
 'part2:PossibleRoleAndDomain': {'abstract': False,
                                 'comment': 'A [PossibleRoleAndDomain] is a [Relationship] that indicates that a player [PossibleIndividual] can possibly play the played [RoleAndDomain].\nEXAMPLE\tActing as an anchor is a possible role for pump 1234.',
                                 'icon': 'iso_rel',
                                 'name': 'PossibleRoleAndDomain',
                                 'roles': {'part2:hasPlayed': {'from': 'part2:PossibleRoleAndDomain',
                                                               'name': 'hasPlayed',
                                                               'type_uri': 'part2:RoleAndDomain',
                                                               'uri': 'part2:hasPlayed'},
                                           'part2:hasPlayer': {'from': 'part2:PossibleRoleAndDomain',
                                                               'name': 'hasPlayer',
                                                               'type_uri': 'part2:PossibleIndividual',
                                                               'uri': 'part2:hasPlayer'}},
                                 'subtypes': [],
                                 'supertypes': ['part2:Relationship'],
                                 'uri': 'part2:PossibleRoleAndDomain'},
 'part2:Property': {'abstract': False,
                    'comment': 'A [Property] is a [ClassOfIndividual] that is a member of a continuum of a [ClassOfProperty]. The [Property] may be quantified by mapping to a number on a scale.\nNOTE 1\tA member of a [Property] is a [PossibleIndividual] that has the same degree or magnitude of the quality or characteristic represented by the [Property] as other members.\nNOTE 2\tThe types of characteristic or quality, such as temperature or density, are instances of [ClassOfProperty].\nNOTE 3\tDuplicate properties (e.g. that map to the same number on the same scale) should not be created within the same data store.\nEXAMPLE\tA particular degree of hotness can be represented as an instance of [Property].',
                    'icon': 'iso_class',
                    'name': 'Property',
                    'roles': {},
                    'subtypes': ['part2:MultidimensionalProperty',
                                 'part2:Shape'],
                    'supertypes': ['part2:ClassOfIndividual'],
                    'uri': 'part2:Property'},
 'part2:PropertyForShapeDimension': {'abstract': False,
                                     'comment': 'A [PropertyForShapeDimension] is a [ClassOfRelationship] that indicates that the members of the [ShapeDimension] are of the [Property].\nEXAMPLE\t10m diameter is a 10m length.',
                                     'icon': 'iso_co_rel',
                                     'name': 'PropertyForShapeDimension',
                                     'roles': {'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                            'is_optional': True,
                                                                            'name': 'hasEnd1Cardinality',
                                                                            'type_uri': 'part2:Cardinality',
                                                                            'uri': 'part2:hasEnd1Cardinality'},
                                               'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                            'is_optional': True,
                                                                            'name': 'hasEnd2Cardinality',
                                                                            'type_uri': 'part2:Cardinality',
                                                                            'uri': 'part2:hasEnd2Cardinality'},
                                               'part2:hasProperty': {'from': 'part2:PropertyForShapeDimension',
                                                                     'name': 'hasProperty',
                                                                     'type_uri': 'part2:Property',
                                                                     'uri': 'part2:hasProperty'},
                                               'part2:hasShapeDimension': {'from': 'part2:PropertyForShapeDimension',
                                                                           'name': 'hasShapeDimension',
                                                                           'type_uri': 'part2:ShapeDimension',
                                                                           'uri': 'part2:hasShapeDimension'}},
                                     'subtypes': [],
                                     'supertypes': ['part2:ClassOfRelationship'],
                                     'uri': 'part2:PropertyForShapeDimension'},
 'part2:PropertyQuantification': {'abstract': False,
                                  'comment': 'A [PropertyQuantification] is a [FunctionalMapping] whose members map a [Property] to an [ArithmeticNumber].\nNOTE 1\tThe actual representation of the number is done by linking the [ArithmeticNumber] to a [ClassOfExpressInformationRepresentation] via a [ClassOfRepresentationOfThing].\nNOTE 2\tThe unit or scale of the quantification is given by classifying the [PropertyQuantification] by a [Scale].\nEXAMPLE\tThe link that maps a particular mass to the number 4.2 can be represented by an instance of [PropertyQuantification].',
                                  'icon': 'iso_rel',
                                  'name': 'PropertyQuantification',
                                  'roles': {'part2:hasInput': {'from': 'part2:PropertyQuantification',
                                                               'name': 'hasInput',
                                                               'type_uri': 'part2:Property',
                                                               'uri': 'part2:hasInput'},
                                            'part2:hasResult': {'from': 'part2:PropertyQuantification',
                                                                'name': 'hasResult',
                                                                'type_uri': 'part2:ArithmeticNumber',
                                                                'uri': 'part2:hasResult'}},
                                  'subtypes': [],
                                  'supertypes': ['part2:FunctionalMapping'],
                                  'uri': 'part2:PropertyQuantification'},
 'part2:PropertyRange': {'abstract': False,
                         'comment': 'A [PropertyRange] is a [PropertySpace] that is a continuous subset of a [SinglePropertyDimension].\nEXAMPLE\t-10C to +20C is a [PropertyRange] of temperature.',
                         'icon': 'iso_classofclass',
                         'name': 'PropertyRange',
                         'roles': {},
                         'subtypes': [],
                         'supertypes': ['part2:PropertySpace'],
                         'uri': 'part2:PropertyRange'},
 'part2:PropertySpace': {'abstract': False,
                         'comment': 'A [PropertySpace] is a [ClassOfProperty] whose members are a coherent continuum of [Property].\nEXAMPLE 1\tThe set of temperature properties, known as temperature, is a [PropertySpace].\nEXAMPLE 2\tThe members of the pressure and flow rate [ClassOfProperty] that fall on a particular pump curve is a [PropertySpace].',
                         'icon': 'iso_classofclass',
                         'name': 'PropertySpace',
                         'roles': {},
                         'subtypes': ['part2:ClassOfShape',
                                      'part2:MultidimensionalPropertySpace',
                                      'part2:PropertyRange',
                                      'part2:SinglePropertyDimension'],
                         'supertypes': ['part2:ClassOfProperty'],
                         'uri': 'part2:PropertySpace'},
 'part2:PropertySpaceForClassOfShapeDimension': {'abstract': False,
                                                 'comment': 'A [PropertySpaceForClassOfShapeDimension] is a [ClassOfClassOfRelationship] that indicates the [PropertySpace] that a [ClassOfShapeDimension] is from.\nEXAMPLE\tDiameter is a length dimension.',
                                                 'icon': 'iso_co_classofrel',
                                                 'name': 'PropertySpaceForClassOfShapeDimension',
                                                 'roles': {'part2:hasClassOfShapeDimension': {'from': 'part2:PropertySpaceForClassOfShapeDimension',
                                                                                              'name': 'hasClassOfShapeDimension',
                                                                                              'type_uri': 'part2:ClassOfShapeDimension',
                                                                                              'uri': 'part2:hasClassOfShapeDimension'},
                                                           'part2:hasPropertySpace': {'from': 'part2:PropertySpaceForClassOfShapeDimension',
                                                                                      'name': 'hasPropertySpace',
                                                                                      'type_uri': 'part2:PropertySpace',
                                                                                      'uri': 'part2:hasPropertySpace'}},
                                                 'subtypes': [],
                                                 'supertypes': ['part2:ClassOfClassOfRelationship'],
                                                 'uri': 'part2:PropertySpaceForClassOfShapeDimension'},
 'part2:RealNumber': {'abstract': False,
                      'comment': 'A [RealNumber] is an [ArithmeticNumber] that is a real number.\nEXAMPLE\t3.2146 is a representation of a real number.',
                      'icon': 'iso_classofclass',
                      'name': 'RealNumber',
                      'roles': {},
                      'subtypes': [],
                      'supertypes': ['part2:ArithmeticNumber'],
                      'uri': 'part2:RealNumber'},
 'part2:Recognition': {'abstract': False,
                       'comment': 'A [Recognition] is a [Relationship] that indicates that a [Thing] is recognized through an [Activity].\nEXAMPLE\tMeasurement activity #358 recognized that the room was a member of the 20 Celsius [Property].',
                       'icon': 'iso_rel',
                       'name': 'Recognition',
                       'roles': {'part2:hasRecognized': {'from': 'part2:Recognition',
                                                         'name': 'hasRecognized',
                                                         'type_uri': 'part2:Thing',
                                                         'uri': 'part2:hasRecognized'},
                                 'part2:hasRecognizing': {'from': 'part2:Recognition',
                                                          'name': 'hasRecognizing',
                                                          'type_uri': 'part2:Activity',
                                                          'uri': 'part2:hasRecognizing'}},
                       'subtypes': [],
                       'supertypes': ['part2:Relationship'],
                       'uri': 'part2:Recognition'},
 'part2:Relationship': {'abstract': True,
                        'comment': 'A [Relationship] is an [AbstractObject] that indicates something that one thing has to do with another.\nNOTE\tOnly classes of binary relationship are supported. More complex objects can be supported using [MultidimensionalObject] and [ClassOfMultidimensionalObject].',
                        'icon': 'iso_rel',
                        'name': 'Relationship',
                        'roles': {},
                        'subtypes': ['part2:Approval',
                                     'part2:CauseOfEvent',
                                     'part2:Classification',
                                     'part2:ComparisonOfProperty',
                                     'part2:CompositionOfIndividual',
                                     'part2:ConnectionOfIndividual',
                                     'part2:FunctionalMapping',
                                     'part2:IndirectProperty',
                                     'part2:IndividualUsedInConnection',
                                     'part2:IntendedRoleAndDomain',
                                     'part2:InvolvementByReference',
                                     'part2:LifecycleStage',
                                     'part2:OtherRelationship',
                                     'part2:PossibleRoleAndDomain',
                                     'part2:Recognition',
                                     'part2:RelativeLocation',
                                     'part2:RepresentationOfThing',
                                     'part2:ResponsibilityForRepresentation',
                                     'part2:Specialization',
                                     'part2:TemporalSequence',
                                     'part2:UsageOfRepresentation'],
                        'supertypes': ['part2:AbstractObject'],
                        'uri': 'part2:Relationship'},
 'part2:RelativeLocation': {'abstract': False,
                            'comment': 'A [RelativeLocation] is a [Relationship] that indicates that the position of one [PossibleIndividual] is relative to another.\nNOTE\tThe [Classification] of the [RelativeLocation] indicates the nature of the [RelativeLocation], e.g. above, below, beside.\nEXAMPLE\tA being the located relative to B being the locator in a [RelativeLocation] that is classified by the [ClassOfRelativeLocation] above, indicates that A is above B.',
                            'icon': 'iso_rel',
                            'name': 'RelativeLocation',
                            'roles': {'part2:hasLocated': {'from': 'part2:RelativeLocation',
                                                           'name': 'hasLocated',
                                                           'type_uri': 'part2:PossibleIndividual',
                                                           'uri': 'part2:hasLocated'},
                                      'part2:hasLocator': {'from': 'part2:RelativeLocation',
                                                           'name': 'hasLocator',
                                                           'type_uri': 'part2:PossibleIndividual',
                                                           'uri': 'part2:hasLocator'}},
                            'subtypes': ['part2:ContainmentOfIndividual'],
                            'supertypes': ['part2:Relationship'],
                            'uri': 'part2:RelativeLocation'},
 'part2:RepresentationForm': {'abstract': False,
                              'comment': 'A [RepresentationForm] is a  [ClassOfClassOfInformationRepresentation] that distinguishes the form of representation.\nEXAMPLE\tHexadecimal, text, script, symbol, picture, diagram, semaphore, Morse code, music score, MIDI file format, and XML can each be represented by instances of [RepresentationForm].',
                              'icon': 'iso_classofclass',
                              'name': 'RepresentationForm',
                              'roles': {},
                              'subtypes': [],
                              'supertypes': ['part2:ClassOfClassOfInformationRepresentation'],
                              'uri': 'part2:RepresentationForm'},
 'part2:RepresentationOfGregorianDateAndUtcTime': {'abstract': False,
                                                   'comment': 'A [RepresentationOfGregorianDateAndUtcTime] is a [ClassOfInformationRepresentation] 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.\nNOTE\tCoordinated Universal Time (UTC) is the basis for legal time worldwide and follows TAI (see below) exactly except for an integral number of seconds, presently 32. These leap seconds are inserted on the advice of the International Earth Rotation Service (IERS) (http://hpiers.obspm.fr) to ensure that, on average over the years, the Sun is overhead within 0.9 seconds of 12:00:00 UTC on the meridian of Greenwich. UTC is thus the modern successor of Greenwich Mean Time, GMT, which was used when the unit of time was the mean solar day. International Atomic Time (TAI) is calculated by the BIPM from the readings of more than 200 atomic clocks located in metrology institutes and observatories in more than 30 countries around the world. TAI is made available every month in the BIPM Circular T (ftp://62.161.69.5/pub/tai/publication). It is estimated that TAI does not lose or gain with respect to an imaginary perfect clock by more than about one tenth of a microsecond (0.0000001 second) per year.',
                                                   'icon': 'iso_class',
                                                   'name': 'RepresentationOfGregorianDateAndUtcTime',
                                                   'roles': {'part2:hasDay': {'from': 'part2:RepresentationOfGregorianDateAndUtcTime',
                                                                              'is_optional': True,
                                                                              'name': 'hasDay',
                                                                              'type_uri': 'xsd:long',
                                                                              'uri': 'part2:hasDay'},
                                                             'part2:hasHour': {'from': 'part2:RepresentationOfGregorianDateAndUtcTime',
                                                                               'is_optional': True,
                                                                               'name': 'hasHour',
                                                                               'type_uri': 'xsd:long',
                                                                               'uri': 'part2:hasHour'},
                                                             'part2:hasMinute': {'from': 'part2:RepresentationOfGregorianDateAndUtcTime',
                                                                                 'is_optional': True,
                                                                                 'name': 'hasMinute',
                                                                                 'type_uri': 'xsd:long',
                                                                                 'uri': 'part2:hasMinute'},
                                                             'part2:hasMonth': {'from': 'part2:RepresentationOfGregorianDateAndUtcTime',
                                                                                'is_optional': True,
                                                                                'name': 'hasMonth',
                                                                                'type_uri': 'xsd:long',
                                                                                'uri': 'part2:hasMonth'},
                                                             'part2:hasSecond': {'from': 'part2:RepresentationOfGregorianDateAndUtcTime',
                                                                                 'is_optional': True,
                                                                                 'name': 'hasSecond',
                                                                                 'type_uri': 'xsd:double',
                                                                                 'uri': 'part2:hasSecond'},
                                                             'part2:hasYear': {'from': 'part2:RepresentationOfGregorianDateAndUtcTime',
                                                                               'name': 'hasYear',
                                                                               'type_uri': 'xsd:long',
                                                                               'uri': 'part2:hasYear'}},
                                                   'subtypes': [],
                                                   'supertypes': ['part2:ClassOfInformationRepresentation'],
                                                   'uri': 'part2:RepresentationOfGregorianDateAndUtcTime'},
 'part2:RepresentationOfThing': {'abstract': False,
                                 'comment': 'A [RepresentationOfThing] is a [Relationship] that indicates that a [PossibleIndividual] is a sign for a [Thing].\nNOTE\tIn general it will be [ClassOfRepresentationOfThing] that will be of interest, rather than each [RepresentationOfThing]. However, [RepresentationOfThing] will be of interest when individual copies of documents are managed and controlled.\nEXAMPLE\tThe relationship between a nameplate with its serial number and other data, and a particular pressure vessel ([MaterializedPhysicalObject]) is an example of [RepresentationOfThing] that is an [Identification].',
                                 'icon': 'iso_rel',
                                 'name': 'RepresentationOfThing',
                                 'roles': {'part2:hasRepresented': {'from': 'part2:RepresentationOfThing',
                                                                    'name': 'hasRepresented',
                                                                    'type_uri': 'part2:Thing',
                                                                    'uri': 'part2:hasRepresented'},
                                           'part2:hasSign': {'from': 'part2:RepresentationOfThing',
                                                             'name': 'hasSign',
                                                             'type_uri': 'part2:PossibleIndividual',
                                                             'uri': 'part2:hasSign'}},
                                 'subtypes': ['part2:Definition',
                                              'part2:Description',
                                              'part2:Identification'],
                                 'supertypes': ['part2:Relationship'],
                                 'uri': 'part2:RepresentationOfThing'},
 'part2:ResponsibilityForRepresentation': {'abstract': False,
                                           'comment': 'A [ResponsibilityForRepresentation] is a [Relationship] that indicates that the controller [PossibleIndividual] administers the controlled [RepresentationOfThing].\nEXAMPLE\tThe responsibility for the administration of this standard lies with ISO.',
                                           'icon': 'iso_rel',
                                           'name': 'ResponsibilityForRepresentation',
                                           'roles': {'part2:hasControlled': {'from': 'part2:ResponsibilityForRepresentation',
                                                                             'name': 'hasControlled',
                                                                             'type_uri': 'part2:RepresentationOfThing',
                                                                             'uri': 'part2:hasControlled'},
                                                     'part2:hasController': {'from': 'part2:ResponsibilityForRepresentation',
                                                                             'name': 'hasController',
                                                                             'type_uri': 'part2:PossibleIndividual',
                                                                             'uri': 'part2:hasController'}},
                                           'subtypes': [],
                                           'supertypes': ['part2:Relationship'],
                                           'uri': 'part2:ResponsibilityForRepresentation'},
 'part2:RightNamespace': {'abstract': False,
                          'comment': 'A [RightNamespace] is a [Namespace] that indicates that the [ClassOfPart] is the right most part of the [ClassOfWhole].\nEXAMPLE\tWhen ZH is the namespace in 5367ZH, this is indicated by a [RightNamespace] relationship between them.',
                          'icon': 'iso_co_rel',
                          'name': 'RightNamespace',
                          'roles': {'part2:hasClassOfPart': {'from': 'part2:Namespace',
                                                             'name': 'hasClassOfPart',
                                                             'type_uri': 'part2:ClassOfInformationRepresentation',
                                                             'uri': 'part2:hasClassOfPart'},
                                    'part2:hasClassOfWhole': {'from': 'part2:Namespace',
                                                              'name': 'hasClassOfWhole',
                                                              'type_uri': 'part2:ClassOfInformationRepresentation',
                                                              'uri': 'part2:hasClassOfWhole'},
                                    'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                 'is_optional': True,
                                                                 'name': 'hasEnd1Cardinality',
                                                                 'type_uri': 'part2:Cardinality',
                                                                 'uri': 'part2:hasEnd1Cardinality'},
                                    'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                                 'is_optional': True,
                                                                 'name': 'hasEnd2Cardinality',
                                                                 'type_uri': 'part2:Cardinality',
                                                                 'uri': 'part2:hasEnd2Cardinality'}},
                          'subtypes': [],
                          'supertypes': ['part2:Namespace'],
                          'uri': 'part2:RightNamespace'},
 'part2:Role': {'abstract': False,
                'comment': 'A [Role] is a [RoleAndDomain] that indicates what some thing has to do with an [Activity], [Relationship], or [MultidimensionalObject].\nEXAMPLE 1\tEmployee is a [Role] that indicates what a temporal part of a person has to do with an employment relation.\nEXAMPLE 2\tPumper is a [Role] that indicates what a temporal part of a pump has to do with a pumping activity.',
                'icon': 'iso_class',
                'name': 'Role',
                'roles': {},
                'subtypes': [],
                'supertypes': ['part2:RoleAndDomain'],
                'uri': 'part2:Role'},
 'part2:RoleAndDomain': {'abstract': False,
                         'comment': 'A [RoleAndDomain] is a [Class] that specifies the domain and role  for an end of a [ClassOfRelationship] or [ClassOfMultidimensionalObject].\nNOTE\tA [RoleAndDomain] is analogous to specifying an EXPRESS attribute or its inverse.\nEXAMPLE\t"Husband and man" and "wife and woman" are examples of [RoleAndDomain].',
                         'icon': 'iso_class',
                         'name': 'RoleAndDomain',
                         'roles': {},
                         'subtypes': ['part2:ParticipatingRoleAndDomain',
                                      'part2:Role'],
                         'supertypes': ['part2:Class'],
                         'uri': 'part2:RoleAndDomain'},
 'part2:Scale': {'abstract': False,
                 'comment': 'A [Scale] is a [ClassOfIsomorphicFunctionalMapping] whose members are members of [PropertyQuantification]. It indicates the [NumberSpace] a [PropertySpace] maps to for the [Scale] in question.\nEXAMPLE\tThe link that is known as the Celsius scale between the [ClassOfNumber] [-273, inf] and the [ClassOfProperty] temperature can be represented by an instance of [Scale].',
                 'icon': 'iso_co_rel',
                 'name': 'Scale',
                 'roles': {'part2:hasCodomain': {'from': 'part2:Scale',
                                                 'name': 'hasCodomain',
                                                 'type_uri': 'part2:NumberSpace',
                                                 'uri': 'part2:hasCodomain'},
                           'part2:hasDomain': {'from': 'part2:Scale',
                                               'name': 'hasDomain',
                                               'type_uri': 'part2:PropertySpace',
                                               'uri': 'part2:hasDomain'},
                           'part2:hasEnd1Cardinality': {'from': 'part2:ClassOfRelationship',
                                                        'is_optional': True,
                                                        'name': 'hasEnd1Cardinality',
                                                        'type_uri': 'part2:Cardinality',
                                                        'uri': 'part2:hasEnd1Cardinality'},
                           'part2:hasEnd2Cardinality': {'from': 'part2:ClassOfRelationship',
                                                        'is_optional': True,
                                                        'name': 'hasEnd2Cardinality',
                                                        'type_uri': 'part2:Cardinality',
                                                        'uri': 'part2:hasEnd2Cardinality'}},
                 'subtypes': ['part2:MultidimensionalScale'],
                 'supertypes': ['part2:ClassOfIsomorphicFunctionalMapping'],
                 'uri': 'part2:Scale'},
 'part2:Shape': {'abstract': False,
                 'comment': 'A [Shape] is a [Property] that depends on constant relations of position and proportionate distance among all the points composing its outline or its external surface.\nEXAMPLE 1\t20mm diameter circle and 10-20mm diameter circles are examples of [Shape].\nEXAMPLE 2\tIrregular forms such as the outer envelope of a model of pump can be represented by instances of [Shape].',
                 'icon': 'iso_class',
                 'name': 'Shape',
                 'roles': {},
                 'subtypes': [],
                 'supertypes': ['part2:Property'],
                 'uri': 'part2:Shape'},
 'part2:ShapeDimension': {'abstract': False,
                          'comment': 'A [ShapeDimension] is a [ClassOfClassOfIndividual] that is a set of [IndividualDimension] that define an aspect of a shape.\nEXAMPLE\tDiameter of 5m, height of 3mm, and width of 10cm are members of [ShapeDimension].',
                          'icon': 'iso_classofclass',
                          'name': 'ShapeDimension',
                          'roles': {},
                          'subtypes': [],
                          'supertypes': ['part2:ClassOfClassOfIndividual'],
                          'uri': 'part2:ShapeDimension'},
 'part2:SinglePropertyDimension': {'abstract': False,
                                   'comment': 'A [SinglePropertyDimension] is a [PropertySpace] that is a single and complete continuum of properties each of which maps to a single number.\nEXAMPLE\tTemperature, pressure, viscosity, and length are examples of [SinglePropertyDimension].',
                                   'icon': 'iso_classofclass',
                                   'name': 'SinglePropertyDimension',
                                   'roles': {},
                                   'subtypes': [],
                                   'supertypes': ['part2:PropertySpace'],
                                   'uri': 'part2:SinglePropertyDimension'},
 'part2:SpatialLocation': {'abstract': False,
                           'comment': 'A [SpatialLocation] is a [PhysicalObject] that has continuity of relative position.\nEXAMPLE\tGeographic datum, license block, construction area, country, air corridor, maritime traffic zone, hazard control zone, 4D points, lines, planes, solids.',
                           'icon': 'iso_individual',
                           'name': 'SpatialLocation',
                           'roles': {},
                           'subtypes': [],
                           'supertypes': ['part2:PhysicalObject'],
                           'uri': 'part2:SpatialLocation'},
 'part2:Specialization': {'abstract': False,
                          'comment': 'A [Specialization] is a [Relationship] that indicates that all members of the subclass are members of the superclass. [Specialization] is transitive. \nNOTE\tIf A is a [Specialization] of B and B is a [Specialization] of C, then A is necessarily a [Specialization] of C.\nEXAMPLE\tCentrifugal pump is a [Specialization] of pump.',
                          'icon': 'iso_rel',
                          'name': 'Specialization',
                          'roles': {'part2:hasSubclass': {'from': 'part2:Specialization',
                                                          'name': 'hasSubclass',
                                                          'type_uri': 'part2:Class',
                                                          'uri': 'part2:hasSubclass'},
                                    'part2:hasSuperclass': {'from': 'part2:Specialization',
                                                            'name': 'hasSuperclass',
                                                            'type_uri': 'part2:Class',
                                                            'uri': 'part2:hasSuperclass'}},
                          'subtypes': ['part2:BoundaryOfNumberSpace',
                                       'part2:BoundaryOfPropertySpace',
                                       'part2:SpecializationByDomain',
                                       'part2:SpecializationByRole',
                                       'part2:SpecializationOfIndividualDimensionFromProperty'],
                          'supertypes': ['part2:Relationship'],
                          'uri': 'part2:Specialization'},
 'part2:SpecializationByDomain': {'abstract': False,
                                  'comment': 'A [SpecializationByDomain] is a [Specialization] that indicates that the member of the [RoleAndDomain] is a [Specialization] of the domain [Class].\nEXAMPLE\tManufacturing company is a specialization of the company domain.',
                                  'icon': 'iso_rel',
                                  'name': 'SpecializationByDomain',
                                  'roles': {'part2:hasSubclass': {'from': 'part2:SpecializationByDomain',
                                                                  'name': 'hasSubclass',
                                                                  'type_uri': 'part2:RoleAndDomain',
                                                                  'uri': 'part2:hasSubclass'},
                                            'part2:hasSuperclass': {'from': 'part2:Specialization',
                                                                    'name': 'hasSuperclass',
                                                                    'type_uri': 'part2:Class',
                                                                    'uri': 'part2:hasSuperclass'}},
                                  'subtypes': [],
                                  'supertypes': ['part2:Specialization'],
                                  'uri': 'part2:SpecializationByDomain'},
 'part2:SpecializationByRole': {'abstract': False,
                                'comment': 'A [SpecializationByRole] is a [Specialization] that indicates that the [RoleAndDomain] is of the [Role] indicated by the superclass.\nEXAMPLE\tManufacturing company is a specialization by role of manufacturer.',
                                'icon': 'iso_rel',
                                'name': 'SpecializationByRole',
                                'roles': {'part2:hasSubclass': {'from': 'part2:SpecializationByRole',
                                                                'name': 'hasSubclass',
                                                                'type_uri': 'part2:RoleAndDomain',
                                                                'uri': 'part2:hasSubclass'},
                                          'part2:hasSuperclass': {'from': 'part2:SpecializationByRole',
                                                                  'name': 'hasSuperclass',
                                                                  'type_uri': 'part2:Role',
                                                                  'uri': 'part2:hasSuperclass'}},
                                'subtypes': [],
                                'supertypes': ['part2:Specialization'],
                                'uri': 'part2:SpecializationByRole'},
 'part2:SpecializationOfIndividualDimensionFromProperty': {'abstract': False,
                                                           'comment': 'A [SpecializationOfIndividualDimensionFromProperty] is a [Specialization] that indicates the members of the dimension are members of the property.\nEXAMPLE\tA diameter of 10m is a length of 10m.',
                                                           'icon': 'iso_rel',
                                                           'name': 'SpecializationOfIndividualDimensionFromProperty',
                                                           'roles': {'part2:hasSubclass': {'from': 'part2:SpecializationOfIndividualDimensionFromProperty',
                                                                                           'name': 'hasSubclass',
                                                                                           'type_uri': 'part2:IndividualDimension',
                                                                                           'uri': 'part2:hasSubclass'},
                                                                     'part2:hasSuperclass': {'from': 'part2:SpecializationOfIndividualDimensionFromProperty',
                                                                                             'name': 'hasSuperclass',
                                                                                             'type_uri': 'part2:Property',
                                                                                             'uri': 'part2:hasSuperclass'}},
                                                           'subtypes': [],
                                                           'supertypes': ['part2:Specialization'],
                                                           'uri': 'part2:SpecializationOfIndividualDimensionFromProperty'},
 'part2:Status': {'abstract': False,
                  'comment': "A [Status] is a [ClassOfIndividual] that is a characteristic or quality that is described by discrete, unordered values.\nNOTE\tDegrees of openness or paintedness are represented as instances of [Property] and not instances of [Status].\nEXAMPLE\tThe classes known as 'open', 'painted', 'approved', 'old', 'new', 'worn', 'hazardous', 'safe', 'dangerous', 'happy', 'sad', and 'rusty' can all be represented as instances of [Status].",
                  'icon': 'iso_class',
                  'name': 'Status',
                  'roles': {},
                  'subtypes': [],
                  'supertypes': ['part2:ClassOfIndividual'],
                  'uri': 'part2:Status'},
 'part2:Stream': {'abstract': False,
                  'comment': 'A [Stream] is a [PhysicalObject] that is material or energy moving along a path, where the path is the basis of identity and may be constrained. The stream consists of the temporal parts of those things that are in the stream whilst they are in it.\nEXAMPLE\tFlux is a 4D-constrained case of [Stream] where the path crosses a surface.\nEXAMPLE\tThe naphtha flowing in a pipe between a crude distillation unit and a platformer is a [Stream].',
                  'icon': 'iso_individual',
                  'name': 'Stream',
                  'roles': {},
                  'subtypes': [],
                  'supertypes': ['part2:PhysicalObject'],
                  'uri': 'part2:Stream'},
 'part2:TemporalBounding': {'abstract': True,
                            'comment': 'A [TemporalBounding] is a [CompositionOfIndividual] that indicates that the part [Event] is a temporal boundary of the whole [PossibleIndividual].',
                            'icon': 'iso_rel',
                            'name': 'TemporalBounding',
                            'roles': {'part2:hasPart': {'from': 'part2:TemporalBounding',
                                                        'name': 'hasPart',
                                                        'type_uri': 'part2:Event',
                                                        'uri': 'part2:hasPart'},
                                      'part2:hasWhole': {'from': 'part2:CompositionOfIndividual',
                                                         'name': 'hasWhole',
                                                         'type_uri': 'part2:PossibleIndividual',
                                                         'uri': 'part2:hasWhole'}},
                            'subtypes': ['part2:Beginning', 'part2:Ending'],
                            'supertypes': ['part2:CompositionOfIndividual'],
                            'uri': 'part2:TemporalBounding'},
 'part2:TemporalSequence': {'abstract': False,
                            'comment': 'A [TemporalSequence] is a [Relationship] that indicates that one [PossibleIndividual] precedes another in a temporal sense.\nEXAMPLE 1\tThe [Relationship] that indicates that the [PossibleIndividual] that is the construction phase of a plant precedes the [PossibleIndividual] that is the commissioning phase of a plant can be represented by an instance of [TemporalSequence].\nEXAMPLE 2\tThe [Relationship] that indicates that the [PeriodInTime] known as the industrial revolution preceded the [PeriodInTime] known as the information revolution can be represented by an instance of [TemporalSequence].',
                            'icon': 'iso_rel',
                            'name': 'TemporalSequence',
                            'roles': {'part2:hasPredecessor': {'from': 'part2:TemporalSequence',
                                                               'name': 'hasPredecessor',
                                                               'type_uri': 'part2:PossibleIndividual',
                                                               'uri': 'part2:hasPredecessor'},
                                      'part2:hasSuccessor': {'from': 'part2:TemporalSequence',
                                                             'name': 'hasSuccessor',
                                                             'type_uri': 'part2:PossibleIndividual',
                                                             'uri': 'part2:hasSuccessor'}},
                            'subtypes': [],
                            'supertypes': ['part2:Relationship'],
                            'uri': 'part2:TemporalSequence'},
 'part2:TemporalWholePart': {'abstract': False,
                             'comment': 'A [TemporalWholePart] is a [CompositionOfIndividual] that indicates that one [PossibleIndividual] is a temporal part of another [PossibleIndividual]. The spatial extent of the temporal part is that of the temporal whole for the period of the existence of the temporal part. Relationships that apply to the whole [PossibleIndividual] also apply to the temporal parts of the [PossibleIndividual], except when the relationships relate to the temporal nature of the whole. So if a [PossibleIndividual] is connected so are all its temporal parts, but being a [WholeLifeIndividual] is not inherited by its temporal parts.\nNOTE\tSince [TemporalWholePart] is transitive (inherited from its supertype) a hierarchy of temporal parts is possible, with a [WholeLifeIndividual] at the top.\nEXAMPLE 1\tThe relation that indicates that an operating period of a pump is a temporal part of the pump can be represented by an instance of [TemporalWholePart].\nEXAMPLE 2\tThe relationship that indicates that the time period known as March 1999 is part of the period known as 1st Quarter 1999 can be represented by an instance of [TemporalWholePart].',
                             'icon': 'iso_rel',
                             'name': 'TemporalWholePart',
                             'roles': {'part2:hasPart': {'from': 'part2:CompositionOfIndividual',
                                                         'name': 'hasPart',
                                                         'type_uri': 'part2:PossibleIndividual',
                                                         'uri': 'part2:hasPart'},
                                       'part2:hasWhole': {'from': 'part2:CompositionOfIndividual',
                                                          'name': 'hasWhole',
                                                          'type_uri': 'part2:PossibleIndividual',
                                                          'uri': 'part2:hasWhole'}},
                             'subtypes': [],
                             'supertypes': ['part2:CompositionOfIndividual'],
                             'uri': 'part2:TemporalWholePart'},
 'part2:Thing': {'abstract': True,
                 'comment': 'A [Thing] is anything that is or may be thought about or perceived, including material and non-material objects, ideas, and actions.  Every [Thing] is either a [PossibleIndividual], or an [AbstractObject].\nNOTE 1\tEvery [Thing] is identifiable within a system. System identifiers created by other systems and received as part of a data exchange may be stored for future reference as an identification, referring to the originating organisation or system.\nNOTE 2\tEvery example provided for other entity data types declared in this schema is also an example of [Thing].',
                 'icon': 'iso_class',
                 'name': 'Thing',
                 'roles': {'part2:hasId': {'from': 'part2:Thing',
                                           'name': 'hasId',
                                           'type_uri': 'xsd:normalizedString',
                                           'uri': 'part2:hasId'},
                           'part2:hasRecordCopyCreated': {'from': 'part2:Thing',
                                                          'is_optional': True,
                                                          'name': 'hasRecordCopyCreated',
                                                          'type_uri': 'part2:RepresentationOfGregorianDateAndUtcTime',
                                                          'uri': 'part2:hasRecordCopyCreated'},
                           'part2:hasRecordCreated': {'from': 'part2:Thing',
                                                      'is_optional': True,
                                                      'name': 'hasRecordCreated',
                                                      'type_uri': 'part2:RepresentationOfGregorianDateAndUtcTime',
                                                      'uri': 'part2:hasRecordCreated'},
                           'part2:hasRecordCreator': {'from': 'part2:Thing',
                                                      'is_optional': True,
                                                      'name': 'hasRecordCreator',
                                                      'type_uri': 'part2:PossibleIndividual',
                                                      'uri': 'part2:hasRecordCreator'},
                           'part2:hasRecordLogicallyDeleted': {'from': 'part2:Thing',
                                                               'is_optional': True,
                                                               'name': 'hasRecordLogicallyDeleted',
                                                               'type_uri': 'part2:RepresentationOfGregorianDateAndUtcTime',
                                                               'uri': 'part2:hasRecordLogicallyDeleted'},
                           'part2:hasWhyDeleted': {'from': 'part2:Thing',
                                                   'is_optional': True,
                                                   'name': 'hasWhyDeleted',
                                                   'type_uri': 'part2:ClassOfInformationRepresentation',
                                                   'uri': 'part2:hasWhyDeleted'}},
                 'subtypes': ['part2:AbstractObject',
                              'part2:PossibleIndividual'],
                 'supertypes': [],
                 'uri': 'part2:Thing'},
 'part2:UnionOfSetOfClass': {'abstract': False,
                             'comment': 'A [UnionOfSetOfClass] is a [FunctionalMapping] that indicates that the membership of the result [Class] is the union of the members of the [EnumeratedSetOfClass] classes.\nEXAMPLE The union of the [EnumeratedSetOfClass] {{A,B,C},{B,C,D},{C,D,E}} is {A,B,C,D,E}.',
                             'icon': 'iso_rel',
                             'name': 'UnionOfSetOfClass',
                             'roles': {'part2:hasInput': {'from': 'part2:UnionOfSetOfClass',
                                                          'name': 'hasInput',
                                                          'type_uri': 'part2:EnumeratedSetOfClass',
                                                          'uri': 'part2:hasInput'},
                                       'part2:hasResult': {'from': 'part2:UnionOfSetOfClass',
                                                           'name': 'hasResult',
                                                           'type_uri': 'part2:Class',
                                                           'uri': 'part2:hasResult'}},
                             'subtypes': [],
                             'supertypes': ['part2:FunctionalMapping'],
                             'uri': 'part2:UnionOfSetOfClass'},
 'part2:UpperBoundOfNumberRange': {'abstract': False,
                                   'comment': 'An [UpperBoundOfNumberRange] is a [Relationship] that indicates an [ArithmeticNumber] is the largest value in a [NumberRange].\nEXAMPLE\t5.3 is the upper bound of the range [3.1 to 5.3].',
                                   'icon': 'iso_rel',
                                   'name': 'UpperBoundOfNumberRange',
                                   'roles': {'part2:hasClassified': {'from': 'part2:UpperBoundOfNumberRange',
                                                                     'name': 'hasClassified',
                                                                     'type_uri': 'part2:ArithmeticNumber',
                                                                     'uri': 'part2:hasClassified'},
                                             'part2:hasClassifier': {'from': 'part2:UpperBoundOfNumberRange',
                                                                     'name': 'hasClassifier',
                                                                     'type_uri': 'part2:NumberRange',
                                                                     'uri': 'part2:hasClassifier'}},
                                   'subtypes': [],
                                   'supertypes': ['part2:Classification'],
                                   'uri': 'part2:UpperBoundOfNumberRange'},
 'part2:UpperBoundOfPropertyRange': {'abstract': False,
                                     'comment': 'An [UpperBoundOfPropertyRange] is a [Classification] that indicates that the [Property] is the upper bound of the [PropertyRange].\nEXAMPLE\t+20 Celsius is the upper bound of the range -10 to +20 Celsius.',
                                     'icon': 'iso_rel',
                                     'name': 'UpperBoundOfPropertyRange',
                                     'roles': {'part2:hasClassified': {'from': 'part2:UpperBoundOfPropertyRange',
                                                                       'name': 'hasClassified',
                                                                       'type_uri': 'part2:Property',
                                                                       'uri': 'part2:hasClassified'},
                                               'part2:hasClassifier': {'from': 'part2:UpperBoundOfPropertyRange',
                                                                       'name': 'hasClassifier',
                                                                       'type_uri': 'part2:PropertyRange',
                                                                       'uri': 'part2:hasClassifier'}},
                                     'subtypes': [],
                                     'supertypes': ['part2:Classification'],
                                     'uri': 'part2:UpperBoundOfPropertyRange'},
 'part2:UsageOfRepresentation': {'abstract': False,
                                 'comment': 'A [UsageOfRepresentation] is a [Relationship] that indicates that the [RepresentationOfThing] is used by the [PossibleIndividual]. Usage does not imply responsibility.\nEXAMPLE\tThe sign "P101" is used by the XYZ company to represent a particular pump in a design.',
                                 'icon': 'iso_rel',
                                 'name': 'UsageOfRepresentation',
                                 'roles': {'part2:hasUsed': {'from': 'part2:UsageOfRepresentation',
                                                             'name': 'hasUsed',
                                                             'type_uri': 'part2:RepresentationOfThing',
                                                             'uri': 'part2:hasUsed'},
                                           'part2:hasUser': {'from': 'part2:UsageOfRepresentation',
                                                             'name': 'hasUser',
                                                             'type_uri': 'part2:PossibleIndividual',
                                                             'uri': 'part2:hasUser'}},
                                 'subtypes': [],
                                 'supertypes': ['part2:Relationship'],
                                 'uri': 'part2:UsageOfRepresentation'},
 'part2:WholeLifeIndividual': {'abstract': False,
                               'comment': 'A [WholeLifeIndividual] is a [PossibleIndividual] that is a member of a [ClassOfIndividual], and is not a temporal part of any other [PossibleIndividual] that is also a member of the same [ClassOfIndividual]. A [WholeLifeIndividual] includes its past and future. \nNOTE\tA possible future temporal part of the [WholeLifeIndividual] is a [PossibleIndividual] that is related to the [WholeLifeIndividual] by a [TemporalWholePart] relation.\nEXAMPLE 1\tA plastic cup (bounded by its creation and destruction [Event]s) can be represented by an instance of [WholeLifeIndividual]. The cup whilst it stands on this table is a temporal part of this [WholeLifeIndividual].\nEXAMPLE 2\tThe universe for all time is a [WholeLifeIndividual].',
                               'icon': 'iso_individual',
                               'name': 'WholeLifeIndividual',
                               'roles': {},
                               'subtypes': [],
                               'supertypes': ['part2:PossibleIndividual'],
                               'uri': 'part2:WholeLifeIndividual'}}

disjoints = {
"ArithmeticNumber_dis1": set([
    "part2:IntegerNumber",
    "part2:RealNumber",
    "part2:MultidimensionalNumber",
]),
"ArrangementOfIndividual_dis1": set([
    "part2:AssemblyOfIndividual",
    "part2:FeatureWholePart",
]),
"ClassOfArrangedIndividual_dis1": set([
    "part2:ClassOfAtom",
    "part2:ClassOfMolecule",
    "part2:ClassOfFunctionalObject",
    "part2:ClassOfCompositeMaterial",
    "part2:ClassOfBiologicalMatter",
    "part2:ClassOfInformationPresentation",
    "part2:ClassOfSubAtomicParticle",
    "part2:ClassOfParticulateMaterial",
    "part2:CrystallineStructure",
    "part2:Phase",
    "part2:ClassOfCompound",
    "part2:ClassOfInformationRepresentation",
]),
"ClassOfArrangedIndividual_dis2": set([
    "part2:ClassOfInanimatePhysicalObject",
    "part2:ClassOfOrganism",
]),
"ClassOfArrangementOfIndividual_dis1": set([
    "part2:ClassOfAssemblyOfIndividual",
    "part2:ClassOfFeatureWholePart",
    "part2:Namespace",
]),
"ClassOfClassOfIndividual_dis1": set([
    "part2:ClassOfClassOfInformationRepresentation",
    "part2:ShapeDimension",
    "part2:ClassOfProperty",
    "part2:ClassOfStatus",
]),
"ClassOfClassOfInformationRepresentation_dis1": set([
    "part2:DocumentDefinition",
    "part2:RepresentationForm",
    "part2:Language",
]),
"ClassOfClassOfRelationship_dis1": set([
    "part2:ClassOfClassOfComposition",
    "part2:ClassOfClassOfResponsibilityForRepresentation",
    "part2:ClassOfClassOfRelationshipWithSignature",
    "part2:PropertySpaceForClassOfShapeDimension",
    "part2:ClassOfDimensionForShape",
    "part2:ClassOfClassOfRepresentationTranslation",
    "part2:ClassOfClassOfUsageOfRepresentation",
    "part2:DimensionOfShape",
    "part2:ClassOfClassOfRepresentation",
    "part2:ClassOfNamespace",
    "part2:ClassOfScale",
]),
"ClassOfClass_dis1": set([
    "part2:ArithmeticNumber",
    "part2:ClassOfShapeDimension",
    "part2:ClassOfClassOfIndividual",
    "part2:ClassOfPropertySpace",
    "part2:ClassOfNumber",
    "part2:ClassOfClassOfRelationship",
]),
"ClassOfCompositionOfIndividual_dis1": set([
    "part2:ClassOfArrangementOfIndividual",
    "part2:ClassOfTemporalWholePart",
    "part2:ClassOfParticipation",
]),
"ClassOfConnectionOfIndividual_dis1": set([
    "part2:ClassOfDirectConnection",
    "part2:ClassOfIndirectConnection",
]),
"ClassOfExpressInformationRepresentation_dis1": set([
    "part2:ExpressBinary",
    "part2:ExpressInteger",
    "part2:ExpressLogical",
    "part2:ExpressBoolean",
    "part2:ExpressReal",
    "part2:ExpressString",
]),
"ClassOfIndividual_dis1": set([
    "part2:ClassOfArrangedIndividual",
    "part2:ClassOfPeriodInTime",
    "part2:ClassOfEvent",
    "part2:Status",
    "part2:Property",
    "part2:IndividualDimension",
]),
"ClassOfInformationRepresentation_dis1": set([
    "part2:ClassOfExpressInformationRepresentation",
    "part2:RepresentationOfGregorianDateAndUtcTime",
]),
"ClassOfIsomorphicFunctionalMapping_dis1": set([
    "part2:ClassOfScaleConversion",
    "part2:Scale",
]),
"ClassOfNamespace_dis1": set([
    "part2:ClassOfLeftNamespace",
    "part2:ClassOfRightNamespace",
]),
"ClassOfNumber_dis1": set([
    "part2:EnumeratedNumberSet",
    "part2:NumberSpace",
]),
"ClassOfProperty_dis1": set([
    "part2:EnumeratedPropertySet",
    "part2:PropertySpace",
]),
"ClassOfRelationship_dis1": set([
    "part2:ClassOfApproval",
    "part2:ClassOfRepresentationOfThing",
    "part2:ClassOfIntendedRoleAndDomain",
    "part2:ClassOfIndividualUsedInConnection",
    "part2:ClassOfPossibleRoleAndDomain",
    "part2:PropertyForShapeDimension",
    "part2:ClassOfApprovalByStatus",
    "part2:ClassOfClassification",
    "part2:ClassOfInvolvementByReference",
    "part2:ClassOfRelationshipWithSignature",
    "part2:ClassOfResponsibilityForRepresentation",
    "part2:ClassOfCompositionOfIndividual",
    "part2:ClassOfTemporalSequence",
    "part2:ClassOfCauseOfEndingOfClassOfIndividual",
    "part2:ClassOfAssertion",
    "part2:ClassOfIndirectProperty",
    "part2:ClassOfFunctionalMapping",
    "part2:DimensionOfIndividual",
    "part2:ClassOfConnectionOfIndividual",
    "part2:ClassOfSpecialization",
    "part2:ClassOfRecognition",
    "part2:ClassOfCauseOfBeginningOfClassOfIndividual",
    "part2:ClassOfUsageOfRepresentation",
    "part2:ClassOfRelativeLocation",
    "part2:ClassOfRepresentationTranslation",
    "part2:ClassOfLifecycleStage",
]),
"ClassOfRelationship_dis2": set([
    "part2:ClassOfRelationshipWithRelatedEnd1",
    "part2:ClassOfRelationshipWithRelatedEnd2",
]),
"Class_dis1": set([
    "part2:ClassOfAbstractObject",
    "part2:ClassOfIndividual",
]),
"Class_dis2": set([
    "part2:Class",
    "part2:MultidimensionalObject",
    "part2:Relationship",
]),
"CompositionOfIndividual_dis1": set([
    "part2:ArrangementOfIndividual",
    "part2:TemporalBounding",
    "part2:Participation",
    "part2:TemporalWholePart",
]),
"ConnectionOfIndividual_dis1": set([
    "part2:DirectConnection",
    "part2:IndirectConnection",
]),
"Namespace_dis1": set([
    "part2:LeftNamespace",
    "part2:RightNamespace",
]),
"NumberSpace_dis1": set([
    "part2:NumberRange",
    "part2:MultidimensionalNumberSpace",
]),
"PropertySpace_dis1": set([
    "part2:MultidimensionalPropertySpace",
    "part2:MultidimensionalProperty",
    "part2:MultidimensionalNumber",
    "part2:MultidimensionalNumberSpace",
    "part2:MultidimensionalScale",
]),
"Relationship_dis1": set([
    "part2:Approval",
    "part2:RelativeLocation",
    "part2:FunctionalMapping",
    "part2:Classification",
    "part2:ResponsibilityForRepresentation",
    "part2:RepresentationOfThing",
    "part2:LifecycleStage",
    "part2:CauseOfEvent",
    "part2:Specialization",
    "part2:IndirectProperty",
    "part2:IntendedRoleAndDomain",
    "part2:Recognition",
    "part2:IndividualUsedInConnection",
    "part2:InvolvementByReference",
    "part2:ClassOfRelationshipWithSignature",
    "part2:PossibleRoleAndDomain",
    "part2:OtherRelationship",
    "part2:CompositionOfIndividual",
    "part2:ConnectionOfIndividual",
    "part2:UsageOfRepresentation",
    "part2:TemporalSequence",
    "part2:ComparisonOfProperty",
]),
"Specialization_dis1": set([
    "part2:BoundaryOfNumberSpace",
    "part2:SpecializationOfIndividualDimensionFromProperty",
    "part2:SpecializationByRole",
    "part2:SpecializationByDomain",
    "part2:BoundaryOfPropertySpace",
]),
"TemporalBounding_dis1": set([
    "part2:Beginning",
    "part2:Ending",
]),
"Thing_dis1": set([
    "part2:AbstractObject",
    "part2:PossibleIndividual",
])
}

entity_membership = [
    ("ClassOfAbstractObject", "AbstractObject"),
    ("ClassOfActivity", "Activity"),
    ("ClassOfApproval", "Approval"),
    ("ClassOfArrangementOfIndividual", "ArrangementOfIndividual"),
    ("ClassOfAssemblyOfIndividual", "AssemblyOfIndividual"),
    ("ClassOfClass", "Class"),
    ("ClassOfClassOfDefinition", "ClassOfDefinition"),
    ("ClassOfClassOfDescription", "ClassOfDescription"),
    ("ClassOfClassOfIdentification", "ClassOfIdentification"),
    ("ClassOfClassOfIndividual", "ClassOfIndividual"),
    ("ClassOfClassOfRelationship", "ClassOfRelationship"),
    ("ClassOfClassOfRelationshipWithSignature", "ClassOfRelationshipWithSignature"),
    ("ClassOfClassOfRepresentationTranslation", "ClassOfRepresentationTranslation"),
    ("ClassOfClassOfResponsibilityForRepresentation", "ClassOfResponsibilityForRepresentation"),
    ("ClassOfClassOfUsageOfRepresentation", "ClassOfUsageOfRepresentation"),
    ("ClassOfClassification", "Classification"),
    ("ClassOfCompositionOfIndividual", "CompositionOfIndividual"),
    ("ClassOfConnectionOfIndividual", "ConnectionOfIndividual"),
    ("ClassOfContainmentOfIndividual", "ContainmentOfIndividual"),
    ("ClassOfDirectConnection", "DirectConnection"),
    ("ClassOfEvent", "Event"),
    ("ClassOfFeatureWholePart", "FeatureWholePart"),
    ("ClassOfIndirectConnection", "IndirectConnection"),
    ("ClassOfIndividualUsedInConnection", "IndividualUsedInConnection"),
    ("ClassOfInvolvementByReference", "InvolvementByReference"),
    ("ClassOfLifecycleStage", "LifecycleStage"),
    ("ClassOfMultidimensionalObject", "MultidimensionalObject"),
    ("ClassOfPeriodInTime", "PeriodInTime"),
    ("ClassOfPointInTime", "PointInTime"),
    ("ClassOfProperty", "Property"),
    ("ClassOfPropertySpace", "PropertySpace"),
    ("ClassOfRelationship", "Relationship"),
    ("ClassOfRelativeLocation", "RelativeLocation"),
    ("ClassOfScale", "Scale"),
    ("ClassOfShape", "Shape"),
    ("ClassOfSpecialization", "Specialization"),
    ("ClassOfStatus", "Status"),
    ("ClassOfTemporalWholePart", "TemporalWholePart"),
    ("ClassOfClassOfRepresentation", "ClassOfRepresentationOfThing"),
    ("ClassOfIndividual", "PossibleIndividual"),
    ("ClassOfNumber", "ArithmeticNumber"),
    ("ClassOfClassOfComposition", "ClassOfCompositionOfIndividual"),
    ("ClassOfArrangedIndividual", "ArrangedIndividual"),
    ("ClassOfClassOfInformationRepresentation", "ClassOfInformationRepresentation"),
    ("ClassOfDefinition", "Definition"),
    ("ClassOfDescription", "Description"),
    ("ClassOfFunctionalMapping", "FunctionalMapping"),
    ("ClassOfIdentification", "Identification"),
    ("ClassOfIndirectProperty", "IndirectProperty"),
    ("ClassOfIntendedRoleAndDomain", "IntendedRoleAndDomain"),
    ("ClassOfLeftNamespace", "LeftNamespace"),
    ("ClassOfNamespace", "Namespace"),
    ("ClassOfParticipation", "Participation"),
    ("ClassOfPossibleRoleAndDomain", "PossibleRoleAndDomain"),
    ("ClassOfRecognition", "Recognition"),
    ("ClassOfRepresentationOfThing", "RepresentationOfThing"),
    ("ClassOfResponsibilityForRepresentation", "ResponsibilityForRepresentation"),
    ("ClassOfRightNamespace", "RightNamespace"),
    ("ClassOfShapeDimension", "ShapeDimension"),
    ("ClassOfTemporalSequence", "TemporalSequence"),
    ("ClassOfUsageOfRepresentation", "UsageOfRepresentation"),
    ("ClassOfRelationshipWithSignature", "OtherRelationship"),
    ("ShapeDimension", "IndividualDimension"),
    ("PropertySpace", "Property"),
    ("ClassOfOrganization", "PhysicalObject"),
    ("Class", "Thing"),
    ("EnumeratedSetOfClass", "Class"),
    ("Scale", "PropertyQuantification"),
    ("PropertyRange", "Property"),
    ("SinglePropertyDimension", "Property")
]

part2_object_properties = set()
part2_datatype_properties = set()

def p2_w_supertypes(item):
  result = set([item])
  def f(ti):
    for i in ti['supertypes']:
      result.add(i)
      f(part2_itself[i])
  f(part2_itself[item])
  return result

def p2_w_subtypes(item):
  result = set([item])
  def f(ti):
    for i in ti['subtypes']:
      result.add(i)
      f(part2_itself[i])
  f(part2_itself[item])
  return result

def p2_supertypes(item):
  result = set()
  def f(ti):
    for i in ti['supertypes']:
      result.add(i)
      f(part2_itself[i])
  f(part2_itself[item])
  return result

def p2_subtypes(item):
  result = set()
  def f(ti):
    for i in ti['subtypes']:
      result.add(i)
      f(part2_itself[i])
  f(part2_itself[item])
  return result

def _init():
    for m in entity_membership:
        classifier = 'part2:'+m[0]
        classified = 'part2:'+m[1]
        classifiers_hi = p2_w_supertypes(classifier)
        classifiers_lo = p2_subtypes(classifier)
        classified_items = p2_w_subtypes(classified)

        for i in classifiers_hi:
          part2_itself[i].setdefault('classified', set()).update(classified_items)
        for j in classified_items:
          part2_itself[j].setdefault('classifier', set()).update(classifiers_hi)

        for m in entity_membership:
          classifier = 'part2:'+m[0]
          classified = 'part2:'+m[1]
          if classifier in classifiers_lo and classified in classified_items:
            classified_items -= p2_w_subtypes(classified)

        for i in classifiers_lo:
          part2_itself[i].setdefault('classified', set()).update(classified_items)
        for j in classified_items:
          part2_itself[j].setdefault('classifier', set()).update(classifiers_lo)


    for qname, v in part2_itself.iteritems():
        disj = set()
        for i in disjoints.itervalues():
            if qname in i:
                disj |= i
        disj.discard(qname)

        for i in disj.copy():
          for s in p2_subtypes(i): 
            disj.add(s)

        if disj:
          for i in p2_w_subtypes(qname):
            part2_itself[i].setdefault('disjoints', set()).update(disj)

        for r in v['roles'].itervalues():
            name = r['name']
            type_uri = r['type_uri']

            if type_uri.startswith('xsd:'):
                part2_datatype_properties.add(name)
                r['is_literal'] = True
            else:
                part2_itself[type_uri].setdefault('role_in', set()).add((qname, name))
                part2_object_properties.add(name)
                r['is_literal'] = False
_init()

# def f(ti, icon):
#    ti['icon'] = icon
#    for i in ti['subtypes']:
#       f(part2_itself[i], icon)

# f(part2_itself['part2:ClassOfClass'], 'iso_classofclass')
# f(part2_itself['part2:ClassOfClassOfRelationship'], 'iso_co_classofrel')
# f(part2_itself['part2:MultidimensionalObject'], 'iso_individual')