From 555987a459702674da350fa1fd5f76ffe14cd7c0 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Sun, 9 Jun 2019 14:45:02 -0400 Subject: Simplify satellite metamodel further --- .../debug/run2/generated3valued.vql_deactivated | 3000 ++++++++++++++++++++ 1 file changed, 3000 insertions(+) create mode 100644 Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run2/generated3valued.vql_deactivated (limited to 'Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run2/generated3valued.vql_deactivated') diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run2/generated3valued.vql_deactivated b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run2/generated3valued.vql_deactivated new file mode 100644 index 00000000..c96a951c --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run2/generated3valued.vql_deactivated @@ -0,0 +1,3000 @@ +import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" +import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" +import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" + +////////// +// 0. Util +////////// +private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) { + PartialInterpretation.problem(interpretation,problem); +} + +///////////////////////// +// 0.1 Existence +///////////////////////// +private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + find interpretation(problem,interpretation); + LogicProblem.elements(problem,element); +} or { + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); +} + +private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + find mustExist(problem,interpretation,element); +} or { + find interpretation(problem,interpretation); + neg find elementCloseWorld(element); + PartialInterpretation.openWorldElements(interpretation,element); +} + +private pattern elementCloseWorld(element:DefinedElement) { + PartialInterpretation.openWorldElements(i,element); + PartialInterpretation.maxNewElements(i,0); +} or { + Scope.targetTypeInterpretation(scope,interpretation); + PartialTypeInterpratation.elements(interpretation,element); + Scope.maxNewElements(scope,0); +} + +//////////////////////// +// 0.2 Equivalence +//////////////////////// +pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) { + find mayExist(problem,interpretation,a); + find mayExist(problem,interpretation,b); + a == b; +} +pattern mustEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) { + find mustExist(problem,interpretation,a); + find mustExist(problem,interpretation,b); + a == b; +} + +//////////////////////// +// 0.3 Required Patterns by TypeIndexer +//////////////////////// +private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) { + find interpretation(problem,interpretation); + LogicProblem.types(problem,type); + PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); +} + +private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) { + find interpretation(problem,interpretation); + LogicProblem.types(problem,type); + TypeDefinition.elements(type,element); +} or { + find interpretation(problem,interpretation); + find typeInterpretation(problem,interpretation,type,typeInterpretation); + PartialComplexTypeInterpretation.elements(typeInterpretation,element); +} + +private pattern isPrimitive(element: PrimitiveElement) { + PrimitiveElement(element); +} + +////////// +// 1. Problem-Specific Base Indexers +////////// +// 1.1 Type Indexers +////////// +// 1.1.1 primitive Type Indexers +////////// + +////////// +// 1.1.2 domain-specific Type Indexers +////////// +/** + * An element must be an instance of type "ConstellationMission class". + */ +private pattern mustInstanceOfConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"ConstellationMission class"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"ConstellationMission class"); +} + +/** + * An element may be an instance of type "ConstellationMission class". + */ +private pattern mayInstanceOfConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element); + neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find scopeDisallowsNewConstellationMission_class(problem, interpretation); + neg find isPrimitive(element); +} or { + find interpretation(problem,interpretation); + PartialInterpretation.openWorldElements(interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element); + neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find scopeDisallowsNewConstellationMission_class(problem, interpretation); + neg find isPrimitive(element); +} or +{ find mustInstanceOfConstellationMission_class(problem,interpretation,element); } +/** + * An element must be an instance of type "InterferometryMission class". + */ +private pattern mustInstanceOfInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"InterferometryMission class"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"InterferometryMission class"); +} + +/** + * An element may be an instance of type "InterferometryMission class". + */ +private pattern mayInstanceOfInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find scopeDisallowsNewInterferometryMission_class(problem, interpretation); + neg find isPrimitive(element); +} or { + find interpretation(problem,interpretation); + PartialInterpretation.openWorldElements(interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find scopeDisallowsNewInterferometryMission_class(problem, interpretation); + neg find isPrimitive(element); +} or +{ find mustInstanceOfInterferometryMission_class(problem,interpretation,element); } +/** + * An element must be an instance of type "CommunicatingElement class". + */ +private pattern mustInstanceOfCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"CommunicatingElement class"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"CommunicatingElement class"); +} + +/** + * An element may be an instance of type "CommunicatingElement class". + */ +private pattern mayInstanceOfCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element); + neg find scopeDisallowsNewCommunicatingElement_class(problem, interpretation); + neg find isPrimitive(element); +} or { + find interpretation(problem,interpretation); + PartialInterpretation.openWorldElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element); + neg find scopeDisallowsNewCommunicatingElement_class(problem, interpretation); + neg find isPrimitive(element); +} or +{ find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); } +/** + * An element must be an instance of type "GroundStationNetwork class". + */ +private pattern mustInstanceOfGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"GroundStationNetwork class"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"GroundStationNetwork class"); +} + +/** + * An element may be an instance of type "GroundStationNetwork class". + */ +private pattern mayInstanceOfGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element); + neg find scopeDisallowsNewGroundStationNetwork_class(problem, interpretation); + neg find isPrimitive(element); +} or { + find interpretation(problem,interpretation); + PartialInterpretation.openWorldElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element); + neg find scopeDisallowsNewGroundStationNetwork_class(problem, interpretation); + neg find isPrimitive(element); +} or +{ find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); } +/** + * An element must be an instance of type "Spacecraft class". + */ +private pattern mustInstanceOfSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"Spacecraft class"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"Spacecraft class"); +} + +/** + * An element may be an instance of type "Spacecraft class". + */ +private pattern mayInstanceOfSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCubeSat_class(problem,interpretation,element); + neg find mustInstanceOfSmallSat_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find scopeDisallowsNewSpacecraft_class(problem, interpretation); + neg find isPrimitive(element); +} or { + find interpretation(problem,interpretation); + PartialInterpretation.openWorldElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCubeSat_class(problem,interpretation,element); + neg find mustInstanceOfSmallSat_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find scopeDisallowsNewSpacecraft_class(problem, interpretation); + neg find isPrimitive(element); +} or +{ find mustInstanceOfSpacecraft_class(problem,interpretation,element); } +/** + * An element must be an instance of type "CommSubsystem class". + */ +private pattern mustInstanceOfCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"CommSubsystem class"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"CommSubsystem class"); +} + +/** + * An element may be an instance of type "CommSubsystem class". + */ +private pattern mayInstanceOfCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element); + neg find scopeDisallowsNewCommSubsystem_class(problem, interpretation); + neg find isPrimitive(element); +} or { + find interpretation(problem,interpretation); + PartialInterpretation.openWorldElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element); + neg find scopeDisallowsNewCommSubsystem_class(problem, interpretation); + neg find isPrimitive(element); +} or +{ find mustInstanceOfCommSubsystem_class(problem,interpretation,element); } +/** + * An element must be an instance of type "Payload class". + */ +private pattern mustInstanceOfPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"Payload class"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewPayload_class(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"Payload class"); +} + +/** + * An element may be an instance of type "Payload class". + */ +private pattern mayInstanceOfPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find scopeDisallowsNewPayload_class(problem, interpretation); + neg find isPrimitive(element); +} or { + find interpretation(problem,interpretation); + PartialInterpretation.openWorldElements(interpretation,element); + neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find scopeDisallowsNewPayload_class(problem, interpretation); + neg find isPrimitive(element); +} or +{ find mustInstanceOfPayload_class(problem,interpretation,element); } +/** + * An element must be an instance of type "InterferometryPayload class". + */ +private pattern mustInstanceOfInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"InterferometryPayload class"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"InterferometryPayload class"); +} + +/** + * An element may be an instance of type "InterferometryPayload class". + */ +private pattern mayInstanceOfInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find scopeDisallowsNewInterferometryPayload_class(problem, interpretation); + neg find isPrimitive(element); +} or { + find interpretation(problem,interpretation); + PartialInterpretation.openWorldElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find scopeDisallowsNewInterferometryPayload_class(problem, interpretation); + neg find isPrimitive(element); +} or +{ find mustInstanceOfInterferometryPayload_class(problem,interpretation,element); } +/** + * An element must be an instance of type "CubeSat3U class". + */ +private pattern mustInstanceOfCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"CubeSat3U class"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"CubeSat3U class"); +} + +/** + * An element may be an instance of type "CubeSat3U class". + */ +private pattern mayInstanceOfCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element); + neg find mustInstanceOfSmallSat_class(problem,interpretation,element); + neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find scopeDisallowsNewCubeSat3U_class(problem, interpretation); + neg find isPrimitive(element); +} or { + find interpretation(problem,interpretation); + PartialInterpretation.openWorldElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element); + neg find mustInstanceOfSmallSat_class(problem,interpretation,element); + neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find scopeDisallowsNewCubeSat3U_class(problem, interpretation); + neg find isPrimitive(element); +} or +{ find mustInstanceOfCubeSat3U_class(problem,interpretation,element); } +/** + * An element must be an instance of type "CubeSat6U class". + */ +private pattern mustInstanceOfCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"CubeSat6U class"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"CubeSat6U class"); +} + +/** + * An element may be an instance of type "CubeSat6U class". + */ +private pattern mayInstanceOfCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfSmallSat_class(problem,interpretation,element); + neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find scopeDisallowsNewCubeSat6U_class(problem, interpretation); + neg find isPrimitive(element); +} or { + find interpretation(problem,interpretation); + PartialInterpretation.openWorldElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfSmallSat_class(problem,interpretation,element); + neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find scopeDisallowsNewCubeSat6U_class(problem, interpretation); + neg find isPrimitive(element); +} or +{ find mustInstanceOfCubeSat6U_class(problem,interpretation,element); } +/** + * An element must be an instance of type "SmallSat class". + */ +private pattern mustInstanceOfSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"SmallSat class"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"SmallSat class"); +} + +/** + * An element may be an instance of type "SmallSat class". + */ +private pattern mayInstanceOfSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCubeSat_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find scopeDisallowsNewSmallSat_class(problem, interpretation); + neg find isPrimitive(element); +} or { + find interpretation(problem,interpretation); + PartialInterpretation.openWorldElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCubeSat_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find scopeDisallowsNewSmallSat_class(problem, interpretation); + neg find isPrimitive(element); +} or +{ find mustInstanceOfSmallSat_class(problem,interpretation,element); } +/** + * An element must be an instance of type "CubeSat class". + */ +private pattern mustInstanceOfCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"CubeSat class"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"CubeSat class"); +} + +/** + * An element may be an instance of type "CubeSat class". + */ +private pattern mayInstanceOfCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element); + neg find mustInstanceOfSmallSat_class(problem,interpretation,element); + neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find scopeDisallowsNewCubeSat_class(problem, interpretation); + neg find isPrimitive(element); +} or { + find interpretation(problem,interpretation); + PartialInterpretation.openWorldElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element); + neg find mustInstanceOfSmallSat_class(problem,interpretation,element); + neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find scopeDisallowsNewCubeSat_class(problem, interpretation); + neg find isPrimitive(element); +} or +{ find mustInstanceOfCubeSat_class(problem,interpretation,element); } +/** + * An element must be an instance of type "UHFCommSubsystem class". + */ +private pattern mustInstanceOfUHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"UHFCommSubsystem class"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewUHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"UHFCommSubsystem class"); +} + +/** + * An element may be an instance of type "UHFCommSubsystem class". + */ +private pattern mayInstanceOfUHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element); + neg find scopeDisallowsNewUHFCommSubsystem_class(problem, interpretation); + neg find isPrimitive(element); +} or { + find interpretation(problem,interpretation); + PartialInterpretation.openWorldElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element); + neg find scopeDisallowsNewUHFCommSubsystem_class(problem, interpretation); + neg find isPrimitive(element); +} or +{ find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element); } +/** + * An element must be an instance of type "XCommSubsystem class". + */ +private pattern mustInstanceOfXCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"XCommSubsystem class"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewXCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"XCommSubsystem class"); +} + +/** + * An element may be an instance of type "XCommSubsystem class". + */ +private pattern mayInstanceOfXCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find scopeDisallowsNewXCommSubsystem_class(problem, interpretation); + neg find isPrimitive(element); +} or { + find interpretation(problem,interpretation); + PartialInterpretation.openWorldElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find scopeDisallowsNewXCommSubsystem_class(problem, interpretation); + neg find isPrimitive(element); +} or +{ find mustInstanceOfXCommSubsystem_class(problem,interpretation,element); } +/** + * An element must be an instance of type "KaCommSubsystem class". + */ +private pattern mustInstanceOfKaCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"KaCommSubsystem class"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewKaCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"KaCommSubsystem class"); +} + +/** + * An element may be an instance of type "KaCommSubsystem class". + */ +private pattern mayInstanceOfKaCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element); + neg find scopeDisallowsNewKaCommSubsystem_class(problem, interpretation); + neg find isPrimitive(element); +} or { + find interpretation(problem,interpretation); + PartialInterpretation.openWorldElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element); + neg find scopeDisallowsNewKaCommSubsystem_class(problem, interpretation); + neg find isPrimitive(element); +} or +{ find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element); } +/** + * An element must be an instance of type "ConstellationMission class DefinedPart". + */ +private pattern mustInstanceOfConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"ConstellationMission class DefinedPart"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"ConstellationMission class DefinedPart"); +} + +/** + * An element may be an instance of type "ConstellationMission class DefinedPart". + */ +private pattern mayInstanceOfConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ find mustInstanceOfConstellationMission_class_DefinedPart(problem,interpretation,element); } +/** + * An element must be an instance of type "ConstellationMission class UndefinedPart". + */ +private pattern mustInstanceOfConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"ConstellationMission class UndefinedPart"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"ConstellationMission class UndefinedPart"); +} + +/** + * An element may be an instance of type "ConstellationMission class UndefinedPart". + */ +private pattern mayInstanceOfConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find scopeDisallowsNewConstellationMission_class_UndefinedPart(problem, interpretation); + neg find isPrimitive(element); +} or { + find interpretation(problem,interpretation); + PartialInterpretation.openWorldElements(interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find scopeDisallowsNewConstellationMission_class_UndefinedPart(problem, interpretation); + neg find isPrimitive(element); +} or +{ find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element); } +/** + * An element must be an instance of type "InterferometryMission class DefinedPart". + */ +private pattern mustInstanceOfInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"InterferometryMission class DefinedPart"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"InterferometryMission class DefinedPart"); +} + +/** + * An element may be an instance of type "InterferometryMission class DefinedPart". + */ +private pattern mayInstanceOfInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ find mustInstanceOfInterferometryMission_class_DefinedPart(problem,interpretation,element); } +/** + * An element must be an instance of type "InterferometryMission class UndefinedPart". + */ +private pattern mustInstanceOfInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"InterferometryMission class UndefinedPart"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"InterferometryMission class UndefinedPart"); +} + +/** + * An element may be an instance of type "InterferometryMission class UndefinedPart". + */ +private pattern mayInstanceOfInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem, interpretation); + neg find isPrimitive(element); +} or { + find interpretation(problem,interpretation); + PartialInterpretation.openWorldElements(interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem, interpretation); + neg find isPrimitive(element); +} or +{ find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element); } +/** + * An element must be an instance of type "CommunicatingElement class DefinedPart". + */ +private pattern mustInstanceOfCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"CommunicatingElement class DefinedPart"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"CommunicatingElement class DefinedPart"); +} + +/** + * An element may be an instance of type "CommunicatingElement class DefinedPart". + */ +private pattern mayInstanceOfCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ find mustInstanceOfCommunicatingElement_class_DefinedPart(problem,interpretation,element); } +/** + * An element must be an instance of type "CommunicatingElement class UndefinedPart". + */ +private pattern mustInstanceOfCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"CommunicatingElement class UndefinedPart"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"CommunicatingElement class UndefinedPart"); +} + +/** + * An element may be an instance of type "CommunicatingElement class UndefinedPart". + */ +private pattern mayInstanceOfCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); + neg find mustInstanceOfSpacecraft_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem, interpretation); + neg find isPrimitive(element); +} or { + find interpretation(problem,interpretation); + PartialInterpretation.openWorldElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); + neg find mustInstanceOfSpacecraft_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem, interpretation); + neg find isPrimitive(element); +} or +{ find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element); } +/** + * An element must be an instance of type "GroundStationNetwork class DefinedPart". + */ +private pattern mustInstanceOfGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"GroundStationNetwork class DefinedPart"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"GroundStationNetwork class DefinedPart"); +} + +/** + * An element may be an instance of type "GroundStationNetwork class DefinedPart". + */ +private pattern mayInstanceOfGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ find mustInstanceOfGroundStationNetwork_class_DefinedPart(problem,interpretation,element); } +/** + * An element must be an instance of type "GroundStationNetwork class UndefinedPart". + */ +private pattern mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"GroundStationNetwork class UndefinedPart"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"GroundStationNetwork class UndefinedPart"); +} + +/** + * An element may be an instance of type "GroundStationNetwork class UndefinedPart". + */ +private pattern mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfSpacecraft_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem, interpretation); + neg find isPrimitive(element); +} or { + find interpretation(problem,interpretation); + PartialInterpretation.openWorldElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfSpacecraft_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem, interpretation); + neg find isPrimitive(element); +} or +{ find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element); } +/** + * An element must be an instance of type "CommSubsystem class DefinedPart". + */ +private pattern mustInstanceOfCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"CommSubsystem class DefinedPart"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"CommSubsystem class DefinedPart"); +} + +/** + * An element may be an instance of type "CommSubsystem class DefinedPart". + */ +private pattern mayInstanceOfCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ find mustInstanceOfCommSubsystem_class_DefinedPart(problem,interpretation,element); } +/** + * An element must be an instance of type "CommSubsystem class UndefinedPart". + */ +private pattern mustInstanceOfCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"CommSubsystem class UndefinedPart"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"CommSubsystem class UndefinedPart"); +} + +/** + * An element may be an instance of type "CommSubsystem class UndefinedPart". + */ +private pattern mayInstanceOfCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element); + neg find scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem, interpretation); + neg find isPrimitive(element); +} or { + find interpretation(problem,interpretation); + PartialInterpretation.openWorldElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element); + neg find scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem, interpretation); + neg find isPrimitive(element); +} or +{ find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element); } +/** + * An element must be an instance of type "XCommSubsystem class DefinedPart". + */ +private pattern mustInstanceOfXCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"XCommSubsystem class DefinedPart"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewXCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"XCommSubsystem class DefinedPart"); +} + +/** + * An element may be an instance of type "XCommSubsystem class DefinedPart". + */ +private pattern mayInstanceOfXCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ find mustInstanceOfXCommSubsystem_class_DefinedPart(problem,interpretation,element); } +/** + * An element must be an instance of type "XCommSubsystem class UndefinedPart". + */ +private pattern mustInstanceOfXCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"XCommSubsystem class UndefinedPart"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewXCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"XCommSubsystem class UndefinedPart"); +} + +/** + * An element may be an instance of type "XCommSubsystem class UndefinedPart". + */ +private pattern mayInstanceOfXCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find scopeDisallowsNewXCommSubsystem_class_UndefinedPart(problem, interpretation); + neg find isPrimitive(element); +} or { + find interpretation(problem,interpretation); + PartialInterpretation.openWorldElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find scopeDisallowsNewXCommSubsystem_class_UndefinedPart(problem, interpretation); + neg find isPrimitive(element); +} or +{ find mustInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,element); } +/** + * An element must be an instance of type "KaCommSubsystem class DefinedPart". + */ +private pattern mustInstanceOfKaCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"KaCommSubsystem class DefinedPart"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewKaCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"KaCommSubsystem class DefinedPart"); +} + +/** + * An element may be an instance of type "KaCommSubsystem class DefinedPart". + */ +private pattern mayInstanceOfKaCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ find mustInstanceOfKaCommSubsystem_class_DefinedPart(problem,interpretation,element); } +/** + * An element must be an instance of type "KaCommSubsystem class UndefinedPart". + */ +private pattern mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { + Type.name(type,"KaCommSubsystem class UndefinedPart"); + find directInstanceOf(problem,interpretation,element,type); +} +private pattern scopeDisallowsNewKaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { + find interpretation(problem,interpretation); + PartialInterpretation.scopes(interpretation,scope); + Scope.targetTypeInterpretation(scope,typeInterpretation); + Scope.maxNewElements(scope,0); + PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); + Type.name(type,"KaCommSubsystem class UndefinedPart"); +} + +/** + * An element may be an instance of type "KaCommSubsystem class UndefinedPart". + */ +private pattern mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element); + neg find scopeDisallowsNewKaCommSubsystem_class_UndefinedPart(problem, interpretation); + neg find isPrimitive(element); +} or { + find interpretation(problem,interpretation); + PartialInterpretation.openWorldElements(interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element); + neg find scopeDisallowsNewKaCommSubsystem_class_UndefinedPart(problem, interpretation); + neg find isPrimitive(element); +} or +{ find mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,element); } + +////////// +// 1.2 Relation Declaration Indexers +////////// +/** + * Matcher for detecting tuples t where []groundStationNetwork reference ConstellationMission(source,target) + */ +private pattern mustInRelationgroundStationNetwork_reference_ConstellationMission( + problem:LogicProblem, interpretation:PartialInterpretation, + source: DefinedElement, target:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); + PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"groundStationNetwork reference ConstellationMission"); + PartialRelationInterpretation.relationlinks(relationIterpretation,link); + BinaryElementRelationLink.param1(link,source); + BinaryElementRelationLink.param2(link,target); +} +/** + * Matcher for detecting tuples t where <>groundStationNetwork reference ConstellationMission(source,target) + */ +private pattern mayInRelationgroundStationNetwork_reference_ConstellationMission( + problem:LogicProblem, interpretation:PartialInterpretation, + source: DefinedElement, target:DefinedElement) +{ + find interpretation(problem,interpretation); + // The two endpoint of the link have to exist + find mayExist(problem, interpretation, source); + find mayExist(problem, interpretation, target); + // Type consistency + find mayInstanceOfConstellationMission_class(problem,interpretation,source); + find mayInstanceOfGroundStationNetwork_class(problem,interpretation,target); + // There are "numberOfExistingReferences" currently existing instances of the reference from the source, + // the upper bound of the multiplicity should be considered. + numberOfExistingReferences == count find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,_); + check(numberOfExistingReferences < 1); + // The reference is containment, then a new reference cannot be create if: + // 1. Multiple parents + neg find mustContains4(problem,interpretation,_,target); + // 2. Circle in the containment hierarchy + neg find mustTransitiveContains(source,target); +} or { + find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,target); +} +/** + * Matcher for detecting tuples t where []spacecraft reference ConstellationMission(source,target) + */ +private pattern mustInRelationspacecraft_reference_ConstellationMission( + problem:LogicProblem, interpretation:PartialInterpretation, + source: DefinedElement, target:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); + PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"spacecraft reference ConstellationMission"); + PartialRelationInterpretation.relationlinks(relationIterpretation,link); + BinaryElementRelationLink.param1(link,source); + BinaryElementRelationLink.param2(link,target); +} +/** + * Matcher for detecting tuples t where <>spacecraft reference ConstellationMission(source,target) + */ +private pattern mayInRelationspacecraft_reference_ConstellationMission( + problem:LogicProblem, interpretation:PartialInterpretation, + source: DefinedElement, target:DefinedElement) +{ + find interpretation(problem,interpretation); + // The two endpoint of the link have to exist + find mayExist(problem, interpretation, source); + find mayExist(problem, interpretation, target); + // Type consistency + find mayInstanceOfConstellationMission_class(problem,interpretation,source); + find mayInstanceOfSpacecraft_class(problem,interpretation,target); + // There are "numberOfExistingReferences" currently existing instances of the reference from the source, + // the upper bound of the multiplicity should be considered. + numberOfExistingReferences == count find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,_); + check(numberOfExistingReferences < 50); + // The reference is containment, then a new reference cannot be create if: + // 1. Multiple parents + neg find mustContains4(problem,interpretation,_,target); + // 2. Circle in the containment hierarchy + neg find mustTransitiveContains(source,target); +} or { + find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,target); +} +/** + * Matcher for detecting tuples t where []commSubsystem reference CommunicatingElement(source,target) + */ +private pattern mustInRelationcommSubsystem_reference_CommunicatingElement( + problem:LogicProblem, interpretation:PartialInterpretation, + source: DefinedElement, target:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); + PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"commSubsystem reference CommunicatingElement"); + PartialRelationInterpretation.relationlinks(relationIterpretation,link); + BinaryElementRelationLink.param1(link,source); + BinaryElementRelationLink.param2(link,target); +} +/** + * Matcher for detecting tuples t where <>commSubsystem reference CommunicatingElement(source,target) + */ +private pattern mayInRelationcommSubsystem_reference_CommunicatingElement( + problem:LogicProblem, interpretation:PartialInterpretation, + source: DefinedElement, target:DefinedElement) +{ + find interpretation(problem,interpretation); + // The two endpoint of the link have to exist + find mayExist(problem, interpretation, source); + find mayExist(problem, interpretation, target); + // Type consistency + find mayInstanceOfCommunicatingElement_class(problem,interpretation,source); + find mayInstanceOfCommSubsystem_class(problem,interpretation,target); + // There are "numberOfExistingReferences" currently existing instances of the reference from the source, + // the upper bound of the multiplicity should be considered. + numberOfExistingReferences == count find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,_); + check(numberOfExistingReferences < 2); + // The reference is containment, then a new reference cannot be create if: + // 1. Multiple parents + neg find mustContains4(problem,interpretation,_,target); + // 2. Circle in the containment hierarchy + neg find mustTransitiveContains(source,target); +} or { + find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,target); +} +/** + * Matcher for detecting tuples t where []payload reference Spacecraft(source,target) + */ +private pattern mustInRelationpayload_reference_Spacecraft( + problem:LogicProblem, interpretation:PartialInterpretation, + source: DefinedElement, target:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); + PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"payload reference Spacecraft"); + PartialRelationInterpretation.relationlinks(relationIterpretation,link); + BinaryElementRelationLink.param1(link,source); + BinaryElementRelationLink.param2(link,target); +} +/** + * Matcher for detecting tuples t where <>payload reference Spacecraft(source,target) + */ +private pattern mayInRelationpayload_reference_Spacecraft( + problem:LogicProblem, interpretation:PartialInterpretation, + source: DefinedElement, target:DefinedElement) +{ + find interpretation(problem,interpretation); + // The two endpoint of the link have to exist + find mayExist(problem, interpretation, source); + find mayExist(problem, interpretation, target); + // Type consistency + find mayInstanceOfSpacecraft_class(problem,interpretation,source); + find mayInstanceOfPayload_class(problem,interpretation,target); + // There are "numberOfExistingReferences" currently existing instances of the reference from the source, + // the upper bound of the multiplicity should be considered. + numberOfExistingReferences == count find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,_); + check(numberOfExistingReferences < 1); + // The reference is containment, then a new reference cannot be create if: + // 1. Multiple parents + neg find mustContains4(problem,interpretation,_,target); + // 2. Circle in the containment hierarchy + neg find mustTransitiveContains(source,target); +} or { + find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,target); +} +/** + * Matcher for detecting tuples t where []target reference CommSubsystem(source,target) + */ +private pattern mustInRelationtarget_reference_CommSubsystem( + problem:LogicProblem, interpretation:PartialInterpretation, + source: DefinedElement, target:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); + PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"target reference CommSubsystem"); + PartialRelationInterpretation.relationlinks(relationIterpretation,link); + BinaryElementRelationLink.param1(link,source); + BinaryElementRelationLink.param2(link,target); +} +/** + * Matcher for detecting tuples t where <>target reference CommSubsystem(source,target) + */ +private pattern mayInRelationtarget_reference_CommSubsystem( + problem:LogicProblem, interpretation:PartialInterpretation, + source: DefinedElement, target:DefinedElement) +{ + find interpretation(problem,interpretation); + // The two endpoint of the link have to exist + find mayExist(problem, interpretation, source); + find mayExist(problem, interpretation, target); + // Type consistency + find mayInstanceOfCommSubsystem_class(problem,interpretation,source); + find mayInstanceOfCommSubsystem_class(problem,interpretation,target); + // There are "numberOfExistingReferences" currently existing instances of the reference from the source, + // the upper bound of the multiplicity should be considered. + numberOfExistingReferences == count find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,source,_); + check(numberOfExistingReferences < 1); +} or { + find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,source,target); +} + +////////// +// 1.3 Relation Definition Indexers +////////// +// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries communicationLinkDoesNotStartAtContainingElement +private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Element) +{ + find interpretation(problem,interpretation); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element); + // Element is exported + find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm1); + find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm2); + neg find mayEquivalent(problem, interpretation, var_Comm1, var_Comm2); +} +private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Element) +{ + find interpretation(problem,interpretation); + find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element); + // Element is exported + find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm1); + find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm2); + neg find mustEquivalent(problem, interpretation, var_Comm1, var_Comm2); +} +private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Element) +{ + find interpretation(problem,interpretation); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element); + // Element is exported + find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm1); + find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm2); + neg find mustEquivalent(problem, interpretation, var_Comm1, var_Comm2); +} +// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries transmittingCommSubsystem +private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Element, var_Comm) +{ + find interpretation(problem,interpretation); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); + // Element is exported + // Comm is exported + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element); + find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); + find mustEquivalent(problem, interpretation, var_virtual0, var_Comm); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); + find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); + find mustEquivalent(problem, interpretation, var_virtual1, _var__0); +} +private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Element, var_Comm) +{ + find interpretation(problem,interpretation); + find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element); + find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); + // Element is exported + // Comm is exported + find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element); + find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0); + find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); + find mayEquivalent(problem, interpretation, var_virtual0, var_Comm); + find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); + find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); + find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); + find mayEquivalent(problem, interpretation, var_virtual1, _var__0); +} +private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Element, var_Comm) +{ + find interpretation(problem,interpretation); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); + // Element is exported + // Comm is exported + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element); + find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); + find mustEquivalent(problem, interpretation, var_virtual0, var_Comm); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm); + find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_Comm,var_virtual1); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); + find mustEquivalent(problem, interpretation, var_virtual1, _var__0); +} +// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries notEnoughInterferometryPayloads +private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Mission) +{ + find interpretation(problem,interpretation); + find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission); + // Mission is exported + find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission); + neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission); +} +private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Mission) +{ + find interpretation(problem,interpretation); + find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission); + // Mission is exported + find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission); + neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission); +} +private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Mission) +{ + find interpretation(problem,interpretation); + find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission); + // Mission is exported + find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission); + neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission); +} +// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries atLeastTwoInterferometryPayloads +private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Mission) +{ + find interpretation(problem,interpretation); + find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission); + // Mission is exported + find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1); + find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2); + neg find mayEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2); +} +private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Mission) +{ + find interpretation(problem,interpretation); + find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission); + // Mission is exported + find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1); + find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2); + neg find mustEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2); +} +private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Mission) +{ + find interpretation(problem,interpretation); + find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission); + // Mission is exported + find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1); + find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2); + neg find mustEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2); +} +// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries spacecraftWithInterferometryPayload +private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Mission, var_Spacecraft) +{ + find interpretation(problem,interpretation); + find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); + find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); + // Mission is exported + // Spacecraft is exported + find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); + find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0); + find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual0); + find mustEquivalent(problem, interpretation, var_virtual0, var_Spacecraft); + find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); + find mustInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1); + find mustInstanceOfPayload_class(problem,interpretation,var_virtual1); + find mustEquivalent(problem, interpretation, var_virtual1, var_Payload); + find mustInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload); +} +private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Mission, var_Spacecraft) +{ + find interpretation(problem,interpretation); + find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission); + find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); + // Mission is exported + // Spacecraft is exported + find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission); + find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0); + find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual0); + find mayEquivalent(problem, interpretation, var_virtual0, var_Spacecraft); + find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); + find mayInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1); + find mayInstanceOfPayload_class(problem,interpretation,var_virtual1); + find mayEquivalent(problem, interpretation, var_virtual1, var_Payload); + find mayInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload); +} +private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Mission, var_Spacecraft) +{ + find interpretation(problem,interpretation); + find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); + find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); + // Mission is exported + // Spacecraft is exported + find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); + find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0); + find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual0); + find mustEquivalent(problem, interpretation, var_virtual0, var_Spacecraft); + find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); + find mustInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1); + find mustInstanceOfPayload_class(problem,interpretation,var_virtual1); + find mustEquivalent(problem, interpretation, var_virtual1, var_Payload); + find mustInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload); +} +// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries noLinkToGroundStation +private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Spacecraft) +{ + find interpretation(problem,interpretation); + find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); + // Spacecraft is exported + find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); + find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0); + find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0); + find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation); + find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); + find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1); + find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1); + find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft); + neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation); +} +private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Spacecraft) +{ + find interpretation(problem,interpretation); + find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); + // Spacecraft is exported + find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission); + find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0); + find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0); + find mayEquivalent(problem, interpretation, var_virtual0, var_GroundStation); + find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission); + find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1); + find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual1); + find mayEquivalent(problem, interpretation, var_virtual1, var_Spacecraft); + neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation); +} +private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Spacecraft) +{ + find interpretation(problem,interpretation); + find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); + // Spacecraft is exported + find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); + find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0); + find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0); + find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation); + find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); + find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1); + find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1); + find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft); + neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation); +} +// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries noPotentialLinkToGroundStation +private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Spacecraft) +{ + find interpretation(problem,interpretation); + find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); + // Spacecraft is exported + find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); + find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0); + find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0); + find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation); + find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); + find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1); + find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1); + find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft); + neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation); +} +private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Spacecraft) +{ + find interpretation(problem,interpretation); + find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); + // Spacecraft is exported + find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission); + find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0); + find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0); + find mayEquivalent(problem, interpretation, var_virtual0, var_GroundStation); + find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission); + find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1); + find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual1); + find mayEquivalent(problem, interpretation, var_virtual1, var_Spacecraft); + neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation); +} +private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Spacecraft) +{ + find interpretation(problem,interpretation); + find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); + // Spacecraft is exported + find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); + find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0); + find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0); + find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation); + find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission); + find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1); + find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1); + find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft); + neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation); +} +// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries indirectLinkAllowed +private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed( + problem:LogicProblem, interpretation:PartialInterpretation, + var_From, var_To) +{ + find interpretation(problem,interpretation); + find mustInstanceOfSpacecraft_class(problem,interpretation,var_From); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To); + // From is exported + // To is exported + find twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To); +} +private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed( + problem:LogicProblem, interpretation:PartialInterpretation, + var_From, var_To) +{ + find interpretation(problem,interpretation); + find mayInstanceOfSpacecraft_class(problem,interpretation,var_From); + find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To); + // From is exported + // To is exported + find twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To); +} +private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed( + problem:LogicProblem, interpretation:PartialInterpretation, + var_From, var_To) +{ + find interpretation(problem,interpretation); + find mustInstanceOfSpacecraft_class(problem,interpretation,var_From); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To); + // From is exported + // To is exported + find twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To); +} +// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries linkAllowed +private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed( + problem:LogicProblem, interpretation:PartialInterpretation, + var_From, var_To) +{ + find interpretation(problem,interpretation); + find mustInstanceOfSpacecraft_class(problem,interpretation,var_From); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To); + // From is exported + // To is exported + find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To); + neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfSpacecraft_class(problem,interpretation,var_From); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To); + // From is exported + // To is exported + find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To); + find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfSpacecraft_class(problem,interpretation,var_From); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To); + // From is exported + // To is exported + find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To); + find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From); + find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_To); +} +private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed( + problem:LogicProblem, interpretation:PartialInterpretation, + var_From, var_To) +{ + find interpretation(problem,interpretation); + find mayInstanceOfSpacecraft_class(problem,interpretation,var_From); + find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To); + // From is exported + // To is exported + find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To); + neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From); +}or{ + find interpretation(problem,interpretation); + find mayInstanceOfSpacecraft_class(problem,interpretation,var_From); + find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To); + // From is exported + // To is exported + find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To); + find mayInstanceOfCubeSat3U_class(problem,interpretation,var_From); +}or{ + find interpretation(problem,interpretation); + find mayInstanceOfSpacecraft_class(problem,interpretation,var_From); + find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To); + // From is exported + // To is exported + find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To); + find mayInstanceOfCubeSat3U_class(problem,interpretation,var_From); + find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_To); +} +private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed( + problem:LogicProblem, interpretation:PartialInterpretation, + var_From, var_To) +{ + find interpretation(problem,interpretation); + find mustInstanceOfSpacecraft_class(problem,interpretation,var_From); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To); + // From is exported + // To is exported + find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To); + neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfSpacecraft_class(problem,interpretation,var_From); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To); + // From is exported + // To is exported + find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To); + find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfSpacecraft_class(problem,interpretation,var_From); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To); + // From is exported + // To is exported + find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To); + find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From); + find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_To); +} +private pattern twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) { + find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To); +} +private pattern twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) { + find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To); +} +private pattern twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) { + find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To); +} +// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries matchingAntenna +private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna( + problem:LogicProblem, interpretation:PartialInterpretation, + var_From, var_To) +{ + find interpretation(problem,interpretation); + find mustInstanceOfSpacecraft_class(problem,interpretation,var_From); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To); + // From is exported + // To is exported + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_From); + find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); + find mustEquivalent(problem, interpretation, var_virtual0, var_FromSys); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To); + find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual1); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); + find mustEquivalent(problem, interpretation, var_virtual1, var_ToSys); + find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_FromSys,var_ToSys); +} +private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna( + problem:LogicProblem, interpretation:PartialInterpretation, + var_From, var_To) +{ + find interpretation(problem,interpretation); + find mayInstanceOfSpacecraft_class(problem,interpretation,var_From); + find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To); + // From is exported + // To is exported + find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_From); + find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0); + find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); + find mayEquivalent(problem, interpretation, var_virtual0, var_FromSys); + find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To); + find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual1); + find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); + find mayEquivalent(problem, interpretation, var_virtual1, var_ToSys); + find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_FromSys,var_ToSys); +} +private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna( + problem:LogicProblem, interpretation:PartialInterpretation, + var_From, var_To) +{ + find interpretation(problem,interpretation); + find mustInstanceOfSpacecraft_class(problem,interpretation,var_From); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To); + // From is exported + // To is exported + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_From); + find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); + find mustEquivalent(problem, interpretation, var_virtual0, var_FromSys); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To); + find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual1); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); + find mustEquivalent(problem, interpretation, var_virtual1, var_ToSys); + find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_FromSys,var_ToSys); +} +// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries matchingCommSubsystem +private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem( + problem:LogicProblem, interpretation:PartialInterpretation, + var_From, var_To) +{ + find interpretation(problem,interpretation); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To); + // From is exported + // To is exported + find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_From); + find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_To); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To); + // From is exported + // To is exported + find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_From); + find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_To); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To); + // From is exported + // To is exported + find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_From); + find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_To); +} +private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem( + problem:LogicProblem, interpretation:PartialInterpretation, + var_From, var_To) +{ + find interpretation(problem,interpretation); + find mayInstanceOfCommSubsystem_class(problem,interpretation,var_From); + find mayInstanceOfCommSubsystem_class(problem,interpretation,var_To); + // From is exported + // To is exported + find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_From); + find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_To); +}or{ + find interpretation(problem,interpretation); + find mayInstanceOfCommSubsystem_class(problem,interpretation,var_From); + find mayInstanceOfCommSubsystem_class(problem,interpretation,var_To); + // From is exported + // To is exported + find mayInstanceOfXCommSubsystem_class(problem,interpretation,var_From); + find mayInstanceOfXCommSubsystem_class(problem,interpretation,var_To); +}or{ + find interpretation(problem,interpretation); + find mayInstanceOfCommSubsystem_class(problem,interpretation,var_From); + find mayInstanceOfCommSubsystem_class(problem,interpretation,var_To); + // From is exported + // To is exported + find mayInstanceOfKaCommSubsystem_class(problem,interpretation,var_From); + find mayInstanceOfKaCommSubsystem_class(problem,interpretation,var_To); +} +private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem( + problem:LogicProblem, interpretation:PartialInterpretation, + var_From, var_To) +{ + find interpretation(problem,interpretation); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To); + // From is exported + // To is exported + find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_From); + find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_To); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To); + // From is exported + // To is exported + find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_From); + find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_To); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To); + // From is exported + // To is exported + find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_From); + find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_To); +} +// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries cubeSat3U +private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Sat) +{ + find interpretation(problem,interpretation); + find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat); + // Sat is exported + find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat); +} +private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Sat) +{ + find interpretation(problem,interpretation); + find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat); + // Sat is exported + find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat); +} +private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Sat) +{ + find interpretation(problem,interpretation); + find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat); + // Sat is exported + find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat); +} +// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries cubeSat6U +private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat6U( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Sat) +{ + find interpretation(problem,interpretation); + find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat); + // Sat is exported + find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat); +} +private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat6U( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Sat) +{ + find interpretation(problem,interpretation); + find mayInstanceOfCubeSat6U_class(problem,interpretation,var_Sat); + // Sat is exported + find mayInstanceOfCubeSat6U_class(problem,interpretation,var_Sat); +} +private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat6U( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Sat) +{ + find interpretation(problem,interpretation); + find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat); + // Sat is exported + find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat); +} +// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries communicationLoop +private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Element) +{ + find interpretation(problem,interpretation); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element); + // Element is exported + find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element); +} +private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Element) +{ + find interpretation(problem,interpretation); + find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element); + // Element is exported + find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element); +} +private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Element) +{ + find interpretation(problem,interpretation); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element); + // Element is exported + find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element); +} +// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries indirectCommunicationLink +private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Source, var_Target) +{ + find interpretation(problem,interpretation); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); + // Source is exported + // Target is exported + find twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target); +} +private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Source, var_Target) +{ + find interpretation(problem,interpretation); + find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source); + find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); + // Source is exported + // Target is exported + find twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target); +} +private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Source, var_Target) +{ + find interpretation(problem,interpretation); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); + // Source is exported + // Target is exported + find twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target); +} +// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries directCommunicationLink +private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Source, var_Target) +{ + find interpretation(problem,interpretation); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); + // Source is exported + // Target is exported + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem); + find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); + find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source); + find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual1); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); + find mustEquivalent(problem, interpretation, var_virtual1, var_SourceSubsystem); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); + find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2); + find mustEquivalent(problem, interpretation, var_virtual2, var_TargetSubsystem); +} +private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Source, var_Target) +{ + find interpretation(problem,interpretation); + find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source); + find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); + // Source is exported + // Target is exported + find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem); + find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0); + find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); + find mayEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem); + find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source); + find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual1); + find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); + find mayEquivalent(problem, interpretation, var_virtual1, var_SourceSubsystem); + find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); + find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2); + find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2); + find mayEquivalent(problem, interpretation, var_virtual2, var_TargetSubsystem); +} +private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Source, var_Target) +{ + find interpretation(problem,interpretation); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); + // Source is exported + // Target is exported + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem); + find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); + find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source); + find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual1); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); + find mustEquivalent(problem, interpretation, var_virtual1, var_SourceSubsystem); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); + find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2); + find mustEquivalent(problem, interpretation, var_virtual2, var_TargetSubsystem); +} +private pattern twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) { + find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target); +} +private pattern twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) { + find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target); +} +private pattern twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) { + find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target); +} +// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetBand +private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand( + problem:LogicProblem, interpretation:PartialInterpretation, + var_SourceSubsystem) +{ + find interpretation(problem,interpretation); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem); + // SourceSubsystem is exported + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem); + find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); + find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem); + neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_SourceSubsystem,var_TargetSubsystem); +} +private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand( + problem:LogicProblem, interpretation:PartialInterpretation, + var_SourceSubsystem) +{ + find interpretation(problem,interpretation); + find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem); + // SourceSubsystem is exported + find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem); + find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0); + find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); + find mayEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem); + neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_SourceSubsystem,var_TargetSubsystem); +} +private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand( + problem:LogicProblem, interpretation:PartialInterpretation, + var_SourceSubsystem) +{ + find interpretation(problem,interpretation); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem); + // SourceSubsystem is exported + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem); + find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); + find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem); + neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_SourceSubsystem,var_TargetSubsystem); +} +// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries threeUCubeSatWithNonUhfCrossLink +private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Sat) +{ + find interpretation(problem,interpretation); + find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat); + // Sat is exported + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat); + find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); + find mustEquivalent(problem, interpretation, var_virtual0, var_SourceComm); + neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceComm); + find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceComm,var_virtual1); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); + find mustEquivalent(problem, interpretation, var_virtual1, var_TargetComm); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); + find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2); + find mustEquivalent(problem, interpretation, var_virtual2, var_TargetComm); + neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target); +} +private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Sat) +{ + find interpretation(problem,interpretation); + find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat); + // Sat is exported + find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat); + find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0); + find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); + find mayEquivalent(problem, interpretation, var_virtual0, var_SourceComm); + neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm); + find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceComm); + find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceComm,var_virtual1); + find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); + find mayEquivalent(problem, interpretation, var_virtual1, var_TargetComm); + find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); + find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2); + find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2); + find mayEquivalent(problem, interpretation, var_virtual2, var_TargetComm); + neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target); +} +private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Sat) +{ + find interpretation(problem,interpretation); + find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat); + // Sat is exported + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat); + find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); + find mustEquivalent(problem, interpretation, var_virtual0, var_SourceComm); + neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceComm); + find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceComm,var_virtual1); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1); + find mustEquivalent(problem, interpretation, var_virtual1, var_TargetComm); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target); + find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2); + find mustEquivalent(problem, interpretation, var_virtual2, var_TargetComm); + neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target); +} +// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemBandUhf +private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Comm) +{ + find interpretation(problem,interpretation); + find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm); + // Comm is exported + find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm); +} +private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Comm) +{ + find interpretation(problem,interpretation); + find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm); + // Comm is exported + find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm); +} +private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Comm) +{ + find interpretation(problem,interpretation); + find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm); + // Comm is exported + find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm); +} +// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries groundStationNetwork +private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Network) +{ + find interpretation(problem,interpretation); + find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network); + // Network is exported + find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network); +} +private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Network) +{ + find interpretation(problem,interpretation); + find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network); + // Network is exported + find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network); +} +private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Network) +{ + find interpretation(problem,interpretation); + find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network); + // Network is exported + find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network); +} +// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries cubeSatWithKaAntenna +private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Spacecraft) +{ + find interpretation(problem,interpretation); + find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); + // Spacecraft is exported + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft); + find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual0); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); + find mustEquivalent(problem, interpretation, var_virtual0, var_Comm); + find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_Comm); + neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft); +} +private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Spacecraft) +{ + find interpretation(problem,interpretation); + find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); + // Spacecraft is exported + find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft); + find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual0); + find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); + find mayEquivalent(problem, interpretation, var_virtual0, var_Comm); + find mayInstanceOfKaCommSubsystem_class(problem,interpretation,var_Comm); + neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft); +} +private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Spacecraft) +{ + find interpretation(problem,interpretation); + find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft); + // Spacecraft is exported + find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft); + find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual0); + find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0); + find mustEquivalent(problem, interpretation, var_virtual0, var_Comm); + find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_Comm); + neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft); +} +// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries smallSat +private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Sat) +{ + find interpretation(problem,interpretation); + find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat); + // Sat is exported + find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat); +} +private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Sat) +{ + find interpretation(problem,interpretation); + find mayInstanceOfSmallSat_class(problem,interpretation,var_Sat); + // Sat is exported + find mayInstanceOfSmallSat_class(problem,interpretation,var_Sat); +} +private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat( + problem:LogicProblem, interpretation:PartialInterpretation, + var_Sat) +{ + find interpretation(problem,interpretation); + find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat); + // Sat is exported + find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat); +} + +////////// +// 1.4 Containment Indexer +////////// +private pattern mustContains2(source: DefinedElement, target: DefinedElement) { + find mustContains4(_,_,source,target); +} + +private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation, + source: DefinedElement, target: DefinedElement) + { find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,target); }or + + { find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,target); }or + + { find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,target); }or + + { find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,target); } + +private pattern mustTransitiveContains(source,target) { + find mustContains2+(source,target); +} + +////////// +// 2. Invalidation Indexers +////////// +// 2.1 Invalidated by WF Queries +////////// +pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem:LogicProblem, interpretation:PartialInterpretation, + var_Element) +{ + find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem,interpretation,var_Element); +} +pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem:LogicProblem, interpretation:PartialInterpretation, + var_Mission) +{ + find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem,interpretation,var_Mission); +} +pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation, + var_Spacecraft) +{ + find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem,interpretation,var_Spacecraft); +} +pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation, + var_Spacecraft) +{ + find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem,interpretation,var_Spacecraft); +} +pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem:LogicProblem, interpretation:PartialInterpretation, + var_Element) +{ + find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem,interpretation,var_Element); +} +pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem:LogicProblem, interpretation:PartialInterpretation, + var_SourceSubsystem) +{ + find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem,interpretation,var_SourceSubsystem); +} +pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem:LogicProblem, interpretation:PartialInterpretation, + var_Sat) +{ + find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem,interpretation,var_Sat); +} +pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem:LogicProblem, interpretation:PartialInterpretation, + var_Spacecraft) +{ + find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem,interpretation,var_Spacecraft); +} + +////////// +// 3. Unfinishedness Indexers +////////// +// 3.1 Unfinishedness Measured by Multiplicity +////////// +pattern unfinishedLowerMultiplicity_groundStationNetwork_reference_ConstellationMission(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { + find interpretation(problem,interpretation); + PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); + PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"groundStationNetwork reference ConstellationMission"); + find mustInstanceOfConstellationMission_class(problem,interpretation,object); + numberOfExistingReferences == count find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,object,_); + check(numberOfExistingReferences < 1); + missingMultiplicity == eval(1-numberOfExistingReferences); +} +pattern unfinishedLowerMultiplicity_spacecraft_reference_ConstellationMission(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { + find interpretation(problem,interpretation); + PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); + PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"spacecraft reference ConstellationMission"); + find mustInstanceOfConstellationMission_class(problem,interpretation,object); + numberOfExistingReferences == count find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,object,_); + check(numberOfExistingReferences < 2); + missingMultiplicity == eval(2-numberOfExistingReferences); +} +pattern unfinishedLowerMultiplicity_commSubsystem_reference_CommunicatingElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { + find interpretation(problem,interpretation); + PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); + PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"commSubsystem reference CommunicatingElement"); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,object); + numberOfExistingReferences == count find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,object,_); + check(numberOfExistingReferences < 1); + missingMultiplicity == eval(1-numberOfExistingReferences); +} + +////////// +// 3.2 Unfinishedness Measured by WF Queries +////////// +pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem:LogicProblem, interpretation:PartialInterpretation, + var_Element) +{ + find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem,interpretation,var_Element); +} +pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem:LogicProblem, interpretation:PartialInterpretation, + var_Mission) +{ + find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem,interpretation,var_Mission); +} +pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation, + var_Spacecraft) +{ + find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem,interpretation,var_Spacecraft); +} +pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation, + var_Spacecraft) +{ + find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem,interpretation,var_Spacecraft); +} +pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem:LogicProblem, interpretation:PartialInterpretation, + var_Element) +{ + find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem,interpretation,var_Element); +} +pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem:LogicProblem, interpretation:PartialInterpretation, + var_SourceSubsystem) +{ + find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem,interpretation,var_SourceSubsystem); +} +pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem:LogicProblem, interpretation:PartialInterpretation, + var_Sat) +{ + find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem,interpretation,var_Sat); +} +pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem:LogicProblem, interpretation:PartialInterpretation, + var_Spacecraft) +{ + find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem,interpretation,var_Spacecraft); +} + +////////// +// 4. Refinement Indexers +////////// +// 4.1 Object constructors +////////// +private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) +{ + find interpretation(problem,interpretation); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfConstellationMission_class(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfInterferometryPayload_class(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfGroundStationNetwork_class(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfCommSubsystem_class(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfPayload_class(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfCubeSat6U_class(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfXCommSubsystem_class(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfCubeSat3U_class(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfKaCommSubsystem_class(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfSpacecraft_class(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfInterferometryMission_class(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfSmallSat_class(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfCubeSat_class(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfConstellationMission_class_DefinedPart(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfInterferometryMission_class_DefinedPart(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfCommunicatingElement_class_DefinedPart(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfGroundStationNetwork_class_DefinedPart(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfCommSubsystem_class_DefinedPart(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfXCommSubsystem_class_DefinedPart(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfKaCommSubsystem_class_DefinedPart(problem,interpretation,root); + find mustExist(problem, interpretation, root); +}or{ + find interpretation(problem,interpretation); + find mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,root); + find mustExist(problem, interpretation, root); +} +pattern createObject_InterferometryPayload_class_by_payload_reference_Spacecraft( + problem:LogicProblem, interpretation:PartialInterpretation, + relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, + container:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); + PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryPayload class"); + PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); + PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"payload reference Spacecraft"); + find mustInstanceOfSpacecraft_class(problem,interpretation,container); + find mayInstanceOfInterferometryPayload_class(problem,interpretation,newObject); + find mayInRelationpayload_reference_Spacecraft(problem,interpretation,container,newObject); + find mustExist(problem, interpretation, container); + neg find mustExist(problem, interpretation, newObject); +} +pattern createObject_InterferometryPayload_class( + problem:LogicProblem, interpretation:PartialInterpretation, + typeInterpretation:PartialComplexTypeInterpretation) +{ + find interpretation(problem,interpretation); + neg find hasElementInContainment(problem,interpretation); + PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); + PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryPayload class"); + find mayInstanceOfInterferometryPayload_class(problem,interpretation,newObject); + find mayExist(problem, interpretation, newObject); + neg find mustExist(problem, interpretation, newObject); +} +pattern createObject_CubeSat6U_class_by_spacecraft_reference_ConstellationMission( + problem:LogicProblem, interpretation:PartialInterpretation, + relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, + container:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); + PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat6U class"); + PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); + PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission"); + find mustInstanceOfConstellationMission_class(problem,interpretation,container); + find mayInstanceOfCubeSat6U_class(problem,interpretation,newObject); + find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject); + find mustExist(problem, interpretation, container); + neg find mustExist(problem, interpretation, newObject); +} +pattern createObject_CubeSat6U_class( + problem:LogicProblem, interpretation:PartialInterpretation, + typeInterpretation:PartialComplexTypeInterpretation) +{ + find interpretation(problem,interpretation); + neg find hasElementInContainment(problem,interpretation); + PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); + PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat6U class"); + find mayInstanceOfCubeSat6U_class(problem,interpretation,newObject); + find mayExist(problem, interpretation, newObject); + neg find mustExist(problem, interpretation, newObject); +} +pattern createObject_GroundStationNetwork_class_UndefinedPart_by_groundStationNetwork_reference_ConstellationMission( + problem:LogicProblem, interpretation:PartialInterpretation, + relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, + container:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); + PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"GroundStationNetwork class UndefinedPart"); + PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); + PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"groundStationNetwork reference ConstellationMission"); + find mustInstanceOfConstellationMission_class(problem,interpretation,container); + find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,newObject); + find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,container,newObject); + find mustExist(problem, interpretation, container); + neg find mustExist(problem, interpretation, newObject); +} +pattern createObject_GroundStationNetwork_class_UndefinedPart( + problem:LogicProblem, interpretation:PartialInterpretation, + typeInterpretation:PartialComplexTypeInterpretation) +{ + find interpretation(problem,interpretation); + neg find hasElementInContainment(problem,interpretation); + PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); + PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"GroundStationNetwork class UndefinedPart"); + find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,newObject); + find mayExist(problem, interpretation, newObject); + neg find mustExist(problem, interpretation, newObject); +} +pattern createObject_UHFCommSubsystem_class_by_commSubsystem_reference_CommunicatingElement( + problem:LogicProblem, interpretation:PartialInterpretation, + relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, + container:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); + PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"UHFCommSubsystem class"); + PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); + PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"commSubsystem reference CommunicatingElement"); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,container); + find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,newObject); + find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,container,newObject); + find mustExist(problem, interpretation, container); + neg find mustExist(problem, interpretation, newObject); +} +pattern createObject_UHFCommSubsystem_class( + problem:LogicProblem, interpretation:PartialInterpretation, + typeInterpretation:PartialComplexTypeInterpretation) +{ + find interpretation(problem,interpretation); + neg find hasElementInContainment(problem,interpretation); + PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); + PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"UHFCommSubsystem class"); + find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,newObject); + find mayExist(problem, interpretation, newObject); + neg find mustExist(problem, interpretation, newObject); +} +pattern createObject_SmallSat_class_by_spacecraft_reference_ConstellationMission( + problem:LogicProblem, interpretation:PartialInterpretation, + relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, + container:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); + PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"SmallSat class"); + PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); + PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission"); + find mustInstanceOfConstellationMission_class(problem,interpretation,container); + find mayInstanceOfSmallSat_class(problem,interpretation,newObject); + find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject); + find mustExist(problem, interpretation, container); + neg find mustExist(problem, interpretation, newObject); +} +pattern createObject_SmallSat_class( + problem:LogicProblem, interpretation:PartialInterpretation, + typeInterpretation:PartialComplexTypeInterpretation) +{ + find interpretation(problem,interpretation); + neg find hasElementInContainment(problem,interpretation); + PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); + PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"SmallSat class"); + find mayInstanceOfSmallSat_class(problem,interpretation,newObject); + find mayExist(problem, interpretation, newObject); + neg find mustExist(problem, interpretation, newObject); +} +pattern createObject_KaCommSubsystem_class_UndefinedPart_by_commSubsystem_reference_CommunicatingElement( + problem:LogicProblem, interpretation:PartialInterpretation, + relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, + container:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); + PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"KaCommSubsystem class UndefinedPart"); + PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); + PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"commSubsystem reference CommunicatingElement"); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,container); + find mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,newObject); + find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,container,newObject); + find mustExist(problem, interpretation, container); + neg find mustExist(problem, interpretation, newObject); +} +pattern createObject_KaCommSubsystem_class_UndefinedPart( + problem:LogicProblem, interpretation:PartialInterpretation, + typeInterpretation:PartialComplexTypeInterpretation) +{ + find interpretation(problem,interpretation); + neg find hasElementInContainment(problem,interpretation); + PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); + PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"KaCommSubsystem class UndefinedPart"); + find mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,newObject); + find mayExist(problem, interpretation, newObject); + neg find mustExist(problem, interpretation, newObject); +} +pattern createObject_CubeSat3U_class_by_spacecraft_reference_ConstellationMission( + problem:LogicProblem, interpretation:PartialInterpretation, + relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, + container:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); + PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat3U class"); + PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); + PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission"); + find mustInstanceOfConstellationMission_class(problem,interpretation,container); + find mayInstanceOfCubeSat3U_class(problem,interpretation,newObject); + find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject); + find mustExist(problem, interpretation, container); + neg find mustExist(problem, interpretation, newObject); +} +pattern createObject_CubeSat3U_class( + problem:LogicProblem, interpretation:PartialInterpretation, + typeInterpretation:PartialComplexTypeInterpretation) +{ + find interpretation(problem,interpretation); + neg find hasElementInContainment(problem,interpretation); + PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); + PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat3U class"); + find mayInstanceOfCubeSat3U_class(problem,interpretation,newObject); + find mayExist(problem, interpretation, newObject); + neg find mustExist(problem, interpretation, newObject); +} +pattern createObject_XCommSubsystem_class_UndefinedPart_by_commSubsystem_reference_CommunicatingElement( + problem:LogicProblem, interpretation:PartialInterpretation, + relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, + container:DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); + PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"XCommSubsystem class UndefinedPart"); + PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); + PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"commSubsystem reference CommunicatingElement"); + find mustInstanceOfCommunicatingElement_class(problem,interpretation,container); + find mayInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,newObject); + find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,container,newObject); + find mustExist(problem, interpretation, container); + neg find mustExist(problem, interpretation, newObject); +} +pattern createObject_XCommSubsystem_class_UndefinedPart( + problem:LogicProblem, interpretation:PartialInterpretation, + typeInterpretation:PartialComplexTypeInterpretation) +{ + find interpretation(problem,interpretation); + neg find hasElementInContainment(problem,interpretation); + PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); + PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"XCommSubsystem class UndefinedPart"); + find mayInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,newObject); + find mayExist(problem, interpretation, newObject); + neg find mustExist(problem, interpretation, newObject); +} +pattern createObject_InterferometryMission_class_UndefinedPart( + problem:LogicProblem, interpretation:PartialInterpretation, + typeInterpretation:PartialComplexTypeInterpretation) +{ + find interpretation(problem,interpretation); + neg find hasElementInContainment(problem,interpretation); + PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); + PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryMission class UndefinedPart"); + find mayInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,newObject); + find mayExist(problem, interpretation, newObject); + neg find mustExist(problem, interpretation, newObject); +} + +////////// +// 4.2 Type refinement +////////// +pattern refineTypeTo_InterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + find mayInstanceOfInterferometryPayload_class(problem,interpretation,element); + neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); +} +pattern refineTypeTo_CubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + find mayInstanceOfCubeSat6U_class(problem,interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element); + neg find mustInstanceOfSmallSat_class(problem,interpretation,element); + neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); +} +pattern refineTypeTo_GroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfSpacecraft_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); +} +pattern refineTypeTo_UHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element); +} +pattern refineTypeTo_SmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + find mayInstanceOfSmallSat_class(problem,interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfSmallSat_class(problem,interpretation,element); + neg find mustInstanceOfCubeSat_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); +} +pattern refineTypeTo_KaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + find mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); + neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element); +} +pattern refineTypeTo_CubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + find mayInstanceOfCubeSat3U_class(problem,interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element); + neg find mustInstanceOfSmallSat_class(problem,interpretation,element); + neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); +} +pattern refineTypeTo_XCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + find mayInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,element); + neg find mustInstanceOfConstellationMission_class(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); +} +pattern refineTypeTo_InterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { + find interpretation(problem,interpretation); + PartialInterpretation.newElements(interpretation,element); + find mayInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element); + neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); + neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element); + neg find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element); + neg find mustInstanceOfPayload_class(problem,interpretation,element); +} + +////////// +// 4.3 Relation refinement +////////// +pattern refineRelation_target_reference_CommSubsystem( + problem:LogicProblem, interpretation:PartialInterpretation, + relationIterpretation:PartialRelationInterpretation, + from: DefinedElement, to: DefinedElement) +{ + find interpretation(problem,interpretation); + PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); + PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"target reference CommSubsystem"); + find mustExist(problem, interpretation, from); + find mustExist(problem, interpretation, to); + find mustInstanceOfCommSubsystem_class(problem,interpretation,from); + find mustInstanceOfCommSubsystem_class(problem,interpretation,to); + find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,from,to); + neg find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,from,to); +} + -- cgit v1.2.3-70-g09d2