Proto templates

Proto-templates are a very basic form of templates. They provide a layer of abstraction immediately above the relational entity types of ISO 15926-2 by hiding the reified relationships of ISO 15926-2.

Each proto-template is constructed of two First Order Logic axioms. The first axiom provides a short form for the relational entity type. The proto-template predicate is called a proto-triple.

```ApprovalTriple(x,y,z) <-> Approval(x) & hasApproved(x,y) & hasApprover(x,z) .
ApprovalTemplate(x,y) <-> exists z(ApprovalTriple(z,x,y)) .

ArrangementOfIndividualTriple(x,y,z) <-> ArrangementOfIndividual(x) & hasPart(x,y) & hasWhole(x,z) .
ArrangementOfIndividualTemplate(x,y) <-> exists z(ArrangementOfIndividualTriple(z,x,y)) .

AssemblyOfIndividualTriple(x,y,z) <-> AssemblyOfIndividual(x) & hasPart(x,y) & hasWhole(x,z) .
AssemblyOfIndividualTemplate(x,y) <-> exists z(AssemblyOfIndividualTriple(z,x,y)) .

BeginningTriple(x,y,z) <-> Beginning(x) & hasPart(x,y) & hasWhole(x,z) .
BeginningTemplate(x,y) <-> exists z(BeginningTriple(z,x,y)) .

BoundaryOfNumberSpaceTriple(x,y,z) <-> BoundaryOfNumberSpace(x) & hasSubclass(x,y) & hasSuperclass(x,z) .
BoundaryOfNumberSpaceTemplate(x,y) <-> exists z(BoundaryOfNumberSpaceTriple(z,x,y)) .

BoundaryOfPropertySpaceTriple(x,y,z) <-> BoundaryOfPropertySpace(x) & hasSubclass(x,y) & hasSuperclass(x,z) .
BoundaryOfPropertySpaceTemplate(x,y) <-> exists z(BoundaryOfPropertySpaceTriple(z,x,y)) .

CauseOfEventTriple(x,y,z) <-> CauseOfEvent(x) & hasCaused(x,y) & hasCauser(x,z) .
CauseOfEventTemplate(x,y) <-> exists z(CauseOfEventTriple(z,x,y)) .

ClassificationTriple(x,y,z) <-> Classification(x) & hasClassified(x,y) & hasClassifier(x,z) .
ClassificationTemplate(x,y) <-> exists z(ClassificationTriple(z,x,y)) .

ClassOfApprovalTriple(x,y,z) <-> ClassOfApproval(x) & hasClassOfApproved(x,y) & hasClassOfApprover(x,z) .
ClassOfApprovalTemplate(x,y) <-> exists z(ClassOfApprovalTriple(z,x,y)) .

ClassOfArrangementOfIndividualTriple(x,y,z) <-> ClassOfArrangementOfIndividual(x) & hasClassOfPart(x,y) & hasClassOfWhole(x,z) .
ClassOfArrangementOfIndividualTemplate(x,y) <-> exists z(ClassOfArrangementOfIndividualTriple(z,x,y)) .

ClassOfAssemblyOfIndividualTriple(x,y,z) <-> ClassOfAssemblyOfIndividual(x) & hasClassOfPart(x,y) & hasClassOfWhole(x,z) .
ClassOfAssemblyOfIndividualTemplate(x,y) <-> exists z(ClassOfAssemblyOfIndividualTriple(z,x,y)) .

ClassOfCauseOfBeginningOfClassOfIndividualTriple(x,y,z) <-> ClassOfCauseOfBeginningOfClassOfIndividual(x) & hasClassOfBegun(x,y) & hasClassOfCauser(x,z) .
ClassOfCauseOfBeginningOfClassOfIndividualTemplate(x,y) <-> exists z(ClassOfCauseOfBeginningOfClassOfIndividualTriple(z,x,y)) .

ClassOfCauseOfEndingOfClassOfIndividualTriple(x,y,z) <-> ClassOfCauseOfEndingOfClassOfIndividual(x) & hasClassOfCauser(x,y) & hasClassOfEnded(x,z) .
ClassOfCauseOfEndingOfClassOfIndividualTemplate(x,y) <-> exists z(ClassOfCauseOfEndingOfClassOfIndividualTriple(z,x,y)) .

ClassOfClassificationTriple(x,y,z) <-> ClassOfClassification(x) & hasClassOfClassified(x,y) & hasClassOfClassifier(x,z) .
ClassOfClassificationTemplate(x,y) <-> exists z(ClassOfClassificationTriple(z,x,y)) .

ClassOfClassOfCompositionTriple(x,y,z) <-> ClassOfClassOfComposition(x) & hasClassOfClassOfPart(x,y) & hasClassOfClassOfWhole(x,z) .
ClassOfClassOfCompositionTemplate(x,y) <-> exists z(ClassOfClassOfCompositionTriple(z,x,y)) .

ClassOfClassOfDefinitionTriple(x,y,z) <-> ClassOfClassOfDefinition(x) & hasClassOfPattern(x,y) & hasClassOfRepresented(x,z) .
ClassOfClassOfDefinitionTemplate(x,y) <-> exists z(ClassOfClassOfDefinitionTriple(z,x,y)) .

ClassOfClassOfDescriptionTriple(x,y,z) <-> ClassOfClassOfDescription(x) & hasClassOfPattern(x,y) & hasClassOfRepresented(x,z) .
ClassOfClassOfDescriptionTemplate(x,y) <-> exists z(ClassOfClassOfDescriptionTriple(z,x,y)) .

ClassOfClassOfIdentificationTriple(x,y,z) <-> ClassOfClassOfIdentification(x) & hasClassOfPattern(x,y) & hasClassOfRepresented(x,z) .
ClassOfClassOfIdentificationTemplate(x,y) <-> exists z(ClassOfClassOfIdentificationTriple(z,x,y)) .

ClassOfClassOfRelationshipWithSignatureTriple(x,y,z) <-> ClassOfClassOfRelationshipWithSignature(x) & hasClassOfEnd1(x,y) & hasClassOfEnd2(x,z) .
ClassOfClassOfRelationshipWithSignatureTemplate(x,y) <-> exists z(ClassOfClassOfRelationshipWithSignatureTriple(z,x,y)) .

ClassOfClassOfRepresentationTriple(x,y,z) <-> ClassOfClassOfRepresentation(x) & hasClassOfPattern(x,y) & hasClassOfRepresented(x,z) .
ClassOfClassOfRepresentationTemplate(x,y) <-> exists z(ClassOfClassOfRepresentationTriple(z,x,y)) .

ClassOfClassOfRepresentationTranslationTriple(x,y,z) <-> ClassOfClassOfRepresentationTranslation(x) & hasClassOfFirst(x,y) & hasClassOfSecond(x,z) .
ClassOfClassOfRepresentationTranslationTemplate(x,y) <-> exists z(ClassOfClassOfRepresentationTranslationTriple(z,x,y)) .

ClassOfClassOfResponsibilityForRepresentationTriple(x,y,z) <-> ClassOfClassOfResponsibilityForRepresentation(x) & hasClassOfClassOfControlled(x,y) & hasController(x,z) .
ClassOfClassOfResponsibilityForRepresentationTemplate(x,y) <-> exists z(ClassOfClassOfResponsibilityForRepresentationTriple(z,x,y)) .

ClassOfClassOfUsageOfRepresentationTriple(x,y,z) <-> ClassOfClassOfUsageOfRepresentation(x) & hasClassOfClassOfUsed(x,y) & hasUser(x,z) .
ClassOfClassOfUsageOfRepresentationTemplate(x,y) <-> exists z(ClassOfClassOfUsageOfRepresentationTriple(z,x,y)) .

ClassOfCompositionOfIndividualTriple(x,y,z) <-> ClassOfCompositionOfIndividual(x) & hasClassOfPart(x,y) & hasClassOfWhole(x,z) .
ClassOfCompositionOfIndividualTemplate(x,y) <-> exists z(ClassOfCompositionOfIndividualTriple(z,x,y)) .

ClassOfConnectionOfIndividualTriple(x,y,z) <-> ClassOfConnectionOfIndividual(x) & hasClassOfSide1(x,y) & hasClassOfSide2(x,z) .
ClassOfConnectionOfIndividualTemplate(x,y) <-> exists z(ClassOfConnectionOfIndividualTriple(z,x,y)) .

ClassOfContainmentOfIndividualTriple(x,y,z) <-> ClassOfContainmentOfIndividual(x) & hasClassOfLocated(x,y) & hasClassOfLocator(x,z) .
ClassOfContainmentOfIndividualTemplate(x,y) <-> exists z(ClassOfContainmentOfIndividualTriple(z,x,y)) .

ClassOfDefinitionTriple(x,y,z) <-> ClassOfDefinition(x) & hasPattern(x,y) & hasRepresented(x,z) .
ClassOfDefinitionTemplate(x,y) <-> exists z(ClassOfDefinitionTriple(z,x,y)) .

ClassOfDescriptionTriple(x,y,z) <-> ClassOfDescription(x) & hasPattern(x,y) & hasRepresented(x,z) .
ClassOfDescriptionTemplate(x,y) <-> exists z(ClassOfDescriptionTriple(z,x,y)) .

ClassOfDimensionForShapeTriple(x,y,z) <-> ClassOfDimensionForShape(x) & hasClassOfDimension(x,y) & hasClassOfShape(x,z) .
ClassOfDimensionForShapeTemplate(x,y) <-> exists z(ClassOfDimensionForShapeTriple(z,x,y)) .

ClassOfDirectConnectionTriple(x,y,z) <-> ClassOfDirectConnection(x) & hasClassOfSide1(x,y) & hasClassOfSide2(x,z) .
ClassOfDirectConnectionTemplate(x,y) <-> exists z(ClassOfDirectConnectionTriple(z,x,y)) .

ClassOfFeatureWholePartTriple(x,y,z) <-> ClassOfFeatureWholePart(x) & hasClassOfPart(x,y) & hasClassOfWhole(x,z) .
ClassOfFeatureWholePartTemplate(x,y) <-> exists z(ClassOfFeatureWholePartTriple(z,x,y)) .

ClassOfFunctionalMappingTriple(x,y,z) <-> ClassOfFunctionalMapping(x) & hasCodomain(x,y) & hasDomain(x,z) .
ClassOfFunctionalMappingTemplate(x,y) <-> exists z(ClassOfFunctionalMappingTriple(z,x,y)) .

ClassOfIdentificationTriple(x,y,z) <-> ClassOfIdentification(x) & hasPattern(x,y) & hasRepresented(x,z) .
ClassOfIdentificationTemplate(x,y) <-> exists z(ClassOfIdentificationTriple(z,x,y)) .

ClassOfIndirectConnectionTriple(x,y,z) <-> ClassOfIndirectConnection(x) & hasClassOfSide1(x,y) & hasClassOfSide2(x,z) .
ClassOfIndirectConnectionTemplate(x,y) <-> exists z(ClassOfIndirectConnectionTriple(z,x,y)) .

ClassOfIndirectPropertyTriple(x,y,z) <-> ClassOfIndirectProperty(x) & hasClassOfPossessor(x,y) & hasPropertySpace(x,z) .
ClassOfIndirectPropertyTemplate(x,y) <-> exists z(ClassOfIndirectPropertyTriple(z,x,y)) .

ClassOfIndividualUsedInConnectionTriple(x,y,z) <-> ClassOfIndividualUsedInConnection(x) & hasClassOfConnection(x,y) & hasClassOfUsage(x,z) .
ClassOfIndividualUsedInConnectionTemplate(x,y) <-> exists z(ClassOfIndividualUsedInConnectionTriple(z,x,y)) .

ClassOfIntendedRoleAndDomainTriple(x,y,z) <-> ClassOfIntendedRoleAndDomain(x) & hasClassOfPlayer(x,y) & hasPlayed(x,z) .
ClassOfIntendedRoleAndDomainTemplate(x,y) <-> exists z(ClassOfIntendedRoleAndDomainTriple(z,x,y)) .

ClassOfInvolvementByReferenceTriple(x,y,z) <-> ClassOfInvolvementByReference(x) & hasClassOfInvolved(x,y) & hasClassOfInvolver(x,z) .
ClassOfInvolvementByReferenceTemplate(x,y) <-> exists z(ClassOfInvolvementByReferenceTriple(z,x,y)) .

ClassOfIsomorphicFunctionalMappingTriple(x,y,z) <-> ClassOfIsomorphicFunctionalMapping(x) & hasCodomain(x,y) & hasDomain(x,z) .
ClassOfIsomorphicFunctionalMappingTemplate(x,y) <-> exists z(ClassOfIsomorphicFunctionalMappingTriple(z,x,y)) .

ClassOfLeftNamespaceTriple(x,y,z) <-> ClassOfLeftNamespace(x) & hasClassOfClassOfWhole(x,y) & hasClassOfPart(x,z) .
ClassOfLeftNamespaceTemplate(x,y) <-> exists z(ClassOfLeftNamespaceTriple(z,x,y)) .

ClassOfNamespaceTriple(x,y,z) <-> ClassOfNamespace(x) & hasClassOfClassOfWhole(x,y) & hasClassOfPart(x,z) .
ClassOfNamespaceTemplate(x,y) <-> exists z(ClassOfNamespaceTriple(z,x,y)) .

ClassOfParticipationTriple(x,y,z) <-> ClassOfParticipation(x) & hasClassOfPart(x,y) & hasClassOfWhole(x,z) .
ClassOfParticipationTemplate(x,y) <-> exists z(ClassOfParticipationTriple(z,x,y)) .

ClassOfPossibleRoleAndDomainTriple(x,y,z) <-> ClassOfPossibleRoleAndDomain(x) & hasClassOfPlayer(x,y) & hasPlayed(x,z) .
ClassOfPossibleRoleAndDomainTemplate(x,y) <-> exists z(ClassOfPossibleRoleAndDomainTriple(z,x,y)) .

ClassOfRecognitionTriple(x,y,z) <-> ClassOfRecognition(x) & hasClassOfRecognized(x,y) & hasClassOfRecognizing(x,z) .
ClassOfRecognitionTemplate(x,y) <-> exists z(ClassOfRecognitionTriple(z,x,y)) .

ClassOfRelationshipTriple(x,y,z) <-> ClassOfRelationship(x) & hasEnd1Cardinality(x,y) & hasEnd2Cardinality(x,z) .
ClassOfRelationshipTemplate(x,y) <-> exists z(ClassOfRelationshipTriple(z,x,y)) .

ClassOfRelationshipWithSignatureTriple(x,y,z) <-> ClassOfRelationshipWithSignature(x) & hasClassOfEnd1(x,y) & hasClassOfEnd2(x,z) .
ClassOfRelationshipWithSignatureTemplate(x,y) <-> exists z(ClassOfRelationshipWithSignatureTriple(z,x,y)) .

ClassOfRelativeLocationTriple(x,y,z) <-> ClassOfRelativeLocation(x) & hasClassOfLocated(x,y) & hasClassOfLocator(x,z) .
ClassOfRelativeLocationTemplate(x,y) <-> exists z(ClassOfRelativeLocationTriple(z,x,y)) .

ClassOfRepresentationOfThingTriple(x,y,z) <-> ClassOfRepresentationOfThing(x) & hasPattern(x,y) & hasRepresented(x,z) .
ClassOfRepresentationOfThingTemplate(x,y) <-> exists z(ClassOfRepresentationOfThingTriple(z,x,y)) .

ClassOfRepresentationTranslationTriple(x,y,z) <-> ClassOfRepresentationTranslation(x) & hasClassOfFirst(x,y) & hasClassOfSecond(x,z) .
ClassOfRepresentationTranslationTemplate(x,y) <-> exists z(ClassOfRepresentationTranslationTriple(z,x,y)) .

ClassOfResponsibilityForRepresentationTriple(x,y,z) <-> ClassOfResponsibilityForRepresentation(x) & hasClassOfControlled(x,y) & hasController(x,z) .
ClassOfResponsibilityForRepresentationTemplate(x,y) <-> exists z(ClassOfResponsibilityForRepresentationTriple(z,x,y)) .

ClassOfRightNamespaceTriple(x,y,z) <-> ClassOfRightNamespace(x) & hasClassOfClassOfWhole(x,y) & hasClassOfPart(x,z) .
ClassOfRightNamespaceTemplate(x,y) <-> exists z(ClassOfRightNamespaceTriple(z,x,y)) .

ClassOfScaleConversionTriple(x,y,z) <-> ClassOfScaleConversion(x) & hasCodomain(x,y) & hasDomain(x,z) .
ClassOfScaleConversionTemplate(x,y) <-> exists z(ClassOfScaleConversionTriple(z,x,y)) .

ClassOfSpecializationTriple(x,y,z) <-> ClassOfSpecialization(x) & hasClassOfSubclass(x,y) & hasClassOfSuperclass(x,z) .
ClassOfSpecializationTemplate(x,y) <-> exists z(ClassOfSpecializationTriple(z,x,y)) .

ClassOfTemporalSequenceTriple(x,y,z) <-> ClassOfTemporalSequence(x) & hasClassOfPredecessor(x,y) & hasClassOfSuccessor(x,z) .
ClassOfTemporalSequenceTemplate(x,y) <-> exists z(ClassOfTemporalSequenceTriple(z,x,y)) .

ClassOfTemporalWholePartTriple(x,y,z) <-> ClassOfTemporalWholePart(x) & hasClassOfPart(x,y) & hasClassOfWhole(x,z) .
ClassOfTemporalWholePartTemplate(x,y) <-> exists z(ClassOfTemporalWholePartTriple(z,x,y)) .

ClassOfUsageOfRepresentationTriple(x,y,z) <-> ClassOfUsageOfRepresentation(x) & hasClassOfUsed(x,y) & hasUser(x,z) .
ClassOfUsageOfRepresentationTemplate(x,y) <-> exists z(ClassOfUsageOfRepresentationTriple(z,x,y)) .

ComparisonOfPropertyTriple(x,y,z) <-> ComparisonOfProperty(x) & hasGreaterElement(x,y) & hasLesserElement(x,z) .
ComparisonOfPropertyTemplate(x,y) <-> exists z(ComparisonOfPropertyTriple(z,x,y)) .

CompositionOfIndividualTriple(x,y,z) <-> CompositionOfIndividual(x) & hasPart(x,y) & hasWhole(x,z) .
CompositionOfIndividualTemplate(x,y) <-> exists z(CompositionOfIndividualTriple(z,x,y)) .

ConnectionOfIndividualTriple(x,y,z) <-> ConnectionOfIndividual(x) & hasSide1(x,y) & hasSide2(x,z) .
ConnectionOfIndividualTemplate(x,y) <-> exists z(ConnectionOfIndividualTriple(z,x,y)) .

ContainmentOfIndividualTriple(x,y,z) <-> ContainmentOfIndividual(x) & hasLocated(x,y) & hasLocator(x,z) .
ContainmentOfIndividualTemplate(x,y) <-> exists z(ContainmentOfIndividualTriple(z,x,y)) .

CoordinateSystemTriple(x,y,z) <-> CoordinateSystem(x) & hasCodomain(x,y) & hasDomain(x,z) .
CoordinateSystemTemplate(x,y) <-> exists z(CoordinateSystemTriple(z,x,y)) .

DefinitionTriple(x,y,z) <-> Definition(x) & hasRepresented(x,y) & hasSign(x,z) .
DefinitionTemplate(x,y) <-> exists z(DefinitionTriple(z,x,y)) .

DescriptionTriple(x,y,z) <-> Description(x) & hasRepresented(x,y) & hasSign(x,z) .
DescriptionTemplate(x,y) <-> exists z(DescriptionTriple(z,x,y)) .

DifferenceOfSetOfClassTriple(x,y,z) <-> DifferenceOfSetOfClass(x) & hasInput(x,y) & hasResult(x,z) .
DifferenceOfSetOfClassTemplate(x,y) <-> exists z(DifferenceOfSetOfClassTriple(z,x,y)) .

DimensionOfIndividualTriple(x,y,z) <-> DimensionOfIndividual(x) & hasIndividual(x,y) & hasIndividualDimension(x,z) .
DimensionOfIndividualTemplate(x,y) <-> exists z(DimensionOfIndividualTriple(z,x,y)) .

DimensionOfShapeTriple(x,y,z) <-> DimensionOfShape(x) & hasDimension(x,y) & hasShape(x,z) .
DimensionOfShapeTemplate(x,y) <-> exists z(DimensionOfShapeTriple(z,x,y)) .

DirectConnectionTriple(x,y,z) <-> DirectConnection(x) & hasSide1(x,y) & hasSide2(x,z) .
DirectConnectionTemplate(x,y) <-> exists z(DirectConnectionTriple(z,x,y)) .

EndingTriple(x,y,z) <-> Ending(x) & hasPart(x,y) & hasWhole(x,z) .
EndingTemplate(x,y) <-> exists z(EndingTriple(z,x,y)) .

FeatureWholePartTriple(x,y,z) <-> FeatureWholePart(x) & hasPart(x,y) & hasWhole(x,z) .
FeatureWholePartTemplate(x,y) <-> exists z(FeatureWholePartTriple(z,x,y)) .

FunctionalMappingTriple(x,y,z) <-> FunctionalMapping(x) & hasInput(x,y) & hasResult(x,z) .
FunctionalMappingTemplate(x,y) <-> exists z(FunctionalMappingTriple(z,x,y)) .

IdentificationTriple(x,y,z) <-> Identification(x) & hasRepresented(x,y) & hasSign(x,z) .
IdentificationTemplate(x,y) <-> exists z(IdentificationTriple(z,x,y)) .

IndirectConnectionTriple(x,y,z) <-> IndirectConnection(x) & hasSide1(x,y) & hasSide2(x,z) .
IndirectConnectionTemplate(x,y) <-> exists z(IndirectConnectionTriple(z,x,y)) .

IndirectPropertyTriple(x,y,z) <-> IndirectProperty(x) & hasPossessor(x,y) & hasProperty(x,z) .
IndirectPropertyTemplate(x,y) <-> exists z(IndirectPropertyTriple(z,x,y)) .

IndividualUsedInConnectionTriple(x,y,z) <-> IndividualUsedInConnection(x) & hasConnection(x,y) & hasUsage(x,z) .
IndividualUsedInConnectionTemplate(x,y) <-> exists z(IndividualUsedInConnectionTriple(z,x,y)) .

IntendedRoleAndDomainTriple(x,y,z) <-> IntendedRoleAndDomain(x) & hasPlayed(x,y) & hasPlayer(x,z) .
IntendedRoleAndDomainTemplate(x,y) <-> exists z(IntendedRoleAndDomainTriple(z,x,y)) .

IntersectionOfSetOfClassTriple(x,y,z) <-> IntersectionOfSetOfClass(x) & hasInput(x,y) & hasResult(x,z) .
IntersectionOfSetOfClassTemplate(x,y) <-> exists z(IntersectionOfSetOfClassTriple(z,x,y)) .

InvolvementByReferenceTriple(x,y,z) <-> InvolvementByReference(x) & hasInvolved(x,y) & hasInvolver(x,z) .
InvolvementByReferenceTemplate(x,y) <-> exists z(InvolvementByReferenceTriple(z,x,y)) .

LeftNamespaceTriple(x,y,z) <-> LeftNamespace(x) & hasClassOfPart(x,y) & hasClassOfWhole(x,z) .
LeftNamespaceTemplate(x,y) <-> exists z(LeftNamespaceTriple(z,x,y)) .

LifecycleStageTriple(x,y,z) <-> LifecycleStage(x) & hasInterest(x,y) & hasInterested(x,z) .
LifecycleStageTemplate(x,y) <-> exists z(LifecycleStageTriple(z,x,y)) .

LowerBoundOfNumberRangeTriple(x,y,z) <-> LowerBoundOfNumberRange(x) & hasClassified(x,y) & hasClassifier(x,z) .
LowerBoundOfNumberRangeTemplate(x,y) <-> exists z(LowerBoundOfNumberRangeTriple(z,x,y)) .

LowerBoundOfPropertyRangeTriple(x,y,z) <-> LowerBoundOfPropertyRange(x) & hasClassified(x,y) & hasClassifier(x,z) .
LowerBoundOfPropertyRangeTemplate(x,y) <-> exists z(LowerBoundOfPropertyRangeTriple(z,x,y)) .

MultidimensionalScaleTriple(x,y,z) <-> MultidimensionalScale(x) & hasCodomain(x,y) & hasDomain(x,z) .
MultidimensionalScaleTemplate(x,y) <-> exists z(MultidimensionalScaleTriple(z,x,y)) .

NamespaceTriple(x,y,z) <-> Namespace(x) & hasClassOfPart(x,y) & hasClassOfWhole(x,z) .
NamespaceTemplate(x,y) <-> exists z(NamespaceTriple(z,x,y)) .

OtherRelationshipTriple(x,y,z) <-> OtherRelationship(x) & hasEnd1(x,y) & hasEnd2(x,z) .
OtherRelationshipTemplate(x,y) <-> exists z(OtherRelationshipTriple(z,x,y)) .

ParticipationTriple(x,y,z) <-> Participation(x) & hasPart(x,y) & hasWhole(x,z) .
ParticipationTemplate(x,y) <-> exists z(ParticipationTriple(z,x,y)) .

PossibleRoleAndDomainTriple(x,y,z) <-> PossibleRoleAndDomain(x) & hasPlayed(x,y) & hasPlayer(x,z) .
PossibleRoleAndDomainTemplate(x,y) <-> exists z(PossibleRoleAndDomainTriple(z,x,y)) .

PropertyForShapeDimensionTriple(x,y,z) <-> PropertyForShapeDimension(x) & hasProperty(x,y) & hasShapeDimension(x,z) .
PropertyForShapeDimensionTemplate(x,y) <-> exists z(PropertyForShapeDimensionTriple(z,x,y)) .

PropertyQuantificationTriple(x,y,z) <-> PropertyQuantification(x) & hasInput(x,y) & hasResult(x,z) .
PropertyQuantificationTemplate(x,y) <-> exists z(PropertyQuantificationTriple(z,x,y)) .

PropertySpaceForClassOfShapeDimensionTriple(x,y,z) <-> PropertySpaceForClassOfShapeDimension(x) & hasClassOfShapeDimension(x,y) & hasPropertySpace(x,z) .
PropertySpaceForClassOfShapeDimensionTemplate(x,y) <-> exists z(PropertySpaceForClassOfShapeDimensionTriple(z,x,y)) .

RecognitionTriple(x,y,z) <-> Recognition(x) & hasRecognized(x,y) & hasRecognizing(x,z) .
RecognitionTemplate(x,y) <-> exists z(RecognitionTriple(z,x,y)) .

RelativeLocationTriple(x,y,z) <-> RelativeLocation(x) & hasLocated(x,y) & hasLocator(x,z) .
RelativeLocationTemplate(x,y) <-> exists z(RelativeLocationTriple(z,x,y)) .

RepresentationOfThingTriple(x,y,z) <-> RepresentationOfThing(x) & hasRepresented(x,y) & hasSign(x,z) .
RepresentationOfThingTemplate(x,y) <-> exists z(RepresentationOfThingTriple(z,x,y)) .

ResponsibilityForRepresentationTriple(x,y,z) <-> ResponsibilityForRepresentation(x) & hasControlled(x,y) & hasController(x,z) .
ResponsibilityForRepresentationTemplate(x,y) <-> exists z(ResponsibilityForRepresentationTriple(z,x,y)) .

RightNamespaceTriple(x,y,z) <-> RightNamespace(x) & hasClassOfPart(x,y) & hasClassOfWhole(x,z) .
RightNamespaceTemplate(x,y) <-> exists z(RightNamespaceTriple(z,x,y)) .

ScaleTriple(x,y,z) <-> Scale(x) & hasCodomain(x,y) & hasDomain(x,z) .
ScaleTemplate(x,y) <-> exists z(ScaleTriple(z,x,y)) .

SpecializationTriple(x,y,z) <-> Specialization(x) & hasSubclass(x,y) & hasSuperclass(x,z) .
SpecializationTemplate(x,y) <-> exists z(SpecializationTriple(z,x,y)) .

SpecializationByDomainTriple(x,y,z) <-> SpecializationByDomain(x) & hasSubclass(x,y) & hasSuperclass(x,z) .
SpecializationByDomainTemplate(x,y) <-> exists z(SpecializationByDomainTriple(z,x,y)) .

SpecializationByRoleTriple(x,y,z) <-> SpecializationByRole(x) & hasSubclass(x,y) & hasSuperclass(x,z) .
SpecializationByRoleTemplate(x,y) <-> exists z(SpecializationByRoleTriple(z,x,y)) .

SpecializationOfIndividualDimensionFromPropertyTriple(x,y,z) <-> SpecializationOfIndividualDimensionFromProperty(x) & hasSubclass(x,y) & hasSuperclass(x,z) .
SpecializationOfIndividualDimensionFromPropertyTemplate(x,y) <-> exists z(SpecializationOfIndividualDimensionFromPropertyTriple(z,x,y)) .

TemporalBoundingTriple(x,y,z) <-> TemporalBounding(x) & hasPart(x,y) & hasWhole(x,z) .
TemporalBoundingTemplate(x,y) <-> exists z(TemporalBoundingTriple(z,x,y)) .

TemporalSequenceTriple(x,y,z) <-> TemporalSequence(x) & hasPredecessor(x,y) & hasSuccessor(x,z) .
TemporalSequenceTemplate(x,y) <-> exists z(TemporalSequenceTriple(z,x,y)) .

TemporalWholePartTriple(x,y,z) <-> TemporalWholePart(x) & hasPart(x,y) & hasWhole(x,z) .
TemporalWholePartTemplate(x,y) <-> exists z(TemporalWholePartTriple(z,x,y)) .

UnionOfSetOfClassTriple(x,y,z) <-> UnionOfSetOfClass(x) & hasInput(x,y) & hasResult(x,z) .
UnionOfSetOfClassTemplate(x,y) <-> exists z(UnionOfSetOfClassTriple(z,x,y)) .

UpperBoundOfNumberRangeTriple(x,y,z) <-> UpperBoundOfNumberRange(x) & hasClassified(x,y) & hasClassifier(x,z) .
UpperBoundOfNumberRangeTemplate(x,y) <-> exists z(UpperBoundOfNumberRangeTriple(z,x,y)) .

UpperBoundOfPropertyRangeTriple(x,y,z) <-> UpperBoundOfPropertyRange(x) & hasClassified(x,y) & hasClassifier(x,z) .
UpperBoundOfPropertyRangeTemplate(x,y) <-> exists z(UpperBoundOfPropertyRangeTriple(z,x,y)) .

UsageOfRepresentationTriple(x,y,z) <-> UsageOfRepresentation(x) & hasUsed(x,y) & hasUser(x,z) .
UsageOfRepresentationTemplate(x,y) <-> exists z(UsageOfRepresentationTriple(z,x,y)) .

entityTriple(x,y,z) <-> (ApprovalTriple(x,y,z) | ArrangementOfIndividualTriple(x,y,z) | AssemblyOfIndividualTriple(x,y,z) | BeginningTriple(x,y,z) | BoundaryOfNumberSpaceTriple(x,y,z) | BoundaryOfPropertySpaceTriple(x,y,z) | CauseOfEventTriple(x,y,z) | ClassificationTriple(x,y,z) | ClassOfApprovalTriple(x,y,z) | ClassOfArrangementOfIndividualTriple(x,y,z) | ClassOfAssemblyOfIndividualTriple(x,y,z) | ClassOfCauseOfBeginningOfClassOfIndividualTriple(x,y,z) | ClassOfCauseOfEndingOfClassOfIndividualTriple(x,y,z) | ClassOfClassificationTriple(x,y,z) | ClassOfClassOfCompositionTriple(x,y,z) | ClassOfClassOfDefinitionTriple(x,y,z) | ClassOfClassOfDescriptionTriple(x,y,z) | ClassOfClassOfIdentificationTriple(x,y,z) | ClassOfClassOfRelationshipWithSignatureTriple(x,y,z) | ClassOfClassOfRepresentationTriple(x,y,z) | ClassOfClassOfRepresentationTranslationTriple(x,y,z) | ClassOfClassOfResponsibilityForRepresentationTriple(x,y,z) | ClassOfClassOfUsageOfRepresentationTriple(x,y,z) | ClassOfCompositionOfIndividualTriple(x,y,z) | ClassOfConnectionOfIndividualTriple(x,y,z) | ClassOfContainmentOfIndividualTriple(x,y,z) | ClassOfDefinitionTriple(x,y,z) | ClassOfDescriptionTriple(x,y,z) | ClassOfDimensionForShapeTriple(x,y,z) | ClassOfDirectConnectionTriple(x,y,z) | ClassOfFeatureWholePartTriple(x,y,z) | ClassOfFunctionalMappingTriple(x,y,z) | ClassOfIdentificationTriple(x,y,z) | ClassOfIndirectConnectionTriple(x,y,z) | ClassOfIndirectPropertyTriple(x,y,z) | ClassOfIndividualUsedInConnectionTriple(x,y,z) | ClassOfIntendedRoleAndDomainTriple(x,y,z) | ClassOfInvolvementByReferenceTriple(x,y,z) | ClassOfIsomorphicFunctionalMappingTriple(x,y,z) | ClassOfLeftNamespaceTriple(x,y,z) | ClassOfNamespaceTriple(x,y,z) | ClassOfParticipationTriple(x,y,z) | ClassOfPossibleRoleAndDomainTriple(x,y,z) | ClassOfRecognitionTriple(x,y,z) | ClassOfRelationshipTriple(x,y,z) | ClassOfRelationshipWithSignatureTriple(x,y,z) | ClassOfRelativeLocationTriple(x,y,z) | ClassOfRepresentationOfThingTriple(x,y,z) | ClassOfRepresentationTranslationTriple(x,y,z) | ClassOfResponsibilityForRepresentationTriple(x,y,z) | ClassOfRightNamespaceTriple(x,y,z) | ClassOfScaleConversionTriple(x,y,z) | ClassOfSpecializationTriple(x,y,z) | ClassOfTemporalSequenceTriple(x,y,z) | ClassOfTemporalWholePartTriple(x,y,z) | ClassOfUsageOfRepresentationTriple(x,y,z) | ComparisonOfPropertyTriple(x,y,z) | CompositionOfIndividualTriple(x,y,z) | ConnectionOfIndividualTriple(x,y,z) | ContainmentOfIndividualTriple(x,y,z) | CoordinateSystemTriple(x,y,z) | DefinitionTriple(x,y,z) | DescriptionTriple(x,y,z) | DifferenceOfSetOfClassTriple(x,y,z) | DimensionOfIndividualTriple(x,y,z) | DimensionOfShapeTriple(x,y,z) | DirectConnectionTriple(x,y,z) | EndingTriple(x,y,z) | FeatureWholePartTriple(x,y,z) | FunctionalMappingTriple(x,y,z) | IdentificationTriple(x,y,z) | IndirectConnectionTriple(x,y,z) | IndirectPropertyTriple(x,y,z) | IndividualUsedInConnectionTriple(x,y,z) | IntendedRoleAndDomainTriple(x,y,z) | IntersectionOfSetOfClassTriple(x,y,z) | InvolvementByReferenceTriple(x,y,z) | LeftNamespaceTriple(x,y,z) | LifecycleStageTriple(x,y,z) | LowerBoundOfNumberRangeTriple(x,y,z) | LowerBoundOfPropertyRangeTriple(x,y,z) | MultidimensionalScaleTriple(x,y,z) | NamespaceTriple(x,y,z) | OtherRelationshipTriple(x,y,z) | ParticipationTriple(x,y,z) | PossibleRoleAndDomainTriple(x,y,z) | PropertyForShapeDimensionTriple(x,y,z) | PropertyQuantificationTriple(x,y,z) | PropertySpaceForClassOfShapeDimensionTriple(x,y,z) | RecognitionTriple(x,y,z) | RelativeLocationTriple(x,y,z) | RepresentationOfThingTriple(x,y,z) | ResponsibilityForRepresentationTriple(x,y,z) | RightNamespaceTriple(x,y,z) | ScaleTriple(x,y,z) | SpecializationTriple(x,y,z) | SpecializationByDomainTriple(x,y,z) | SpecializationByRoleTriple(x,y,z) | SpecializationOfIndividualDimensionFromPropertyTriple(x,y,z) | TemporalBoundingTriple(x,y,z) | TemporalSequenceTriple(x,y,z) | TemporalWholePartTriple(x,y,z) | UnionOfSetOfClassTriple(x,y,z) | UpperBoundOfNumberRangeTriple(x,y,z) | UpperBoundOfPropertyRangeTriple(x,y,z) | UsageOfRepresentationTriple(x,y,z)) .
```