View unanswered posts | View active topics It is currently Sat Oct 20, 2018 5:07 pm

 Page 1 of 1 [ 2 posts ]
 Print viewDownload as PDF | Previous topic | Next topic
Proto Templates
Author Message

Joined: Sun Jan 22, 2012 9:14 pm
Posts: 189
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.
Code:
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)) .

Thu Aug 30, 2012 7:43 am

Joined: Sun Jan 22, 2012 10:02 pm
Posts: 283
Some explanation <<<UPDATED!!!!>>>

Take the first one:

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

The logic symbol <-> means that both sides are equivalent: A <-> B is true just in case either both A and B' (not B) are false, or both A and B are true.

exists replaces the symbol because symbols like this sometimes cause presentation problems. ∃ z: P(z) means there is at least one z such that P(z) is true. (in Part 8 this is written as exists z(P(z))

Why is this? Because in "native" OWL there are no relationships that have their own identity, like Relationship in ISO 15926-2. In native OWL we only work with subclasses of rdf:Property: owl:ObjectProperty, owl:DatatypeProperty, and owl:AnnotationProperty. RDF Properties cannot be addressed, unless a trick, called "reification" is applied. However, RDF reification is not suitable (see http://en.wikipedia.org/wiki/Reification_%28computer_science%29).

A Prototemplate provides the means to "dissect" a Part 2 Relationship, that is "reified" from an OWL point of view, into parts that can, after conversion to OWL, be handled in native OWL without losing expressivity.

ApprovalTriple(x,y,z) is semantically the same as Part 2 Approval, one of the Part 2 subtypes of Relationship:

Code:
ENTITY approval
SUBTYPE OF (relationship);
approved : relationship;     [NOTE that the rdf:object of this rdf:Property is again a relationship!!]
approver : possible_individual;
END_ENTITY;

When it is being used in a FOL statement, it can be "expanded" into: Approval(x) & hasApproved(x,y) & hasApprover(x,z), so the Relationship x as a subtype of Part 2 Thing, and its two attributes as owl:ObjectProperty's with x as the rdf:subject.

Since a Relationship hasn't always to be addressed, there is also something in between: (here) ApprovalTemplate(y,z), that can be expanded via:
exists x(ApprovalTriple(x,y,z)) .

NOTE:
I changed the notation somewhat in order to make the link between both axioms a bit clearer; an expander has no problem with the prototemplates as they are

exists x(ApprovalTriple(x,y,z)) means: There is at least one x such that ApprovalTriple(x,y,z) is true. Then we go to the first axiom to find that ApprovalTriple(x,y,z) is equivalent with Approval(x) & hasApproved(x,y) & hasApprover(x,z) . (the dot at the end is mandatory).

When you click 'Online tools' and then 'Template specs list' you can see how this is being used in FOL (First-Order Logic) listing in each template specification. Example:

Code:
PropertyRangeOfClassOfIndividual(x1, x2, x3, x4, x5, x6, x7) <->
ClassOfIndividual(x1) &
ClassOfIndividual(x2) &
ClassOfProperty(x3) &
Property(x4) &
Property(x5) &
Cardinality(x7) &
end1Cardinality(x6, x7) &
[b]SpecializationTemplate(x2, x1)[/b] &
exists u(PropertyRange(u) &
[b]ClassOfClassificationTriple(x6, x2, u) &
SpecializationTemplate(u, x3) &
LowerBoundOfPropertyRangeTemplate(x4, u) &
UpperBoundOfPropertyRangeTemplate(x5, u))[/b] .

This describes the following graph:

that also can be found in the applicable template specification http://www.15926.org/templatespecs/CL-COPTY-04.xml

Putting this FOL listing in the Template Expander gives:
Code:
ClassOfIndividual(x1)
& ClassOfIndividual(x2)
& ClassOfProperty(x3)
& Property(x4)
& Property(x5)
& Cardinality(x7)
& end1Cardinality(x6, x7)
& exists z (Specialization(z) & hasSubclass(z, x2) & hasSuperclass(z, x1))
& exists u(PropertyRange(u)
& (ClassOfClassification(x6)
& hasClassOfClassified(x6, x2)
& hasClassOfClassifier(x6, u))
& exists z (Specialization(z) & hasSubclass(z, u) & hasSuperclass(z, x3))
& exists z
(  LowerBoundOfPropertyRange(z)
& hasClassified(z, x4)
& hasClassifier(z, u))
& exists z
(  UpperBoundOfPropertyRange(z)
& hasClassified(z, x5)
& hasClassifier(z, u)))

It can be seen that the two instances of SpecializationTemplate, the ClassOfClassificationTriple, the LowerBoundOfPropertyRange, and the UpperBoundOfPropertyRange have been expanded.

NOTE TO VICTOR: I have deleted the exchange between us that followed this posting, because it was about a mistake I made and that mistake I have corrected here. I hope you agree.

Thu Aug 30, 2012 8:58 am
Display posts from previous:  Sort by
 Page 1 of 1 [ 2 posts ]

Who is online

Users browsing this forum: No registered users and 1 guest

 You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot post attachments in this forum

Search for:
 Jump to:  Select a forum ------------------ Modelling, Methods and Technology    General discussions       Archive    DEXPI Data EXchange in Process Industry    Templates    Reference Data    ISO 15926 standard, the parts       Resolved stuff    Bugs, enhancements and suggestions    Geometry Discussion Forum       Generic Geometry Issues       P&ID Geometry       3D Geometry    Part 6    Part 12 Open forum    Hello, my name is...    About the 15926    Cantina
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.