aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kris7topher@gmail.com>2019-08-01 18:38:15 +0200
committerLibravatar Kristóf Marussy <kris7topher@gmail.com>2019-08-01 18:38:15 +0200
commit6eb760ee960cd3efe51ca6e4107153c09838a1da (patch)
tree2edd0e21be50265f65f0cfd2fd43f18a252aef02
parentDump required Xbase version down to 2.17 (diff)
downloadVIATRA-Generator-6eb760ee960cd3efe51ca6e4107153c09838a1da.tar.gz
VIATRA-Generator-6eb760ee960cd3efe51ca6e4107153c09838a1da.tar.zst
VIATRA-Generator-6eb760ee960cd3efe51ca6e4107153c09838a1da.zip
Clean up CPS and Satellite domains
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/.gitignore1
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CbcCpsMain.xtendbinbin7229 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CpsToLpTranslator.xtendbinbin11104 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.gitignore6
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/CbcCpsMain.java109
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/CpsToLpTranslator.java505
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.CpsStateCoder.xtendbinbin7626 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.RuleBasedCpsMain.xtendbinbin5193 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.RuleBasedCpsSolver.xtendbinbin7336 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.gitignore9
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/CpsStateCoder.java316
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/RuleBasedCpsMain.java46
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/RuleBasedCpsSolver.java93
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/.CpsGenerator.xtendbinbin9849 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/.gitignore3
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/CpsGenerator.java177
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.CpsMdeOptimiserMain.xtendbinbin6069 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.NonRedundantAllocationsConstraint.xtendbinbin3332 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.NotAllocatedAppInstancesConstraint.xtendbinbin3440 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.NotSatisfiedRequirementsConstraint.xtendbinbin3412 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.ResourceUtilizationUtil.xtendbinbin3546 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.TooLowAverageHddConstraint.xtendbinbin3790 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.TooLowAverageMemoryConstraint.xtendbinbin3797 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.TotalCostFitnessFunction.xtendbinbin2975 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.UnavailableHddConstraint.xtendbinbin3131 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.UnavailableMemoryConstraint.xtendbinbin3130 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.gitignore15
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.java82
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NonRedundantAllocationsConstraint.java54
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotAllocatedAppInstancesConstraint.java47
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotSatisfiedRequirementsConstraint.java55
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ResourceUtilizationUtil.java67
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TooLowAverageHddConstraint.java59
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TooLowAverageMemoryConstraint.java59
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TotalCostFitnessFunction.java44
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableHddConstraint.java45
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableMemoryConstraint.java45
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.gitignore4
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/META-INF/MANIFEST.MF3
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CommSubsystem.java20
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SatellitePackage.java57
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CommSubsystemImpl.java116
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SatellitePackageImpl.java20
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/batch-0/batch-0-data-steps.csv145
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/batch-0/batch-0-outcome.txt20
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/batch-0/batch-0-serialized-objectives.pf1
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/batch-0/mutation-operators/satellite.ecore68
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/batch-0796A23B6.xmi13
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/experiment-data.csv2
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/satellite.mopt35
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshinoverall-results.txt27
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore5
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.genmodel1
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/generation.logicproblem1449
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run1/generated3valued.vql_deactivated3000
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run1/init.partialmodel147
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run2/generated3valued.vql_deactivated3000
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run2/init.partialmodel147
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run3/generated3valued.vql_deactivated3000
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run3/init.partialmodel147
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run4/generated3valued.vql_deactivated3000
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run4/init.partialmodel147
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run5/generated3valued.vql_deactivated3000
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run5/init.partialmodel147
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/log.txt1
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run1/1_1.gml2452
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run1/1_1.pngbin552885 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run1/1_1.xmi47
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run2/2_1.gml2451
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run2/2_1.pngbin546742 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run2/2_1.xmi47
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run3/3_1.gml2451
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run3/3_1.pngbin570634 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run3/3_1.xmi47
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run4/4_1.gml2452
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run4/4_1.pngbin662713 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run4/4_1.xmi47
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/plugin.xml1
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.CommunicationLinkOfElement.java._tracebin5550 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.MultipleCommunicationLinks.java._tracebin3530 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.gitignore43
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CommunicationLinkDoesNotStartAtContainingElement.java562
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CommunicationLoop.java557
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CubeSatWithKaAntenna.java570
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/IncompatibleSourceAndTargetBand.java566
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NoLinkToGroundStation.java575
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NoPotentialLinkToGroundStation.java571
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NotEnoughInterferometryPayloads.java559
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.java141
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SmallSat.java533
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/ThreeUCubeSatWithNonUhfCrossLink.java591
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/.CubeSat6U.java._tracebin718 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/.MatchingCommSubsystem.java._tracebin755 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/.gitignore70
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/AtLeastTwoInterferometryPayloads.java138
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CommSubsystemBandUhf.java127
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CubeSat3U.java127
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CubeSat6U.java127
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/DirectCommunicationLink.java154
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/GroundStationNetwork.java127
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/IndirectCommunicationLink.java134
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/IndirectLinkAllowed.java134
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/LinkAllowed.java180
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MatchingAntenna.java152
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MatchingCommSubsystem.java173
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SatelliteQueriesAll.java105
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftWithInterferometryPayload.java149
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/TransmittingCommSubsystem.java146
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql8
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/SatelliteGeneratorMain.xtend4
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.gitignore3
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/.CostObjective.xtendbinbin805 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/.LocalSearchEngineManager.xtendbinbin4261 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/.MetricBasedGuidanceFunction.xtendbinbin5142 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/.PatternMatchConstraint.xtendbinbin5091 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/.SatelliteMdeOptimiserMain.xtendbinbin5312 -> 0 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/.gitignore10
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/LocalSearchEngineManager.java39
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/MetricBasedGuidanceFunction.java72
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/PatternMatchConstraint.java54
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/SatelliteMdeOptimiserMain.java69
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/.gitignore3
122 files changed, 227 insertions, 36900 deletions
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/.gitignore b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/.gitignore
index a71b16b9..2affc42f 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/.gitignore
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/.gitignore
@@ -1,4 +1,5 @@
1/bin/ 1/bin/
2/xtend-gen/
2/problem.lp 3/problem.lp
3/solution.txt 4/solution.txt
4/model/cps_fixup.henshin 5/model/cps_fixup.henshin
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CbcCpsMain.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CbcCpsMain.xtendbin
deleted file mode 100644
index 14b2c080..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CbcCpsMain.xtendbin
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CpsToLpTranslator.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CpsToLpTranslator.xtendbin
deleted file mode 100644
index 9acd8621..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CpsToLpTranslator.xtendbin
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.gitignore b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.gitignore
deleted file mode 100644
index 011600b4..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
1/.CpsToLpTranslator.java._trace
2/.CbcCpsMain.java._trace
3/.CbcCpsMain.xtendbin
4/.CpsToLpTranslator.xtendbin
5/CbcCpsMain.java
6/CpsToLpTranslator.java
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/CbcCpsMain.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/CbcCpsMain.java
deleted file mode 100644
index a6ff0d0e..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/CbcCpsMain.java
+++ /dev/null
@@ -1,109 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.cplex;
2
3import hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage;
4import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
5import hu.bme.mit.inf.dslreasoner.domains.cps.Request;
6import hu.bme.mit.inf.dslreasoner.domains.cps.Requirement;
7import hu.bme.mit.inf.dslreasoner.domains.cps.cplex.CpsToLpTranslator;
8import hu.bme.mit.inf.dslreasoner.domains.cps.generator.CpsGenerator;
9import java.io.BufferedReader;
10import java.io.BufferedWriter;
11import java.io.FileReader;
12import java.io.FileWriter;
13import java.util.List;
14import java.util.Map;
15import java.util.concurrent.TimeUnit;
16import java.util.regex.Matcher;
17import java.util.regex.Pattern;
18import org.eclipse.emf.ecore.EPackage;
19import org.eclipse.emf.ecore.resource.Resource;
20import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
21import org.eclipse.xtext.xbase.lib.Exceptions;
22import org.eclipse.xtext.xbase.lib.Functions.Function1;
23import org.eclipse.xtext.xbase.lib.Functions.Function2;
24import org.eclipse.xtext.xbase.lib.InputOutput;
25import org.eclipse.xtext.xbase.lib.IterableExtensions;
26import org.eclipse.xtext.xbase.lib.ListExtensions;
27
28@SuppressWarnings("all")
29public class CbcCpsMain {
30 private static final String PROBLEM_FILE = "problem.lp";
31
32 private static final String SOLUTION_FILE = "solution.txt";
33
34 private static final Pattern VALUE_REGEX = Pattern.compile("Optimal - objective value\\s*([0-9]+(\\.[0-9]+)?)");
35
36 private CbcCpsMain() {
37 new IllegalStateException("This is a static utility class and should not be instantiated directly.");
38 }
39
40 public static void main(final String[] args) {
41 try {
42 Map<String, Object> _extensionToFactoryMap = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap();
43 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl();
44 _extensionToFactoryMap.put(Resource.Factory.Registry.DEFAULT_EXTENSION, _xMIResourceFactoryImpl);
45 EPackage.Registry.INSTANCE.put(CpsPackage.eNS_URI, CpsPackage.eINSTANCE);
46 final CpsGenerator generator = new CpsGenerator(1, 4, 1);
47 final CyberPhysicalSystem problem = generator.generateCpsProblem();
48 final CpsToLpTranslator toLp = new CpsToLpTranslator(problem, 10, true);
49 final CharSequence lp = toLp.getLpProblem();
50 FileWriter _fileWriter = new FileWriter(CbcCpsMain.PROBLEM_FILE);
51 final BufferedWriter writer = new BufferedWriter(_fileWriter);
52 try {
53 writer.append(lp);
54 } finally {
55 writer.close();
56 }
57 final Process process = new ProcessBuilder().inheritIO().command("cbc", CbcCpsMain.PROBLEM_FILE, "solve", "solu", CbcCpsMain.SOLUTION_FILE).start();
58 boolean _waitFor = process.waitFor(120, TimeUnit.SECONDS);
59 boolean _not = (!_waitFor);
60 if (_not) {
61 System.err.println("Timeout reached");
62 process.destroyForcibly();
63 System.exit((-1));
64 }
65 int _exitValue = process.exitValue();
66 boolean _notEquals = (_exitValue != 0);
67 if (_notEquals) {
68 int _exitValue_1 = process.exitValue();
69 String _plus = ("Unexpected exit value " + Integer.valueOf(_exitValue_1));
70 System.err.println(_plus);
71 System.exit((-1));
72 }
73 FileReader _fileReader = new FileReader(CbcCpsMain.SOLUTION_FILE);
74 final BufferedReader reader = new BufferedReader(_fileReader);
75 double value = Double.NaN;
76 try {
77 String line = null;
78 while (((line = reader.readLine()) != null)) {
79 {
80 InputOutput.<String>println(line);
81 final Matcher matcher = CbcCpsMain.VALUE_REGEX.matcher(line);
82 boolean _matches = matcher.matches();
83 if (_matches) {
84 value = Double.parseDouble(matcher.group(1));
85 }
86 }
87 }
88 } finally {
89 reader.close();
90 }
91 final Function1<Request, List<Integer>> _function = (Request it) -> {
92 final Function1<Requirement, Integer> _function_1 = (Requirement it_1) -> {
93 return Integer.valueOf(it_1.getCount());
94 };
95 return ListExtensions.<Requirement, Integer>map(it.getRequirements(), _function_1);
96 };
97 final Function2<Integer, Integer, Integer> _function_1 = (Integer p1, Integer p2) -> {
98 return Integer.valueOf(((p1).intValue() + (p2).intValue()));
99 };
100 Integer _reduce = IterableExtensions.<Integer>reduce(IterableExtensions.<Request, Integer>flatMap(problem.getRequests(), _function), _function_1);
101 final int applicationCost = ((_reduce).intValue() * 5);
102 final double cost = (applicationCost + value);
103 InputOutput.println();
104 InputOutput.<String>println(("Cost: " + Double.valueOf(cost)));
105 } catch (Throwable _e) {
106 throw Exceptions.sneakyThrow(_e);
107 }
108 }
109}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/CpsToLpTranslator.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/CpsToLpTranslator.java
deleted file mode 100644
index 20afeee6..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/CpsToLpTranslator.java
+++ /dev/null
@@ -1,505 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.cplex;
2
3import com.google.common.base.Objects;
4import com.google.common.collect.ImmutableList;
5import com.google.common.collect.ImmutableMap;
6import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationType;
7import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
8import hu.bme.mit.inf.dslreasoner.domains.cps.HostType;
9import hu.bme.mit.inf.dslreasoner.domains.cps.Request;
10import hu.bme.mit.inf.dslreasoner.domains.cps.Requirement;
11import hu.bme.mit.inf.dslreasoner.domains.cps.ResourceRequirement;
12import java.util.Collection;
13import java.util.List;
14import java.util.Map;
15import org.eclipse.emf.common.util.EList;
16import org.eclipse.xtend2.lib.StringConcatenation;
17import org.eclipse.xtext.xbase.lib.CollectionLiterals;
18import org.eclipse.xtext.xbase.lib.ExclusiveRange;
19import org.eclipse.xtext.xbase.lib.Functions.Function1;
20import org.eclipse.xtext.xbase.lib.IterableExtensions;
21import org.eclipse.xtext.xbase.lib.ListExtensions;
22import org.eclipse.xtext.xbase.lib.Pair;
23
24@SuppressWarnings("all")
25public class CpsToLpTranslator {
26 private static final double MINIMUM_MEMORY_USAGE = 0.25;
27
28 private static final double MINIMUM_HDD_USAGE = 0.25;
29
30 private final CyberPhysicalSystem cps;
31
32 private final Map<Requirement, ? extends List<String>> appInstances;
33
34 private final Map<HostType, ? extends List<String>> hostInstances;
35
36 private final boolean breakSymmetry;
37
38 public CpsToLpTranslator(final CyberPhysicalSystem cps, final int hostInstanceCount, final boolean breakSymmetry) {
39 this.cps = cps;
40 this.appInstances = this.createAppInstances();
41 this.hostInstances = this.createHostInstances(hostInstanceCount);
42 this.breakSymmetry = breakSymmetry;
43 }
44
45 private ImmutableMap<Requirement, ImmutableList<String>> createAppInstances() {
46 ImmutableMap<Requirement, ImmutableList<String>> _xblockexpression = null;
47 {
48 final ImmutableMap.Builder<Requirement, ImmutableList<String>> builder = ImmutableMap.<Requirement, ImmutableList<String>>builder();
49 int i = 0;
50 Iterable<Requirement> _requirements = this.getRequirements();
51 for (final Requirement req : _requirements) {
52 {
53 final ImmutableList.Builder<String> listBuilder = ImmutableList.<String>builder();
54 for (int j = 0; (j < req.getCount()); j++) {
55 StringConcatenation _builder = new StringConcatenation();
56 _builder.append("r");
57 _builder.append(i);
58 _builder.append("a");
59 _builder.append(j);
60 listBuilder.add(_builder.toString());
61 }
62 builder.put(req, listBuilder.build());
63 i++;
64 }
65 }
66 _xblockexpression = builder.build();
67 }
68 return _xblockexpression;
69 }
70
71 private ImmutableMap<HostType, ImmutableList<String>> createHostInstances(final int hostInstanceCount) {
72 ImmutableMap<HostType, ImmutableList<String>> _xblockexpression = null;
73 {
74 final ImmutableMap.Builder<HostType, ImmutableList<String>> builder = ImmutableMap.<HostType, ImmutableList<String>>builder();
75 int i = 0;
76 EList<HostType> _hostTypes = this.cps.getHostTypes();
77 for (final HostType hostType : _hostTypes) {
78 {
79 final ImmutableList.Builder<String> listBuilder = ImmutableList.<String>builder();
80 for (int j = 0; (j < hostInstanceCount); j++) {
81 StringConcatenation _builder = new StringConcatenation();
82 _builder.append("h");
83 _builder.append(i);
84 _builder.append("i");
85 _builder.append(j);
86 listBuilder.add(_builder.toString());
87 }
88 builder.put(hostType, listBuilder.build());
89 i++;
90 }
91 }
92 _xblockexpression = builder.build();
93 }
94 return _xblockexpression;
95 }
96
97 public CharSequence getLpProblem() {
98 StringConcatenation _builder = new StringConcatenation();
99 _builder.append("Minimize");
100 _builder.newLine();
101 _builder.append("\t");
102 _builder.append("total_cost: ");
103 CharSequence _objective = this.getObjective();
104 _builder.append(_objective, "\t");
105 _builder.newLineIfNotEmpty();
106 _builder.append("Subject To");
107 _builder.newLine();
108 _builder.append("\t");
109 CharSequence _constraints = this.getConstraints();
110 _builder.append(_constraints, "\t");
111 _builder.newLineIfNotEmpty();
112 _builder.append("Bounds");
113 _builder.newLine();
114 _builder.append("\t");
115 CharSequence _bounds = this.getBounds();
116 _builder.append(_bounds, "\t");
117 _builder.newLineIfNotEmpty();
118 _builder.append("Binary");
119 _builder.newLine();
120 _builder.append("\t");
121 CharSequence _binaryVariables = this.getBinaryVariables();
122 _builder.append(_binaryVariables, "\t");
123 _builder.newLineIfNotEmpty();
124 _builder.append("End");
125 _builder.newLine();
126 return _builder;
127 }
128
129 private CharSequence getObjective() {
130 StringConcatenation _builder = new StringConcatenation();
131 {
132 Iterable<Pair<HostType, String>> _hostInstancesWithType = this.getHostInstancesWithType();
133 boolean _hasElements = false;
134 for(final Pair<HostType, String> pair : _hostInstancesWithType) {
135 if (!_hasElements) {
136 _hasElements = true;
137 } else {
138 _builder.appendImmediate(" + ", "");
139 }
140 int _cost = pair.getKey().getCost();
141 _builder.append(_cost);
142 _builder.append(" ");
143 CharSequence _existsVariable = this.getExistsVariable(pair.getValue());
144 _builder.append(_existsVariable);
145 }
146 }
147 return _builder;
148 }
149
150 private CharSequence getConstraints() {
151 StringConcatenation _builder = new StringConcatenation();
152 {
153 Iterable<Pair<ApplicationType, String>> _appInstancesWithType = this.getAppInstancesWithType();
154 for(final Pair<ApplicationType, String> appPair : _appInstancesWithType) {
155 String _value = appPair.getValue();
156 _builder.append(_value);
157 _builder.append("_allocated: ");
158 {
159 Iterable<String> _possibleHostInstances = this.getPossibleHostInstances(appPair.getKey());
160 boolean _hasElements = false;
161 for(final String host : _possibleHostInstances) {
162 if (!_hasElements) {
163 _hasElements = true;
164 } else {
165 _builder.appendImmediate(" + ", "");
166 }
167 CharSequence _allocatedToVariable = this.getAllocatedToVariable(appPair.getValue(), host);
168 _builder.append(_allocatedToVariable);
169 }
170 }
171 _builder.append(" = 1");
172 _builder.newLineIfNotEmpty();
173 {
174 Iterable<String> _possibleHostInstances_1 = this.getPossibleHostInstances(appPair.getKey());
175 for(final String host_1 : _possibleHostInstances_1) {
176 String _value_1 = appPair.getValue();
177 _builder.append(_value_1);
178 _builder.append("_to_");
179 _builder.append(host_1);
180 _builder.append("_exists: ");
181 CharSequence _existsVariable = this.getExistsVariable(host_1);
182 _builder.append(_existsVariable);
183 _builder.append(" - ");
184 CharSequence _allocatedToVariable_1 = this.getAllocatedToVariable(appPair.getValue(), host_1);
185 _builder.append(_allocatedToVariable_1);
186 _builder.append(" >= 0");
187 _builder.newLineIfNotEmpty();
188 }
189 }
190 }
191 }
192 {
193 Iterable<Pair<HostType, String>> _hostInstancesWithType = this.getHostInstancesWithType();
194 for(final Pair<HostType, String> hostPair : _hostInstancesWithType) {
195 String _value_2 = hostPair.getValue();
196 _builder.append(_value_2);
197 _builder.append("_mem_use: ");
198 {
199 Iterable<Pair<ResourceRequirement, String>> _possibleAppInstancesWithRequirements = this.getPossibleAppInstancesWithRequirements(hostPair.getKey());
200 boolean _hasElements_1 = false;
201 for(final Pair<ResourceRequirement, String> appPair_1 : _possibleAppInstancesWithRequirements) {
202 if (!_hasElements_1) {
203 _hasElements_1 = true;
204 } else {
205 _builder.appendImmediate(" + ", "");
206 }
207 int _requiredMemory = appPair_1.getKey().getRequiredMemory();
208 _builder.append(_requiredMemory);
209 _builder.append(" ");
210 CharSequence _allocatedToVariable_2 = this.getAllocatedToVariable(appPair_1.getValue(), hostPair.getValue());
211 _builder.append(_allocatedToVariable_2);
212 }
213 }
214 _builder.append(" - ");
215 int _defaultMemory = hostPair.getKey().getDefaultMemory();
216 _builder.append(_defaultMemory);
217 _builder.append(" ");
218 CharSequence _memoryUsageVariable = this.getMemoryUsageVariable(hostPair.getValue());
219 _builder.append(_memoryUsageVariable);
220 _builder.append(" = 0");
221 _builder.newLineIfNotEmpty();
222 String _value_3 = hostPair.getValue();
223 _builder.append(_value_3);
224 _builder.append("_hdd_use: ");
225 {
226 Iterable<Pair<ResourceRequirement, String>> _possibleAppInstancesWithRequirements_1 = this.getPossibleAppInstancesWithRequirements(hostPair.getKey());
227 boolean _hasElements_2 = false;
228 for(final Pair<ResourceRequirement, String> appPair_2 : _possibleAppInstancesWithRequirements_1) {
229 if (!_hasElements_2) {
230 _hasElements_2 = true;
231 } else {
232 _builder.appendImmediate(" + ", "");
233 }
234 int _requiredHdd = appPair_2.getKey().getRequiredHdd();
235 _builder.append(_requiredHdd);
236 _builder.append(" ");
237 CharSequence _allocatedToVariable_3 = this.getAllocatedToVariable(appPair_2.getValue(), hostPair.getValue());
238 _builder.append(_allocatedToVariable_3);
239 }
240 }
241 _builder.append(" - ");
242 int _defaultHdd = hostPair.getKey().getDefaultHdd();
243 _builder.append(_defaultHdd);
244 _builder.append(" ");
245 CharSequence _hddUsageVariable = this.getHddUsageVariable(hostPair.getValue());
246 _builder.append(_hddUsageVariable);
247 _builder.append(" = 0");
248 _builder.newLineIfNotEmpty();
249 }
250 }
251 _builder.append("average_mem: ");
252 {
253 Iterable<String> _allHostInstances = this.getAllHostInstances();
254 boolean _hasElements_3 = false;
255 for(final String host_2 : _allHostInstances) {
256 if (!_hasElements_3) {
257 _hasElements_3 = true;
258 } else {
259 _builder.appendImmediate(" + ", "");
260 }
261 CharSequence _memoryUsageVariable_1 = this.getMemoryUsageVariable(host_2);
262 _builder.append(_memoryUsageVariable_1);
263 _builder.append(" - ");
264 _builder.append(CpsToLpTranslator.MINIMUM_MEMORY_USAGE);
265 _builder.append(" ");
266 CharSequence _existsVariable_1 = this.getExistsVariable(host_2);
267 _builder.append(_existsVariable_1);
268 }
269 }
270 _builder.append(" >= 0");
271 _builder.newLineIfNotEmpty();
272 _builder.append("average_hdd: ");
273 {
274 Iterable<String> _allHostInstances_1 = this.getAllHostInstances();
275 boolean _hasElements_4 = false;
276 for(final String host_3 : _allHostInstances_1) {
277 if (!_hasElements_4) {
278 _hasElements_4 = true;
279 } else {
280 _builder.appendImmediate(" + ", "");
281 }
282 CharSequence _memoryUsageVariable_2 = this.getMemoryUsageVariable(host_3);
283 _builder.append(_memoryUsageVariable_2);
284 _builder.append(" - ");
285 _builder.append(CpsToLpTranslator.MINIMUM_HDD_USAGE);
286 _builder.append(" ");
287 CharSequence _existsVariable_2 = this.getExistsVariable(host_3);
288 _builder.append(_existsVariable_2);
289 }
290 }
291 _builder.append(" >= 0");
292 _builder.newLineIfNotEmpty();
293 {
294 final Function1<Requirement, Boolean> _function = (Requirement it) -> {
295 int _count = it.getCount();
296 return Boolean.valueOf((_count > 1));
297 };
298 Iterable<Pair<Integer, Requirement>> _indexed = IterableExtensions.<Requirement>indexed(IterableExtensions.<Requirement>filter(this.getRequirements(), _function));
299 for(final Pair<Integer, Requirement> reqPair : _indexed) {
300 {
301 final Function1<ResourceRequirement, List<String>> _function_1 = (ResourceRequirement it) -> {
302 return this.hostInstances.get(it.getHostType());
303 };
304 Iterable<String> _flatMap = IterableExtensions.<ResourceRequirement, String>flatMap(reqPair.getValue().getType().getRequirements(), _function_1);
305 for(final String host_4 : _flatMap) {
306 _builder.append("r");
307 Integer _key = reqPair.getKey();
308 _builder.append(_key);
309 _builder.append("_");
310 _builder.append(host_4);
311 _builder.append("_redundant: ");
312 {
313 List<String> _get = this.appInstances.get(reqPair.getValue());
314 boolean _hasElements_5 = false;
315 for(final String app : _get) {
316 if (!_hasElements_5) {
317 _hasElements_5 = true;
318 } else {
319 _builder.appendImmediate(" + ", "");
320 }
321 CharSequence _allocatedToVariable_4 = this.getAllocatedToVariable(app, host_4);
322 _builder.append(_allocatedToVariable_4);
323 }
324 }
325 _builder.append(" <= 1");
326 _builder.newLineIfNotEmpty();
327 }
328 }
329 }
330 }
331 {
332 if (this.breakSymmetry) {
333 {
334 Collection<? extends List<String>> _values = this.hostInstances.values();
335 for(final List<String> hosts : _values) {
336 {
337 int _size = hosts.size();
338 int _minus = (_size - 1);
339 ExclusiveRange _doubleDotLessThan = new ExclusiveRange(0, _minus, true);
340 for(final Integer i : _doubleDotLessThan) {
341 String _get_1 = hosts.get(((i).intValue() + 1));
342 _builder.append(_get_1);
343 _builder.append("_after_");
344 String _get_2 = hosts.get((i).intValue());
345 _builder.append(_get_2);
346 _builder.append(": ");
347 CharSequence _existsVariable_3 = this.getExistsVariable(hosts.get((i).intValue()));
348 _builder.append(_existsVariable_3);
349 _builder.append(" - ");
350 CharSequence _existsVariable_4 = this.getExistsVariable(hosts.get(((i).intValue() + 1)));
351 _builder.append(_existsVariable_4);
352 _builder.append(" >= 0");
353 _builder.newLineIfNotEmpty();
354 }
355 }
356 }
357 }
358 }
359 }
360 return _builder;
361 }
362
363 private CharSequence getBounds() {
364 StringConcatenation _builder = new StringConcatenation();
365 {
366 Iterable<String> _allHostInstances = this.getAllHostInstances();
367 for(final String host : _allHostInstances) {
368 _builder.append("0 <= ");
369 CharSequence _memoryUsageVariable = this.getMemoryUsageVariable(host);
370 _builder.append(_memoryUsageVariable);
371 _builder.append(" <= 1");
372 _builder.newLineIfNotEmpty();
373 _builder.append("0 <= ");
374 CharSequence _hddUsageVariable = this.getHddUsageVariable(host);
375 _builder.append(_hddUsageVariable);
376 _builder.append(" <= 1");
377 _builder.newLineIfNotEmpty();
378 }
379 }
380 return _builder;
381 }
382
383 private CharSequence getBinaryVariables() {
384 StringConcatenation _builder = new StringConcatenation();
385 {
386 Iterable<String> _allHostInstances = this.getAllHostInstances();
387 for(final String host : _allHostInstances) {
388 CharSequence _existsVariable = this.getExistsVariable(host);
389 _builder.append(_existsVariable);
390 _builder.newLineIfNotEmpty();
391 }
392 }
393 {
394 Iterable<Pair<ApplicationType, String>> _appInstancesWithType = this.getAppInstancesWithType();
395 for(final Pair<ApplicationType, String> appPair : _appInstancesWithType) {
396 {
397 Iterable<String> _possibleHostInstances = this.getPossibleHostInstances(appPair.getKey());
398 for(final String host_1 : _possibleHostInstances) {
399 CharSequence _allocatedToVariable = this.getAllocatedToVariable(appPair.getValue(), host_1);
400 _builder.append(_allocatedToVariable);
401 _builder.newLineIfNotEmpty();
402 }
403 }
404 }
405 }
406 return _builder;
407 }
408
409 private Iterable<Requirement> getRequirements() {
410 final Function1<Request, EList<Requirement>> _function = (Request it) -> {
411 return it.getRequirements();
412 };
413 return IterableExtensions.<Request, Requirement>flatMap(this.cps.getRequests(), _function);
414 }
415
416 private Iterable<String> getAllHostInstances() {
417 final Function1<List<String>, List<String>> _function = (List<String> it) -> {
418 return it;
419 };
420 return IterableExtensions.flatMap(this.hostInstances.values(), _function);
421 }
422
423 private Iterable<Pair<HostType, String>> getHostInstancesWithType() {
424 final Function1<Map.Entry<HostType, ? extends List<String>>, List<Pair<HostType, String>>> _function = (Map.Entry<HostType, ? extends List<String>> pair) -> {
425 final Function1<String, Pair<HostType, String>> _function_1 = (String it) -> {
426 HostType _key = pair.getKey();
427 return Pair.<HostType, String>of(_key, it);
428 };
429 return ListExtensions.<String, Pair<HostType, String>>map(pair.getValue(), _function_1);
430 };
431 return IterableExtensions.flatMap(this.hostInstances.entrySet(), _function);
432 }
433
434 private Iterable<Pair<ApplicationType, String>> getAppInstancesWithType() {
435 final Function1<Map.Entry<Requirement, ? extends List<String>>, List<Pair<ApplicationType, String>>> _function = (Map.Entry<Requirement, ? extends List<String>> pair) -> {
436 final Function1<String, Pair<ApplicationType, String>> _function_1 = (String it) -> {
437 ApplicationType _type = pair.getKey().getType();
438 return Pair.<ApplicationType, String>of(_type, it);
439 };
440 return ListExtensions.<String, Pair<ApplicationType, String>>map(pair.getValue(), _function_1);
441 };
442 return IterableExtensions.flatMap(this.appInstances.entrySet(), _function);
443 }
444
445 private Iterable<String> getPossibleHostInstances(final ApplicationType appType) {
446 final Function1<ResourceRequirement, List<String>> _function = (ResourceRequirement req) -> {
447 return this.hostInstances.get(req.getHostType());
448 };
449 return IterableExtensions.<ResourceRequirement, String>flatMap(appType.getRequirements(), _function);
450 }
451
452 private Iterable<Pair<ResourceRequirement, String>> getPossibleAppInstancesWithRequirements(final HostType hostType) {
453 final Function1<Map.Entry<Requirement, ? extends List<String>>, List<Pair<ResourceRequirement, String>>> _function = (Map.Entry<Requirement, ? extends List<String>> pair) -> {
454 List<Pair<ResourceRequirement, String>> _xblockexpression = null;
455 {
456 final Function1<ResourceRequirement, Boolean> _function_1 = (ResourceRequirement it) -> {
457 HostType _hostType = it.getHostType();
458 return Boolean.valueOf(Objects.equal(_hostType, hostType));
459 };
460 final ResourceRequirement resourceReq = IterableExtensions.<ResourceRequirement>findFirst(pair.getKey().getType().getRequirements(), _function_1);
461 List<Pair<ResourceRequirement, String>> _xifexpression = null;
462 if ((resourceReq == null)) {
463 _xifexpression = CollectionLiterals.<Pair<ResourceRequirement, String>>emptyList();
464 } else {
465 final Function1<String, Pair<ResourceRequirement, String>> _function_2 = (String it) -> {
466 return Pair.<ResourceRequirement, String>of(resourceReq, it);
467 };
468 _xifexpression = ListExtensions.<String, Pair<ResourceRequirement, String>>map(pair.getValue(), _function_2);
469 }
470 _xblockexpression = _xifexpression;
471 }
472 return _xblockexpression;
473 };
474 return IterableExtensions.flatMap(this.appInstances.entrySet(), _function);
475 }
476
477 private CharSequence getExistsVariable(final String hostInstance) {
478 StringConcatenation _builder = new StringConcatenation();
479 _builder.append(hostInstance);
480 _builder.append("_exists");
481 return _builder;
482 }
483
484 private CharSequence getMemoryUsageVariable(final String hostInstance) {
485 StringConcatenation _builder = new StringConcatenation();
486 _builder.append(hostInstance);
487 _builder.append("_mem");
488 return _builder;
489 }
490
491 private CharSequence getHddUsageVariable(final String hostInstance) {
492 StringConcatenation _builder = new StringConcatenation();
493 _builder.append(hostInstance);
494 _builder.append("_hdd");
495 return _builder;
496 }
497
498 private CharSequence getAllocatedToVariable(final String appInstance, final String hostInstance) {
499 StringConcatenation _builder = new StringConcatenation();
500 _builder.append(appInstance);
501 _builder.append("_to_");
502 _builder.append(hostInstance);
503 return _builder;
504 }
505}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.CpsStateCoder.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.CpsStateCoder.xtendbin
deleted file mode 100644
index ee672cb1..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.CpsStateCoder.xtendbin
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.RuleBasedCpsMain.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.RuleBasedCpsMain.xtendbin
deleted file mode 100644
index e58e8b6f..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.RuleBasedCpsMain.xtendbin
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.RuleBasedCpsSolver.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.RuleBasedCpsSolver.xtendbin
deleted file mode 100644
index e29f2d71..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.RuleBasedCpsSolver.xtendbin
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.gitignore b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.gitignore
deleted file mode 100644
index 2338336b..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.gitignore
+++ /dev/null
@@ -1,9 +0,0 @@
1/.RuleBasedCpsSolver.java._trace
2/.RuleBasedCpsMain.java._trace
3/.CpsStateCoder.java._trace
4/.CpsStateCoder.xtendbin
5/.RuleBasedCpsMain.xtendbin
6/.RuleBasedCpsSolver.xtendbin
7/CpsStateCoder.java
8/RuleBasedCpsMain.java
9/RuleBasedCpsSolver.java
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/CpsStateCoder.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/CpsStateCoder.java
deleted file mode 100644
index 3ae8e828..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/CpsStateCoder.java
+++ /dev/null
@@ -1,316 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.dse;
2
3import com.google.common.base.Objects;
4import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance;
5import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
6import hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance;
7import hu.bme.mit.inf.dslreasoner.domains.cps.HostType;
8import hu.bme.mit.inf.dslreasoner.domains.cps.Request;
9import hu.bme.mit.inf.dslreasoner.domains.cps.Requirement;
10import java.util.Arrays;
11import org.eclipse.emf.common.notify.Notifier;
12import org.eclipse.emf.common.util.EList;
13import org.eclipse.emf.ecore.EObject;
14import org.eclipse.emf.ecore.resource.Resource;
15import org.eclipse.emf.ecore.resource.ResourceSet;
16import org.eclipse.viatra.dse.statecode.IStateCoder;
17import org.eclipse.viatra.dse.statecode.IStateCoderFactory;
18import org.eclipse.viatra.query.runtime.api.IPatternMatch;
19import org.eclipse.xtend2.lib.StringConcatenation;
20import org.eclipse.xtend2.lib.StringConcatenationClient;
21import org.eclipse.xtext.xbase.lib.IterableExtensions;
22
23@SuppressWarnings("all")
24public class CpsStateCoder implements IStateCoder {
25 public static class Factory implements IStateCoderFactory {
26 @Override
27 public IStateCoder createStateCoder() {
28 return new CpsStateCoder();
29 }
30 }
31
32 private CyberPhysicalSystem cps;
33
34 protected CpsStateCoder() {
35 }
36
37 @Override
38 public void init(final Notifier notifier) {
39 CyberPhysicalSystem _switchResult = null;
40 boolean _matched = false;
41 if (notifier instanceof ResourceSet) {
42 _matched=true;
43 _switchResult = this.getCpsFromResourceSet(((ResourceSet)notifier));
44 }
45 if (!_matched) {
46 if (notifier instanceof Resource) {
47 _matched=true;
48 _switchResult = this.getCpsFromResource(((Resource)notifier));
49 }
50 }
51 if (!_matched) {
52 if (notifier instanceof CyberPhysicalSystem) {
53 _matched=true;
54 _switchResult = ((CyberPhysicalSystem)notifier);
55 }
56 }
57 if (!_matched) {
58 throw new IllegalArgumentException("notifier is not a CyberPhysicalSystem");
59 }
60 this.cps = _switchResult;
61 }
62
63 private CyberPhysicalSystem getCpsFromResourceSet(final ResourceSet resourceSet) {
64 CyberPhysicalSystem _xblockexpression = null;
65 {
66 boolean _isEmpty = resourceSet.getResources().isEmpty();
67 if (_isEmpty) {
68 throw new IllegalArgumentException("No Resource in ResourceSet");
69 }
70 final Resource resource = IterableExtensions.<Resource>head(resourceSet.getResources());
71 _xblockexpression = this.getCpsFromResource(resource);
72 }
73 return _xblockexpression;
74 }
75
76 private CyberPhysicalSystem getCpsFromResource(final Resource resource) {
77 CyberPhysicalSystem _xblockexpression = null;
78 {
79 boolean _isEmpty = resource.getContents().isEmpty();
80 if (_isEmpty) {
81 throw new IllegalArgumentException("No EObject in Resource");
82 }
83 final EObject cps = IterableExtensions.<EObject>head(resource.getContents());
84 CyberPhysicalSystem _xifexpression = null;
85 if ((cps instanceof CyberPhysicalSystem)) {
86 _xifexpression = ((CyberPhysicalSystem)cps);
87 } else {
88 throw new IllegalArgumentException("EObject in Resource is not a CyberPhysicalSystem");
89 }
90 _xblockexpression = _xifexpression;
91 }
92 return _xblockexpression;
93 }
94
95 @Override
96 public String createStateCode() {
97 StringConcatenation _builder = new StringConcatenation();
98 StringConcatenationClient _createRequestsCode = this.createRequestsCode();
99 _builder.append(_createRequestsCode);
100 CharSequence _createHostTypesCode = this.createHostTypesCode();
101 _builder.append(_createHostTypesCode);
102 return _builder.toString();
103 }
104
105 private StringConcatenationClient createRequestsCode() {
106 StringConcatenationClient _client = new StringConcatenationClient() {
107 @Override
108 protected void appendTo(StringConcatenationClient.TargetStringConcatenation _builder) {
109 {
110 EList<Request> _requests = CpsStateCoder.this.cps.getRequests();
111 for(final Request request : _requests) {
112 StringConcatenationClient _createRequestCode = CpsStateCoder.this.createRequestCode(request);
113 _builder.append(_createRequestCode);
114 }
115 }
116 }
117 };
118 return _client;
119 }
120
121 private StringConcatenationClient createRequestCode(final Request request) {
122 StringConcatenationClient _client = new StringConcatenationClient() {
123 @Override
124 protected void appendTo(StringConcatenationClient.TargetStringConcatenation _builder) {
125 _builder.append("[");
126 {
127 EList<Requirement> _requirements = request.getRequirements();
128 for(final Requirement requirement : _requirements) {
129 StringConcatenationClient _createRequirementCode = CpsStateCoder.this.createRequirementCode(requirement);
130 _builder.append(_createRequirementCode);
131 }
132 }
133 _builder.append("]");
134 }
135 };
136 return _client;
137 }
138
139 private StringConcatenationClient createRequirementCode(final Requirement requirement) {
140 StringConcatenationClient _client = new StringConcatenationClient() {
141 @Override
142 protected void appendTo(StringConcatenationClient.TargetStringConcatenation _builder) {
143 _builder.append("[");
144 {
145 EList<ApplicationInstance> _instances = requirement.getInstances();
146 boolean _hasElements = false;
147 for(final ApplicationInstance app : _instances) {
148 if (!_hasElements) {
149 _hasElements = true;
150 } else {
151 _builder.appendImmediate(",", "");
152 }
153 String _createAppCode = CpsStateCoder.this.createAppCode(app);
154 _builder.append(_createAppCode);
155 }
156 }
157 _builder.append("]");
158 }
159 };
160 return _client;
161 }
162
163 private String createAppCode(final ApplicationInstance app) {
164 String _xifexpression = null;
165 HostInstance _allocatedTo = app.getAllocatedTo();
166 boolean _tripleEquals = (_allocatedTo == null);
167 if (_tripleEquals) {
168 _xifexpression = "-";
169 } else {
170 _xifexpression = this.createMatchArgumentCode(app.getAllocatedTo());
171 }
172 return _xifexpression;
173 }
174
175 private CharSequence createHostTypesCode() {
176 StringConcatenation _builder = new StringConcatenation();
177 _builder.append("(");
178 {
179 EList<HostType> _hostTypes = this.cps.getHostTypes();
180 boolean _hasElements = false;
181 for(final HostType hostType : _hostTypes) {
182 if (!_hasElements) {
183 _hasElements = true;
184 } else {
185 _builder.appendImmediate(",", "");
186 }
187 int _size = hostType.getInstances().size();
188 _builder.append(_size);
189 }
190 }
191 _builder.append(")");
192 return _builder;
193 }
194
195 @Override
196 public String createActivationCode(final IPatternMatch match) {
197 StringConcatenation _builder = new StringConcatenation();
198 String _simpleName = match.specification().getSimpleName();
199 _builder.append(_simpleName);
200 _builder.append("(");
201 {
202 Object[] _array = match.toArray();
203 boolean _hasElements = false;
204 for(final Object arg : _array) {
205 if (!_hasElements) {
206 _hasElements = true;
207 } else {
208 _builder.appendImmediate(",", "");
209 }
210 String _createMatchArgumentCode = this.createMatchArgumentCode(arg);
211 _builder.append(_createMatchArgumentCode);
212 }
213 }
214 _builder.append(")");
215 return _builder.toString();
216 }
217
218 protected String _createMatchArgumentCode(final Requirement requirement) {
219 String _xblockexpression = null;
220 {
221 final EObject request = requirement.eContainer();
222 String _xifexpression = null;
223 if ((request instanceof Request)) {
224 String _xblockexpression_1 = null;
225 {
226 EObject _eContainer = ((Request)request).eContainer();
227 boolean _notEquals = (!Objects.equal(_eContainer, this.cps));
228 if (_notEquals) {
229 throw new IllegalArgumentException("Request is not contained in the CPS");
230 }
231 final int requestIndex = this.cps.getRequests().indexOf(request);
232 final int requirementIndex = ((Request)request).getRequirements().indexOf(requirement);
233 String _plus = (Integer.valueOf(requestIndex) + ".");
234 _xblockexpression_1 = (_plus + Integer.valueOf(requirementIndex));
235 }
236 _xifexpression = _xblockexpression_1;
237 } else {
238 throw new IllegalArgumentException("Requirement is not contained in a request");
239 }
240 _xblockexpression = _xifexpression;
241 }
242 return _xblockexpression;
243 }
244
245 protected String _createMatchArgumentCode(final ApplicationInstance app) {
246 String _xblockexpression = null;
247 {
248 final Requirement requirement = app.getRequirement();
249 if ((requirement == null)) {
250 throw new IllegalArgumentException("Application instance is not associated with a requirement");
251 }
252 final int instanceIndex = requirement.getInstances().indexOf(app);
253 String _createMatchArgumentCode = this.createMatchArgumentCode(requirement);
254 String _plus = (_createMatchArgumentCode + ".");
255 _xblockexpression = (_plus + Integer.valueOf(instanceIndex));
256 }
257 return _xblockexpression;
258 }
259
260 protected String _createMatchArgumentCode(final HostInstance host) {
261 String _xblockexpression = null;
262 {
263 final EObject hostType = host.eContainer();
264 String _xifexpression = null;
265 if ((hostType instanceof HostType)) {
266 String _xblockexpression_1 = null;
267 {
268 final int hostIndex = ((HostType)hostType).getInstances().indexOf(host);
269 String _createMatchArgumentCode = this.createMatchArgumentCode(hostType);
270 String _plus = (_createMatchArgumentCode + ".");
271 _xblockexpression_1 = (_plus + Integer.valueOf(hostIndex));
272 }
273 _xifexpression = _xblockexpression_1;
274 } else {
275 throw new IllegalArgumentException("Host is not contained in a host type");
276 }
277 _xblockexpression = _xifexpression;
278 }
279 return _xblockexpression;
280 }
281
282 protected String _createMatchArgumentCode(final HostType hostType) {
283 String _xblockexpression = null;
284 {
285 EObject _eContainer = hostType.eContainer();
286 boolean _notEquals = (!Objects.equal(_eContainer, this.cps));
287 if (_notEquals) {
288 throw new IllegalArgumentException("Host type is not contained in the CPS");
289 }
290 final int hostTypeIndex = this.cps.getHostTypes().indexOf(hostType);
291 _xblockexpression = Integer.valueOf(hostTypeIndex).toString();
292 }
293 return _xblockexpression;
294 }
295
296 protected String _createMatchArgumentCode(final Object object) {
297 throw new IllegalArgumentException("Unknown match argument: ");
298 }
299
300 protected String createMatchArgumentCode(final Object app) {
301 if (app instanceof ApplicationInstance) {
302 return _createMatchArgumentCode((ApplicationInstance)app);
303 } else if (app instanceof HostInstance) {
304 return _createMatchArgumentCode((HostInstance)app);
305 } else if (app instanceof HostType) {
306 return _createMatchArgumentCode((HostType)app);
307 } else if (app instanceof Requirement) {
308 return _createMatchArgumentCode((Requirement)app);
309 } else if (app != null) {
310 return _createMatchArgumentCode(app);
311 } else {
312 throw new IllegalArgumentException("Unhandled parameter types: " +
313 Arrays.<Object>asList(app).toString());
314 }
315 }
316}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/RuleBasedCpsMain.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/RuleBasedCpsMain.java
deleted file mode 100644
index 7d81f84b..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/RuleBasedCpsMain.java
+++ /dev/null
@@ -1,46 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.dse;
2
3import hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage;
4import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
5import hu.bme.mit.inf.dslreasoner.domains.cps.dse.RuleBasedCpsSolver;
6import hu.bme.mit.inf.dslreasoner.domains.cps.generator.CpsGenerator;
7import hu.bme.mit.inf.dslreasoner.domains.cps.queries.CpsQueries;
8import java.util.Map;
9import org.eclipse.emf.ecore.EPackage;
10import org.eclipse.emf.ecore.EStructuralFeature;
11import org.eclipse.emf.ecore.resource.Resource;
12import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
13import org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory;
14import org.eclipse.viatra.addon.querybasedfeatures.runtime.handler.QueryBasedFeatures;
15import org.eclipse.viatra.dse.api.DesignSpaceExplorer;
16import org.eclipse.viatra.query.runtime.extensibility.SingletonQueryGroupProvider;
17import org.eclipse.viatra.query.runtime.registry.IQuerySpecificationRegistry;
18import org.eclipse.viatra.query.runtime.registry.QuerySpecificationRegistry;
19import org.eclipse.viatra.query.runtime.registry.connector.QueryGroupProviderSourceConnector;
20
21@SuppressWarnings("all")
22public class RuleBasedCpsMain {
23 private RuleBasedCpsMain() {
24 new IllegalStateException("This is a static utility class and should not be instantiated directly.");
25 }
26
27 public static void main(final String[] args) {
28 DesignSpaceExplorer.turnOnLogging(DesignSpaceExplorer.DseLoggingLevel.VERBOSE_FULL);
29 Map<String, Object> _extensionToFactoryMap = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap();
30 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl();
31 _extensionToFactoryMap.put(Resource.Factory.Registry.DEFAULT_EXTENSION, _xMIResourceFactoryImpl);
32 QueryBasedFeatureSettingDelegateFactory _queryBasedFeatureSettingDelegateFactory = new QueryBasedFeatureSettingDelegateFactory();
33 EStructuralFeature.Internal.SettingDelegate.Factory.Registry.INSTANCE.put(QueryBasedFeatures.ANNOTATION_SOURCE, _queryBasedFeatureSettingDelegateFactory);
34 EPackage.Registry.INSTANCE.put(CpsPackage.eNS_URI, CpsPackage.eINSTANCE);
35 IQuerySpecificationRegistry _instance = QuerySpecificationRegistry.getInstance();
36 CpsQueries _instance_1 = CpsQueries.instance();
37 SingletonQueryGroupProvider _singletonQueryGroupProvider = new SingletonQueryGroupProvider(_instance_1);
38 QueryGroupProviderSourceConnector _queryGroupProviderSourceConnector = new QueryGroupProviderSourceConnector("CpsQueries", _singletonQueryGroupProvider,
39 true);
40 _instance.addSource(_queryGroupProviderSourceConnector);
41 final CpsGenerator generator = new CpsGenerator(1, 4, 1);
42 final CyberPhysicalSystem problem = generator.generateCpsProblem();
43 final RuleBasedCpsSolver solver = new RuleBasedCpsSolver();
44 solver.solve(problem);
45 }
46}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/RuleBasedCpsSolver.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/RuleBasedCpsSolver.java
deleted file mode 100644
index fd348752..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/RuleBasedCpsSolver.java
+++ /dev/null
@@ -1,93 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.dse;
2
3import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance;
4import hu.bme.mit.inf.dslreasoner.domains.cps.CpsFactory;
5import hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage;
6import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
7import hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance;
8import hu.bme.mit.inf.dslreasoner.domains.cps.dse.CpsStateCoder;
9import hu.bme.mit.inf.dslreasoner.domains.cps.queries.Allocate;
10import hu.bme.mit.inf.dslreasoner.domains.cps.queries.AverageFreeHddMetric;
11import hu.bme.mit.inf.dslreasoner.domains.cps.queries.AverageFreeMemoryMetric;
12import hu.bme.mit.inf.dslreasoner.domains.cps.queries.CostMetric;
13import hu.bme.mit.inf.dslreasoner.domains.cps.queries.CreateHostInstance;
14import hu.bme.mit.inf.dslreasoner.domains.cps.queries.GuidanceObjective;
15import hu.bme.mit.inf.dslreasoner.domains.cps.queries.RequirementNotSatisfied;
16import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.optimization.CompositeDirectionalThresholdObjective;
17import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.optimization.ObjectiveKind;
18import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.optimization.ObjectiveThreshold;
19import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.optimization.QueryBasedObjective;
20import java.util.Collection;
21import java.util.function.Consumer;
22import org.eclipse.emf.common.util.EList;
23import org.eclipse.viatra.dse.api.DesignSpaceExplorer;
24import org.eclipse.viatra.dse.api.Solution;
25import org.eclipse.viatra.dse.evolutionary.EvolutionaryStrategy;
26import org.eclipse.viatra.dse.evolutionary.EvolutionaryStrategyBuilder;
27import org.eclipse.viatra.dse.objectives.Fitness;
28import org.eclipse.viatra.transformation.runtime.emf.rules.batch.BatchTransformationRuleFactory;
29import org.eclipse.xtext.xbase.lib.Extension;
30import org.eclipse.xtext.xbase.lib.InputOutput;
31
32@SuppressWarnings("all")
33public class RuleBasedCpsSolver {
34 @Extension
35 private final BatchTransformationRuleFactory _batchTransformationRuleFactory = new BatchTransformationRuleFactory();
36
37 @Extension
38 private final CpsFactory _cpsFactory = CpsFactory.eINSTANCE;
39
40 public void solve(final CyberPhysicalSystem problem) {
41 final DesignSpaceExplorer dse = new DesignSpaceExplorer();
42 dse.addMetaModelPackage(CpsPackage.eINSTANCE);
43 dse.setInitialModel(problem.eResource().getResourceSet());
44 final Consumer<RequirementNotSatisfied.Match> _function = (RequirementNotSatisfied.Match it) -> {
45 final ApplicationInstance app = this._cpsFactory.createApplicationInstance();
46 EList<ApplicationInstance> _instances = it.getReq().getType().getInstances();
47 _instances.add(app);
48 EList<ApplicationInstance> _instances_1 = it.getReq().getInstances();
49 _instances_1.add(app);
50 };
51 dse.addTransformationRule(this._batchTransformationRuleFactory.<RequirementNotSatisfied.Match, RequirementNotSatisfied.Matcher>createRule(RequirementNotSatisfied.instance()).action(_function).build());
52 final Consumer<Allocate.Match> _function_1 = (Allocate.Match it) -> {
53 ApplicationInstance _app = it.getApp();
54 _app.setAllocatedTo(it.getHost());
55 };
56 dse.addTransformationRule(this._batchTransformationRuleFactory.<Allocate.Match, Allocate.Matcher>createRule(Allocate.instance()).action(_function_1).build());
57 final Consumer<CreateHostInstance.Match> _function_2 = (CreateHostInstance.Match it) -> {
58 EList<HostInstance> _instances = it.getHostType().getInstances();
59 HostInstance _createHostInstance = this._cpsFactory.createHostInstance();
60 _instances.add(_createHostInstance);
61 };
62 dse.addTransformationRule(this._batchTransformationRuleFactory.<CreateHostInstance.Match, CreateHostInstance.Matcher>createRule(CreateHostInstance.instance()).action(_function_2).build());
63 GuidanceObjective _instance = GuidanceObjective.instance();
64 ObjectiveThreshold.Inclusive _inclusive = new ObjectiveThreshold.Inclusive(0);
65 QueryBasedObjective _queryBasedObjective = new QueryBasedObjective(_instance, ObjectiveKind.LOWER_IS_BETTER, _inclusive, 0);
66 AverageFreeMemoryMetric _instance_1 = AverageFreeMemoryMetric.instance();
67 ObjectiveThreshold.Inclusive _inclusive_1 = new ObjectiveThreshold.Inclusive(0.75);
68 QueryBasedObjective _queryBasedObjective_1 = new QueryBasedObjective(_instance_1, ObjectiveKind.LOWER_IS_BETTER, _inclusive_1, 0);
69 AverageFreeHddMetric _instance_2 = AverageFreeHddMetric.instance();
70 ObjectiveThreshold.Inclusive _inclusive_2 = new ObjectiveThreshold.Inclusive(0.75);
71 QueryBasedObjective _queryBasedObjective_2 = new QueryBasedObjective(_instance_2, ObjectiveKind.LOWER_IS_BETTER, _inclusive_2, 0);
72 CompositeDirectionalThresholdObjective _compositeDirectionalThresholdObjective = new CompositeDirectionalThresholdObjective("Composite", _queryBasedObjective, _queryBasedObjective_1, _queryBasedObjective_2);
73 dse.addObjective(_compositeDirectionalThresholdObjective);
74 CostMetric _instance_3 = CostMetric.instance();
75 QueryBasedObjective _queryBasedObjective_3 = new QueryBasedObjective(_instance_3, ObjectiveKind.LOWER_IS_BETTER,
76 ObjectiveThreshold.NO_THRESHOLD, 0);
77 dse.addObjective(_queryBasedObjective_3);
78 dse.setMaxNumberOfThreads(1);
79 CpsStateCoder.Factory _factory = new CpsStateCoder.Factory();
80 dse.setStateCoderFactory(_factory);
81 final EvolutionaryStrategy strategy = EvolutionaryStrategyBuilder.createNsga2Strategy(25);
82 dse.startExplorationWithTimeout(strategy, ((2 * 60) * 1000));
83 Collection<Solution> _solutions = dse.getSolutions();
84 for (final Solution solution : _solutions) {
85 Object _stateCode = solution.getStateCode();
86 String _plus = ("Found solution: " + _stateCode);
87 String _plus_1 = (_plus + " ");
88 Fitness _fitness = solution.getArbitraryTrajectory().getFitness();
89 String _plus_2 = (_plus_1 + _fitness);
90 InputOutput.<String>println(_plus_2);
91 }
92 }
93}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/.CpsGenerator.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/.CpsGenerator.xtendbin
deleted file mode 100644
index 42bebd02..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/.CpsGenerator.xtendbin
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/.gitignore b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/.gitignore
deleted file mode 100644
index 716ffd30..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
1/.CpsGenerator.java._trace
2/.CpsGenerator.xtendbin
3/CpsGenerator.java
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/CpsGenerator.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/CpsGenerator.java
deleted file mode 100644
index ce0cd02d..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/CpsGenerator.java
+++ /dev/null
@@ -1,177 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.generator;
2
3import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance;
4import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationType;
5import hu.bme.mit.inf.dslreasoner.domains.cps.CpsFactory;
6import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
7import hu.bme.mit.inf.dslreasoner.domains.cps.HostType;
8import hu.bme.mit.inf.dslreasoner.domains.cps.Request;
9import hu.bme.mit.inf.dslreasoner.domains.cps.Requirement;
10import hu.bme.mit.inf.dslreasoner.domains.cps.ResourceRequirement;
11import java.util.Collection;
12import java.util.Collections;
13import java.util.List;
14import java.util.Random;
15import org.eclipse.emf.common.util.EList;
16import org.eclipse.emf.common.util.URI;
17import org.eclipse.emf.ecore.EObject;
18import org.eclipse.emf.ecore.resource.Resource;
19import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
20import org.eclipse.xtext.xbase.lib.CollectionLiterals;
21import org.eclipse.xtext.xbase.lib.ExclusiveRange;
22import org.eclipse.xtext.xbase.lib.Extension;
23import org.eclipse.xtext.xbase.lib.ObjectExtensions;
24import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
25
26@SuppressWarnings("all")
27public class CpsGenerator {
28 @Extension
29 private final CpsFactory _cpsFactory = CpsFactory.eINSTANCE;
30
31 private static final int MIN_MEMORY = 1;
32
33 private static final int MAX_MEMORY = 6;
34
35 private static final int MIN_HDD = 1;
36
37 private static final int MAX_HDD = 30;
38
39 private static final int HIGH_CPU_FRACTION = 4;
40
41 private static final int MIN_REPLICAS = 1;
42
43 private static final int MAX_REPLICAS = 4;
44
45 private final Random random;
46
47 private final int applicationTypeCount;
48
49 private final int demandFactor;
50
51 private final boolean populateAppInstances;
52
53 public CpsGenerator(final long randomSeed, final int applicationTypeCount, final int demandFactor) {
54 this(randomSeed, applicationTypeCount, demandFactor, false);
55 }
56
57 public CpsGenerator(final long randomSeed, final int applicationTypeCount, final int demandFactor, final boolean populateAppInstances) {
58 Random _random = new Random(randomSeed);
59 this.random = _random;
60 this.applicationTypeCount = applicationTypeCount;
61 this.demandFactor = demandFactor;
62 this.populateAppInstances = populateAppInstances;
63 }
64
65 public CyberPhysicalSystem generateCpsProblem() {
66 CyberPhysicalSystem _xblockexpression = null;
67 {
68 final ResourceSetImpl resourceSet = new ResourceSetImpl();
69 final Resource resource = resourceSet.createResource(URI.createFileURI("dummy.dummyext"));
70 CyberPhysicalSystem _createCyberPhysicalSystem = this._cpsFactory.createCyberPhysicalSystem();
71 final Procedure1<CyberPhysicalSystem> _function = (CyberPhysicalSystem it) -> {
72 final CyberPhysicalSystem cps = it;
73 EList<EObject> _contents = resource.getContents();
74 _contents.add(cps);
75 this.createLowCpuHostTypes(it);
76 final List<HostType> highCpuHostTypes = this.createHighCpuHostTypes(it);
77 for (int i = 0; (i < this.applicationTypeCount); i++) {
78 if (((i % CpsGenerator.HIGH_CPU_FRACTION) == 0)) {
79 this.createRandomApplicationType(it, highCpuHostTypes);
80 } else {
81 this.createRandomApplicationType(it, it.getHostTypes());
82 }
83 }
84 for (int i = 0; (i < this.demandFactor); i++) {
85 EList<Request> _requests = it.getRequests();
86 Request _createRequest = this._cpsFactory.createRequest();
87 final Procedure1<Request> _function_1 = (Request it_1) -> {
88 EList<ApplicationType> _applicationTypes = cps.getApplicationTypes();
89 for (final ApplicationType appType : _applicationTypes) {
90 EList<Requirement> _requirements = it_1.getRequirements();
91 Requirement _createRequirement = this._cpsFactory.createRequirement();
92 final Procedure1<Requirement> _function_2 = (Requirement it_2) -> {
93 it_2.setCount(this.nextInt(CpsGenerator.MIN_REPLICAS, CpsGenerator.MAX_REPLICAS));
94 it_2.setType(appType);
95 if (this.populateAppInstances) {
96 int _count = it_2.getCount();
97 ExclusiveRange _doubleDotLessThan = new ExclusiveRange(0, _count, true);
98 for (final Integer j : _doubleDotLessThan) {
99 {
100 final ApplicationInstance app = this._cpsFactory.createApplicationInstance();
101 app.setType(appType);
102 EList<ApplicationInstance> _instances = appType.getInstances();
103 _instances.add(app);
104 EList<ApplicationInstance> _instances_1 = it_2.getInstances();
105 _instances_1.add(app);
106 }
107 }
108 }
109 };
110 Requirement _doubleArrow = ObjectExtensions.<Requirement>operator_doubleArrow(_createRequirement, _function_2);
111 _requirements.add(_doubleArrow);
112 }
113 };
114 Request _doubleArrow = ObjectExtensions.<Request>operator_doubleArrow(_createRequest, _function_1);
115 _requests.add(_doubleArrow);
116 }
117 };
118 _xblockexpression = ObjectExtensions.<CyberPhysicalSystem>operator_doubleArrow(_createCyberPhysicalSystem, _function);
119 }
120 return _xblockexpression;
121 }
122
123 private void createRandomApplicationType(final CyberPhysicalSystem it, final Collection<HostType> allowedHostTypes) {
124 final ApplicationType appType = this._cpsFactory.createApplicationType();
125 final int memory = this.nextInt(CpsGenerator.MIN_MEMORY, CpsGenerator.MAX_MEMORY);
126 final int hdd = this.nextInt(CpsGenerator.MIN_HDD, CpsGenerator.MAX_HDD);
127 for (final HostType hostType : allowedHostTypes) {
128 EList<ResourceRequirement> _requirements = appType.getRequirements();
129 ResourceRequirement _createResourceRequirement = this._cpsFactory.createResourceRequirement();
130 final Procedure1<ResourceRequirement> _function = (ResourceRequirement it_1) -> {
131 it_1.setHostType(hostType);
132 it_1.setRequiredMemory(memory);
133 it_1.setRequiredHdd(hdd);
134 };
135 ResourceRequirement _doubleArrow = ObjectExtensions.<ResourceRequirement>operator_doubleArrow(_createResourceRequirement, _function);
136 _requirements.add(_doubleArrow);
137 }
138 EList<ApplicationType> _applicationTypes = it.getApplicationTypes();
139 _applicationTypes.add(appType);
140 }
141
142 private List<HostType> createLowCpuHostTypes(final CyberPhysicalSystem it) {
143 HostType _createHostType = this.createHostType(it, 2, 8, 75);
144 HostType _createHostType_1 = this.createHostType(it, 4, 16, 150);
145 HostType _createHostType_2 = this.createHostType(it, 3, 16, 75);
146 HostType _createHostType_3 = this.createHostType(it, 6, 32, 150);
147 return Collections.<HostType>unmodifiableList(CollectionLiterals.<HostType>newArrayList(_createHostType, _createHostType_1, _createHostType_2, _createHostType_3));
148 }
149
150 private List<HostType> createHighCpuHostTypes(final CyberPhysicalSystem it) {
151 HostType _createHostType = this.createHostType(it, 2, 4, 50);
152 HostType _createHostType_1 = this.createHostType(it, 4, 8, 100);
153 return Collections.<HostType>unmodifiableList(CollectionLiterals.<HostType>newArrayList(_createHostType, _createHostType_1));
154 }
155
156 private HostType createHostType(final CyberPhysicalSystem it, final int cost, final int memory, final int hdd) {
157 HostType _xblockexpression = null;
158 {
159 HostType _createHostType = this._cpsFactory.createHostType();
160 final Procedure1<HostType> _function = (HostType it_1) -> {
161 it_1.setCost(cost);
162 it_1.setDefaultMemory(memory);
163 it_1.setDefaultHdd(hdd);
164 };
165 final HostType hostType = ObjectExtensions.<HostType>operator_doubleArrow(_createHostType, _function);
166 EList<HostType> _hostTypes = it.getHostTypes();
167 _hostTypes.add(hostType);
168 _xblockexpression = hostType;
169 }
170 return _xblockexpression;
171 }
172
173 private int nextInt(final int lower, final int upper) {
174 int _nextInt = this.random.nextInt(((upper - lower) + 1));
175 return (lower + _nextInt);
176 }
177}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.CpsMdeOptimiserMain.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.CpsMdeOptimiserMain.xtendbin
deleted file mode 100644
index b9f0df1a..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.CpsMdeOptimiserMain.xtendbin
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.NonRedundantAllocationsConstraint.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.NonRedundantAllocationsConstraint.xtendbin
deleted file mode 100644
index 86913d04..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.NonRedundantAllocationsConstraint.xtendbin
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.NotAllocatedAppInstancesConstraint.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.NotAllocatedAppInstancesConstraint.xtendbin
deleted file mode 100644
index fd33b1a1..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.NotAllocatedAppInstancesConstraint.xtendbin
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.NotSatisfiedRequirementsConstraint.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.NotSatisfiedRequirementsConstraint.xtendbin
deleted file mode 100644
index cc5c52dd..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.NotSatisfiedRequirementsConstraint.xtendbin
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.ResourceUtilizationUtil.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.ResourceUtilizationUtil.xtendbin
deleted file mode 100644
index a80b5bc3..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.ResourceUtilizationUtil.xtendbin
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.TooLowAverageHddConstraint.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.TooLowAverageHddConstraint.xtendbin
deleted file mode 100644
index 24309a53..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.TooLowAverageHddConstraint.xtendbin
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.TooLowAverageMemoryConstraint.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.TooLowAverageMemoryConstraint.xtendbin
deleted file mode 100644
index 86af43db..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.TooLowAverageMemoryConstraint.xtendbin
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.TotalCostFitnessFunction.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.TotalCostFitnessFunction.xtendbin
deleted file mode 100644
index f37b1a5c..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.TotalCostFitnessFunction.xtendbin
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.UnavailableHddConstraint.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.UnavailableHddConstraint.xtendbin
deleted file mode 100644
index eeef5142..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.UnavailableHddConstraint.xtendbin
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.UnavailableMemoryConstraint.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.UnavailableMemoryConstraint.xtendbin
deleted file mode 100644
index dd11fbd5..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.UnavailableMemoryConstraint.xtendbin
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.gitignore b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.gitignore
deleted file mode 100644
index 51a2537b..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.gitignore
+++ /dev/null
@@ -1,15 +0,0 @@
1/.TotalCostFitnessFunction.java._trace
2/.CpsMdeOptimiserMain.java._trace
3/.ExcludedOptimisationInterpreter.java._trace
4/.ExcludedMoeaOptimisation.java._trace
5/.ExcludedRun.java._trace
6/.SatisfiedRequirementsConstraint.java._trace
7/.NotSatisfiedRequirementsConstraint.java._trace
8/.NotAllocatedAppInstancesConstraint.java._trace
9/.NonRedundantAllocationsConstraint.java._trace
10/.UnavailableMemoryConstraint.java._trace
11/.ResourceUtilizationUtil.java._trace
12/.UnavailableHddConstraint.java._trace
13/.TooLowAverageMemoryConstraint.java._trace
14/.TooLowAverageHddUtilization.java._trace
15/.TooLowAverageHddConstraint.java._trace
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.java
deleted file mode 100644
index c047f255..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.java
+++ /dev/null
@@ -1,82 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo;
2
3import hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage;
4import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
5import hu.bme.mit.inf.dslreasoner.domains.cps.generator.CpsGenerator;
6import java.io.BufferedReader;
7import java.io.BufferedWriter;
8import java.io.FileReader;
9import java.io.FileWriter;
10import java.util.Collections;
11import java.util.Map;
12import java.util.Set;
13import org.eclipse.emf.common.util.URI;
14import org.eclipse.emf.ecore.EPackage;
15import org.eclipse.emf.ecore.resource.Resource;
16import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
17import org.eclipse.xtext.xbase.lib.CollectionLiterals;
18import org.eclipse.xtext.xbase.lib.Exceptions;
19import org.eclipse.xtext.xbase.lib.Pair;
20import uk.ac.kcl.inf.mdeoptimiser.interfaces.cli.Run;
21
22@SuppressWarnings("all")
23public class CpsMdeOptimiserMain {
24 private static final String PROJECT_PATH = ".";
25
26 private static final String PROBLEM_PATH = "model/problem.xmi";
27
28 private static final String MOPT_PATH = "src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/cps.mopt";
29
30 private CpsMdeOptimiserMain() {
31 new IllegalStateException("This is a static utility class and should not be instantiated directly.");
32 }
33
34 public static void main(final String[] args) {
35 try {
36 Map<String, Object> _extensionToFactoryMap = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap();
37 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl();
38 _extensionToFactoryMap.put(Resource.Factory.Registry.DEFAULT_EXTENSION, _xMIResourceFactoryImpl);
39 EPackage.Registry.INSTANCE.put(CpsPackage.eNS_URI, CpsPackage.eINSTANCE);
40 final CpsGenerator generator = new CpsGenerator(1, 4, 1);
41 final CyberPhysicalSystem problem = generator.generateCpsProblem();
42 Resource _eResource = problem.eResource();
43 _eResource.setURI(URI.createFileURI(CpsMdeOptimiserMain.PROBLEM_PATH));
44 problem.eResource().save(CollectionLiterals.<Object, Object>emptyMap());
45 Pair<String, String> _mappedTo = Pair.<String, String>of("cps.ecore", CpsPackage.eNS_URI);
46 CpsMdeOptimiserMain.fixupHenshinModel("model/cps.henshin", "model/cps_fixup.henshin", Collections.<String, String>unmodifiableMap(CollectionLiterals.<String, String>newHashMap(_mappedTo)));
47 Run.main(new String[] { "-p", CpsMdeOptimiserMain.PROJECT_PATH, "-m", CpsMdeOptimiserMain.MOPT_PATH });
48 } catch (Throwable _e) {
49 throw Exceptions.sneakyThrow(_e);
50 }
51 }
52
53 private static void fixupHenshinModel(final String originalPath, final String outputPath, final Map<String, String> remapMap) {
54 try {
55 FileReader _fileReader = new FileReader(originalPath);
56 final BufferedReader reader = new BufferedReader(_fileReader);
57 try {
58 FileWriter _fileWriter = new FileWriter(outputPath);
59 final BufferedWriter writer = new BufferedWriter(_fileWriter);
60 try {
61 String line = null;
62 while (((line = reader.readLine()) != null)) {
63 {
64 Set<Map.Entry<String, String>> _entrySet = remapMap.entrySet();
65 for (final Map.Entry<String, String> entry : _entrySet) {
66 line = line.replace(entry.getKey(), entry.getValue());
67 }
68 writer.write(line);
69 writer.write("\n");
70 }
71 }
72 } finally {
73 writer.close();
74 }
75 } finally {
76 reader.close();
77 }
78 } catch (Throwable _e) {
79 throw Exceptions.sneakyThrow(_e);
80 }
81 }
82}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NonRedundantAllocationsConstraint.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NonRedundantAllocationsConstraint.java
deleted file mode 100644
index 6100d821..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NonRedundantAllocationsConstraint.java
+++ /dev/null
@@ -1,54 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo;
2
3import com.google.common.collect.HashMultiset;
4import com.google.common.collect.Multiset;
5import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance;
6import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
7import hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance;
8import hu.bme.mit.inf.dslreasoner.domains.cps.HostType;
9import hu.bme.mit.inf.dslreasoner.domains.cps.Requirement;
10import java.util.Set;
11import org.eclipse.emf.common.util.EList;
12import org.eclipse.emf.ecore.EObject;
13import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction;
14import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution;
15
16@SuppressWarnings("all")
17public class NonRedundantAllocationsConstraint implements IGuidanceFunction {
18 @Override
19 public String getName() {
20 return "NonRedundantAllocations";
21 }
22
23 @Override
24 public double computeFitness(final Solution solution) {
25 int _xblockexpression = (int) 0;
26 {
27 EObject _model = solution.getModel();
28 final CyberPhysicalSystem cps = ((CyberPhysicalSystem) _model);
29 int cost = 0;
30 EList<HostType> _hostTypes = cps.getHostTypes();
31 for (final HostType hostType : _hostTypes) {
32 EList<HostInstance> _instances = hostType.getInstances();
33 for (final HostInstance host : _instances) {
34 {
35 final HashMultiset<Requirement> bins = HashMultiset.<Requirement>create();
36 EList<ApplicationInstance> _applications = host.getApplications();
37 for (final ApplicationInstance app : _applications) {
38 bins.add(app.getRequirement());
39 }
40 Set<Multiset.Entry<Requirement>> _entrySet = bins.entrySet();
41 for (final Multiset.Entry<Requirement> entry : _entrySet) {
42 int _cost = cost;
43 int _count = entry.getCount();
44 int _minus = (_count - 1);
45 cost = (_cost + _minus);
46 }
47 }
48 }
49 }
50 _xblockexpression = cost;
51 }
52 return _xblockexpression;
53 }
54}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotAllocatedAppInstancesConstraint.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotAllocatedAppInstancesConstraint.java
deleted file mode 100644
index e9ade5de..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotAllocatedAppInstancesConstraint.java
+++ /dev/null
@@ -1,47 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo;
2
3import com.google.common.base.Objects;
4import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance;
5import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationType;
6import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
7import hu.bme.mit.inf.dslreasoner.domains.cps.HostType;
8import hu.bme.mit.inf.dslreasoner.domains.cps.ResourceRequirement;
9import org.eclipse.emf.common.util.EList;
10import org.eclipse.emf.ecore.EObject;
11import org.eclipse.xtext.xbase.lib.Functions.Function1;
12import org.eclipse.xtext.xbase.lib.IterableExtensions;
13import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction;
14import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution;
15
16@SuppressWarnings("all")
17public class NotAllocatedAppInstancesConstraint implements IGuidanceFunction {
18 @Override
19 public String getName() {
20 return "NotAllocatedAppInstances";
21 }
22
23 @Override
24 public double computeFitness(final Solution solution) {
25 int _xblockexpression = (int) 0;
26 {
27 EObject _model = solution.getModel();
28 final CyberPhysicalSystem cps = ((CyberPhysicalSystem) _model);
29 int cost = 0;
30 EList<ApplicationType> _applicationTypes = cps.getApplicationTypes();
31 for (final ApplicationType appType : _applicationTypes) {
32 EList<ApplicationInstance> _instances = appType.getInstances();
33 for (final ApplicationInstance app : _instances) {
34 if (((app.getAllocatedTo() == null) || (!IterableExtensions.<ResourceRequirement>exists(appType.getRequirements(), ((Function1<ResourceRequirement, Boolean>) (ResourceRequirement it) -> {
35 HostType _hostType = it.getHostType();
36 HostType _type = app.getAllocatedTo().getType();
37 return Boolean.valueOf(Objects.equal(_hostType, _type));
38 }))))) {
39 cost++;
40 }
41 }
42 }
43 _xblockexpression = cost;
44 }
45 return _xblockexpression;
46 }
47}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotSatisfiedRequirementsConstraint.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotSatisfiedRequirementsConstraint.java
deleted file mode 100644
index 34f73952..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotSatisfiedRequirementsConstraint.java
+++ /dev/null
@@ -1,55 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo;
2
3import com.google.common.base.Objects;
4import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance;
5import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationType;
6import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
7import hu.bme.mit.inf.dslreasoner.domains.cps.Request;
8import hu.bme.mit.inf.dslreasoner.domains.cps.Requirement;
9import org.eclipse.emf.common.util.EList;
10import org.eclipse.emf.ecore.EObject;
11import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction;
12import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution;
13
14@SuppressWarnings("all")
15public class NotSatisfiedRequirementsConstraint implements IGuidanceFunction {
16 @Override
17 public String getName() {
18 return "NotSatisfiedRequirements";
19 }
20
21 @Override
22 public double computeFitness(final Solution solution) {
23 int _xblockexpression = (int) 0;
24 {
25 EObject _model = solution.getModel();
26 final CyberPhysicalSystem cps = ((CyberPhysicalSystem) _model);
27 int cost = 0;
28 EList<Request> _requests = cps.getRequests();
29 for (final Request request : _requests) {
30 EList<Requirement> _requirements = request.getRequirements();
31 for (final Requirement requirement : _requirements) {
32 {
33 int _cost = cost;
34 int _count = requirement.getCount();
35 int _size = requirement.getInstances().size();
36 int _minus = (_count - _size);
37 int _abs = Math.abs(_minus);
38 cost = (_cost + _abs);
39 EList<ApplicationInstance> _instances = requirement.getInstances();
40 for (final ApplicationInstance app : _instances) {
41 ApplicationType _type = app.getType();
42 ApplicationType _type_1 = requirement.getType();
43 boolean _notEquals = (!Objects.equal(_type, _type_1));
44 if (_notEquals) {
45 cost++;
46 }
47 }
48 }
49 }
50 }
51 _xblockexpression = cost;
52 }
53 return _xblockexpression;
54 }
55}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ResourceUtilizationUtil.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ResourceUtilizationUtil.java
deleted file mode 100644
index a03213e3..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ResourceUtilizationUtil.java
+++ /dev/null
@@ -1,67 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo;
2
3import com.google.common.base.Objects;
4import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance;
5import hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance;
6import hu.bme.mit.inf.dslreasoner.domains.cps.HostType;
7import hu.bme.mit.inf.dslreasoner.domains.cps.ResourceRequirement;
8import org.eclipse.emf.common.util.EList;
9import org.eclipse.xtext.xbase.lib.Functions.Function1;
10import org.eclipse.xtext.xbase.lib.IterableExtensions;
11
12@SuppressWarnings("all")
13public class ResourceUtilizationUtil {
14 private ResourceUtilizationUtil() {
15 new IllegalStateException("This is a static utility class and should not be instantiated directly.");
16 }
17
18 public static int getMemoryUtilization(final HostInstance host) {
19 int _xblockexpression = (int) 0;
20 {
21 int utilization = 0;
22 EList<ApplicationInstance> _applications = host.getApplications();
23 for (final ApplicationInstance app : _applications) {
24 {
25 final Function1<ResourceRequirement, Boolean> _function = (ResourceRequirement it) -> {
26 HostType _hostType = it.getHostType();
27 HostType _type = host.getType();
28 return Boolean.valueOf(Objects.equal(_hostType, _type));
29 };
30 final ResourceRequirement req = IterableExtensions.<ResourceRequirement>findFirst(app.getType().getRequirements(), _function);
31 if ((req != null)) {
32 int _utilization = utilization;
33 int _requiredMemory = req.getRequiredMemory();
34 utilization = (_utilization + _requiredMemory);
35 }
36 }
37 }
38 _xblockexpression = utilization;
39 }
40 return _xblockexpression;
41 }
42
43 public static int getHddUtilization(final HostInstance host) {
44 int _xblockexpression = (int) 0;
45 {
46 int utilization = 0;
47 EList<ApplicationInstance> _applications = host.getApplications();
48 for (final ApplicationInstance app : _applications) {
49 {
50 final Function1<ResourceRequirement, Boolean> _function = (ResourceRequirement it) -> {
51 HostType _hostType = it.getHostType();
52 HostType _type = host.getType();
53 return Boolean.valueOf(Objects.equal(_hostType, _type));
54 };
55 final ResourceRequirement req = IterableExtensions.<ResourceRequirement>findFirst(app.getType().getRequirements(), _function);
56 if ((req != null)) {
57 int _utilization = utilization;
58 int _requiredHdd = req.getRequiredHdd();
59 utilization = (_utilization + _requiredHdd);
60 }
61 }
62 }
63 _xblockexpression = utilization;
64 }
65 return _xblockexpression;
66 }
67}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TooLowAverageHddConstraint.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TooLowAverageHddConstraint.java
deleted file mode 100644
index 0ff3c795..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TooLowAverageHddConstraint.java
+++ /dev/null
@@ -1,59 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo;
2
3import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
4import hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance;
5import hu.bme.mit.inf.dslreasoner.domains.cps.HostType;
6import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ResourceUtilizationUtil;
7import org.eclipse.emf.common.util.EList;
8import org.eclipse.emf.ecore.EObject;
9import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction;
10import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution;
11
12@SuppressWarnings("all")
13public class TooLowAverageHddConstraint implements IGuidanceFunction {
14 private static final double THRESHOLD = 0.25;
15
16 @Override
17 public String getName() {
18 return "TooLowAverageHdd";
19 }
20
21 @Override
22 public double computeFitness(final Solution solution) {
23 double _xblockexpression = (double) 0;
24 {
25 EObject _model = solution.getModel();
26 final CyberPhysicalSystem cps = ((CyberPhysicalSystem) _model);
27 double sumUtilization = 0;
28 int numHosts = 0;
29 EList<HostType> _hostTypes = cps.getHostTypes();
30 for (final HostType hostType : _hostTypes) {
31 {
32 int _numHosts = numHosts;
33 int _size = hostType.getInstances().size();
34 numHosts = (_numHosts + _size);
35 EList<HostInstance> _instances = hostType.getInstances();
36 for (final HostInstance host : _instances) {
37 {
38 final int utilization = ResourceUtilizationUtil.getHddUtilization(host);
39 double _sumUtilization = sumUtilization;
40 int _defaultHdd = hostType.getDefaultHdd();
41 double _divide = (((double) utilization) / _defaultHdd);
42 sumUtilization = (_sumUtilization + _divide);
43 }
44 }
45 }
46 }
47 final double averageUtilization = (sumUtilization / numHosts);
48 final double difference = (TooLowAverageHddConstraint.THRESHOLD - averageUtilization);
49 double _xifexpression = (double) 0;
50 if ((difference > 0)) {
51 _xifexpression = difference;
52 } else {
53 _xifexpression = 0;
54 }
55 _xblockexpression = _xifexpression;
56 }
57 return _xblockexpression;
58 }
59}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TooLowAverageMemoryConstraint.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TooLowAverageMemoryConstraint.java
deleted file mode 100644
index 341925bc..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TooLowAverageMemoryConstraint.java
+++ /dev/null
@@ -1,59 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo;
2
3import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
4import hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance;
5import hu.bme.mit.inf.dslreasoner.domains.cps.HostType;
6import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ResourceUtilizationUtil;
7import org.eclipse.emf.common.util.EList;
8import org.eclipse.emf.ecore.EObject;
9import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction;
10import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution;
11
12@SuppressWarnings("all")
13public class TooLowAverageMemoryConstraint implements IGuidanceFunction {
14 private static final double THRESHOLD = 0.25;
15
16 @Override
17 public String getName() {
18 return "TooLowAverageMemory";
19 }
20
21 @Override
22 public double computeFitness(final Solution solution) {
23 double _xblockexpression = (double) 0;
24 {
25 EObject _model = solution.getModel();
26 final CyberPhysicalSystem cps = ((CyberPhysicalSystem) _model);
27 double sumUtilization = 0;
28 int numHosts = 0;
29 EList<HostType> _hostTypes = cps.getHostTypes();
30 for (final HostType hostType : _hostTypes) {
31 {
32 int _numHosts = numHosts;
33 int _size = hostType.getInstances().size();
34 numHosts = (_numHosts + _size);
35 EList<HostInstance> _instances = hostType.getInstances();
36 for (final HostInstance host : _instances) {
37 {
38 final int utilization = ResourceUtilizationUtil.getMemoryUtilization(host);
39 double _sumUtilization = sumUtilization;
40 int _defaultMemory = hostType.getDefaultMemory();
41 double _divide = (((double) utilization) / _defaultMemory);
42 sumUtilization = (_sumUtilization + _divide);
43 }
44 }
45 }
46 }
47 final double averageUtilization = (sumUtilization / numHosts);
48 final double difference = (TooLowAverageMemoryConstraint.THRESHOLD - averageUtilization);
49 double _xifexpression = (double) 0;
50 if ((difference > 0)) {
51 _xifexpression = difference;
52 } else {
53 _xifexpression = 0;
54 }
55 _xblockexpression = _xifexpression;
56 }
57 return _xblockexpression;
58 }
59}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TotalCostFitnessFunction.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TotalCostFitnessFunction.java
deleted file mode 100644
index 7bb80ca8..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TotalCostFitnessFunction.java
+++ /dev/null
@@ -1,44 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo;
2
3import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationType;
4import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
5import hu.bme.mit.inf.dslreasoner.domains.cps.HostType;
6import org.eclipse.emf.common.util.EList;
7import org.eclipse.emf.ecore.EObject;
8import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction;
9import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution;
10
11@SuppressWarnings("all")
12public class TotalCostFitnessFunction implements IGuidanceFunction {
13 @Override
14 public String getName() {
15 return "TotalCost";
16 }
17
18 @Override
19 public double computeFitness(final Solution solution) {
20 int _xblockexpression = (int) 0;
21 {
22 EObject _model = solution.getModel();
23 final CyberPhysicalSystem cps = ((CyberPhysicalSystem) _model);
24 int cost = 0;
25 EList<ApplicationType> _applicationTypes = cps.getApplicationTypes();
26 for (final ApplicationType appType : _applicationTypes) {
27 int _cost = cost;
28 int _size = appType.getInstances().size();
29 int _multiply = (5 * _size);
30 cost = (_cost + _multiply);
31 }
32 EList<HostType> _hostTypes = cps.getHostTypes();
33 for (final HostType hostType : _hostTypes) {
34 int _cost_1 = cost;
35 int _cost_2 = hostType.getCost();
36 int _size_1 = hostType.getInstances().size();
37 int _multiply_1 = (_cost_2 * _size_1);
38 cost = (_cost_1 + _multiply_1);
39 }
40 _xblockexpression = cost;
41 }
42 return _xblockexpression;
43 }
44}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableHddConstraint.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableHddConstraint.java
deleted file mode 100644
index 00d1c4e6..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableHddConstraint.java
+++ /dev/null
@@ -1,45 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo;
2
3import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
4import hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance;
5import hu.bme.mit.inf.dslreasoner.domains.cps.HostType;
6import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ResourceUtilizationUtil;
7import org.eclipse.emf.common.util.EList;
8import org.eclipse.emf.ecore.EObject;
9import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction;
10import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution;
11
12@SuppressWarnings("all")
13public class UnavailableHddConstraint implements IGuidanceFunction {
14 @Override
15 public String getName() {
16 return "UnavailableHdd";
17 }
18
19 @Override
20 public double computeFitness(final Solution solution) {
21 int _xblockexpression = (int) 0;
22 {
23 EObject _model = solution.getModel();
24 final CyberPhysicalSystem cps = ((CyberPhysicalSystem) _model);
25 int cost = 0;
26 EList<HostType> _hostTypes = cps.getHostTypes();
27 for (final HostType hostType : _hostTypes) {
28 EList<HostInstance> _instances = hostType.getInstances();
29 for (final HostInstance host : _instances) {
30 {
31 final int utilization = ResourceUtilizationUtil.getHddUtilization(host);
32 int _defaultHdd = hostType.getDefaultHdd();
33 final int difference = (utilization - _defaultHdd);
34 if ((difference > 0)) {
35 int _cost = cost;
36 cost = (_cost + difference);
37 }
38 }
39 }
40 }
41 _xblockexpression = cost;
42 }
43 return _xblockexpression;
44 }
45}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableMemoryConstraint.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableMemoryConstraint.java
deleted file mode 100644
index a9be9f1f..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableMemoryConstraint.java
+++ /dev/null
@@ -1,45 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo;
2
3import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
4import hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance;
5import hu.bme.mit.inf.dslreasoner.domains.cps.HostType;
6import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ResourceUtilizationUtil;
7import org.eclipse.emf.common.util.EList;
8import org.eclipse.emf.ecore.EObject;
9import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction;
10import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution;
11
12@SuppressWarnings("all")
13public class UnavailableMemoryConstraint implements IGuidanceFunction {
14 @Override
15 public String getName() {
16 return "UnavailableMemory";
17 }
18
19 @Override
20 public double computeFitness(final Solution solution) {
21 int _xblockexpression = (int) 0;
22 {
23 EObject _model = solution.getModel();
24 final CyberPhysicalSystem cps = ((CyberPhysicalSystem) _model);
25 int cost = 0;
26 EList<HostType> _hostTypes = cps.getHostTypes();
27 for (final HostType hostType : _hostTypes) {
28 EList<HostInstance> _instances = hostType.getInstances();
29 for (final HostInstance host : _instances) {
30 {
31 final int utilization = ResourceUtilizationUtil.getMemoryUtilization(host);
32 int _defaultMemory = hostType.getDefaultMemory();
33 final int difference = (utilization - _defaultMemory);
34 if ((difference > 0)) {
35 int _cost = cost;
36 cost = (_cost + difference);
37 }
38 }
39 }
40 }
41 _xblockexpression = cost;
42 }
43 return _xblockexpression;
44 }
45}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.gitignore b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.gitignore
index ae3c1726..7c70320a 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.gitignore
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.gitignore
@@ -1 +1,5 @@
1/bin/ 1/bin/
2/mdeo-results/
3/outputs/
4/src-gen/
5/xtend-gen/
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/META-INF/MANIFEST.MF b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/META-INF/MANIFEST.MF
index 3ee950cb..36d729b4 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/META-INF/MANIFEST.MF
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/META-INF/MANIFEST.MF
@@ -34,7 +34,8 @@ Require-Bundle: org.eclipse.viatra.addon.querybasedfeatures.runtime,
34 org.apache.commons.lang3;bundle-version="3.8.1", 34 org.apache.commons.lang3;bundle-version="3.8.1",
35 com.google.inject;bundle-version="3.0.0", 35 com.google.inject;bundle-version="3.0.0",
36 org.sidiff.common.henshin;bundle-version="1.0.0", 36 org.sidiff.common.henshin;bundle-version="1.0.0",
37 org.sidiff.serge;bundle-version="1.0.0" 37 org.sidiff.serge;bundle-version="1.0.0",
38 org.eclipse.viatra.query.runtime.rete;bundle-version="2.2.0"
38Import-Package: org.apache.log4j 39Import-Package: org.apache.log4j
39Automatic-Module-Name: hu.bme.mit.inf.dslreasoner.domains.satellite 40Automatic-Module-Name: hu.bme.mit.inf.dslreasoner.domains.satellite
40Bundle-ActivationPolicy: lazy 41Bundle-ActivationPolicy: lazy
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CommSubsystem.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CommSubsystem.java
index 3b9d7ecf..90bca78c 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CommSubsystem.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CommSubsystem.java
@@ -2,6 +2,7 @@
2 */ 2 */
3package satellite; 3package satellite;
4 4
5import org.eclipse.emf.common.util.EList;
5import org.eclipse.emf.ecore.EObject; 6import org.eclipse.emf.ecore.EObject;
6 7
7/** 8/**
@@ -14,6 +15,7 @@ import org.eclipse.emf.ecore.EObject;
14 * </p> 15 * </p>
15 * <ul> 16 * <ul>
16 * <li>{@link satellite.CommSubsystem#getTarget <em>Target</em>}</li> 17 * <li>{@link satellite.CommSubsystem#getTarget <em>Target</em>}</li>
18 * <li>{@link satellite.CommSubsystem#getSource <em>Source</em>}</li>
17 * </ul> 19 * </ul>
18 * 20 *
19 * @see satellite.SatellitePackage#getCommSubsystem() 21 * @see satellite.SatellitePackage#getCommSubsystem()
@@ -24,12 +26,14 @@ public interface CommSubsystem extends EObject {
24 26
25 /** 27 /**
26 * Returns the value of the '<em><b>Target</b></em>' reference. 28 * Returns the value of the '<em><b>Target</b></em>' reference.
29 * It is bidirectional and its opposite is '{@link satellite.CommSubsystem#getSource <em>Source</em>}'.
27 * <!-- begin-user-doc --> 30 * <!-- begin-user-doc -->
28 * <!-- end-user-doc --> 31 * <!-- end-user-doc -->
29 * @return the value of the '<em>Target</em>' reference. 32 * @return the value of the '<em>Target</em>' reference.
30 * @see #setTarget(CommSubsystem) 33 * @see #setTarget(CommSubsystem)
31 * @see satellite.SatellitePackage#getCommSubsystem_Target() 34 * @see satellite.SatellitePackage#getCommSubsystem_Target()
32 * @model 35 * @see satellite.CommSubsystem#getSource
36 * @model opposite="source"
33 * @generated 37 * @generated
34 */ 38 */
35 CommSubsystem getTarget(); 39 CommSubsystem getTarget();
@@ -44,4 +48,18 @@ public interface CommSubsystem extends EObject {
44 */ 48 */
45 void setTarget(CommSubsystem value); 49 void setTarget(CommSubsystem value);
46 50
51 /**
52 * Returns the value of the '<em><b>Source</b></em>' reference list.
53 * The list contents are of type {@link satellite.CommSubsystem}.
54 * It is bidirectional and its opposite is '{@link satellite.CommSubsystem#getTarget <em>Target</em>}'.
55 * <!-- begin-user-doc -->
56 * <!-- end-user-doc -->
57 * @return the value of the '<em>Source</em>' reference list.
58 * @see satellite.SatellitePackage#getCommSubsystem_Source()
59 * @see satellite.CommSubsystem#getTarget
60 * @model opposite="target"
61 * @generated
62 */
63 EList<CommSubsystem> getSource();
64
47} // CommSubsystem 65} // CommSubsystem
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SatellitePackage.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SatellitePackage.java
index 64a60d6a..7be4ef84 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SatellitePackage.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SatellitePackage.java
@@ -297,13 +297,22 @@ public interface SatellitePackage extends EPackage {
297 int COMM_SUBSYSTEM__TARGET = 0; 297 int COMM_SUBSYSTEM__TARGET = 0;
298 298
299 /** 299 /**
300 * The feature id for the '<em><b>Source</b></em>' reference list.
301 * <!-- begin-user-doc -->
302 * <!-- end-user-doc -->
303 * @generated
304 * @ordered
305 */
306 int COMM_SUBSYSTEM__SOURCE = 1;
307
308 /**
300 * The number of structural features of the '<em>Comm Subsystem</em>' class. 309 * The number of structural features of the '<em>Comm Subsystem</em>' class.
301 * <!-- begin-user-doc --> 310 * <!-- begin-user-doc -->
302 * <!-- end-user-doc --> 311 * <!-- end-user-doc -->
303 * @generated 312 * @generated
304 * @ordered 313 * @ordered
305 */ 314 */
306 int COMM_SUBSYSTEM_FEATURE_COUNT = 1; 315 int COMM_SUBSYSTEM_FEATURE_COUNT = 2;
307 316
308 /** 317 /**
309 * The number of operations of the '<em>Comm Subsystem</em>' class. 318 * The number of operations of the '<em>Comm Subsystem</em>' class.
@@ -574,6 +583,15 @@ public interface SatellitePackage extends EPackage {
574 int UHF_COMM_SUBSYSTEM__TARGET = COMM_SUBSYSTEM__TARGET; 583 int UHF_COMM_SUBSYSTEM__TARGET = COMM_SUBSYSTEM__TARGET;
575 584
576 /** 585 /**
586 * The feature id for the '<em><b>Source</b></em>' reference list.
587 * <!-- begin-user-doc -->
588 * <!-- end-user-doc -->
589 * @generated
590 * @ordered
591 */
592 int UHF_COMM_SUBSYSTEM__SOURCE = COMM_SUBSYSTEM__SOURCE;
593
594 /**
577 * The number of structural features of the '<em>UHF Comm Subsystem</em>' class. 595 * The number of structural features of the '<em>UHF Comm Subsystem</em>' class.
578 * <!-- begin-user-doc --> 596 * <!-- begin-user-doc -->
579 * <!-- end-user-doc --> 597 * <!-- end-user-doc -->
@@ -611,6 +629,15 @@ public interface SatellitePackage extends EPackage {
611 int XCOMM_SUBSYSTEM__TARGET = COMM_SUBSYSTEM__TARGET; 629 int XCOMM_SUBSYSTEM__TARGET = COMM_SUBSYSTEM__TARGET;
612 630
613 /** 631 /**
632 * The feature id for the '<em><b>Source</b></em>' reference list.
633 * <!-- begin-user-doc -->
634 * <!-- end-user-doc -->
635 * @generated
636 * @ordered
637 */
638 int XCOMM_SUBSYSTEM__SOURCE = COMM_SUBSYSTEM__SOURCE;
639
640 /**
614 * The number of structural features of the '<em>XComm Subsystem</em>' class. 641 * The number of structural features of the '<em>XComm Subsystem</em>' class.
615 * <!-- begin-user-doc --> 642 * <!-- begin-user-doc -->
616 * <!-- end-user-doc --> 643 * <!-- end-user-doc -->
@@ -648,6 +675,15 @@ public interface SatellitePackage extends EPackage {
648 int KA_COMM_SUBSYSTEM__TARGET = COMM_SUBSYSTEM__TARGET; 675 int KA_COMM_SUBSYSTEM__TARGET = COMM_SUBSYSTEM__TARGET;
649 676
650 /** 677 /**
678 * The feature id for the '<em><b>Source</b></em>' reference list.
679 * <!-- begin-user-doc -->
680 * <!-- end-user-doc -->
681 * @generated
682 * @ordered
683 */
684 int KA_COMM_SUBSYSTEM__SOURCE = COMM_SUBSYSTEM__SOURCE;
685
686 /**
651 * The number of structural features of the '<em>Ka Comm Subsystem</em>' class. 687 * The number of structural features of the '<em>Ka Comm Subsystem</em>' class.
652 * <!-- begin-user-doc --> 688 * <!-- begin-user-doc -->
653 * <!-- end-user-doc --> 689 * <!-- end-user-doc -->
@@ -792,6 +828,17 @@ public interface SatellitePackage extends EPackage {
792 EReference getCommSubsystem_Target(); 828 EReference getCommSubsystem_Target();
793 829
794 /** 830 /**
831 * Returns the meta object for the reference list '{@link satellite.CommSubsystem#getSource <em>Source</em>}'.
832 * <!-- begin-user-doc -->
833 * <!-- end-user-doc -->
834 * @return the meta object for the reference list '<em>Source</em>'.
835 * @see satellite.CommSubsystem#getSource()
836 * @see #getCommSubsystem()
837 * @generated
838 */
839 EReference getCommSubsystem_Source();
840
841 /**
795 * Returns the meta object for class '{@link satellite.Payload <em>Payload</em>}'. 842 * Returns the meta object for class '{@link satellite.Payload <em>Payload</em>}'.
796 * <!-- begin-user-doc --> 843 * <!-- begin-user-doc -->
797 * <!-- end-user-doc --> 844 * <!-- end-user-doc -->
@@ -1014,6 +1061,14 @@ public interface SatellitePackage extends EPackage {
1014 EReference COMM_SUBSYSTEM__TARGET = eINSTANCE.getCommSubsystem_Target(); 1061 EReference COMM_SUBSYSTEM__TARGET = eINSTANCE.getCommSubsystem_Target();
1015 1062
1016 /** 1063 /**
1064 * The meta object literal for the '<em><b>Source</b></em>' reference list feature.
1065 * <!-- begin-user-doc -->
1066 * <!-- end-user-doc -->
1067 * @generated
1068 */
1069 EReference COMM_SUBSYSTEM__SOURCE = eINSTANCE.getCommSubsystem_Source();
1070
1071 /**
1017 * The meta object literal for the '{@link satellite.impl.PayloadImpl <em>Payload</em>}' class. 1072 * The meta object literal for the '{@link satellite.impl.PayloadImpl <em>Payload</em>}' class.
1018 * <!-- begin-user-doc --> 1073 * <!-- begin-user-doc -->
1019 * <!-- end-user-doc --> 1074 * <!-- end-user-doc -->
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CommSubsystemImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CommSubsystemImpl.java
index cdfbd6de..21e385a8 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CommSubsystemImpl.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CommSubsystemImpl.java
@@ -2,11 +2,16 @@
2 */ 2 */
3package satellite.impl; 3package satellite.impl;
4 4
5import java.util.Collection;
5import org.eclipse.emf.common.notify.Notification; 6import org.eclipse.emf.common.notify.Notification;
7import org.eclipse.emf.common.notify.NotificationChain;
8import org.eclipse.emf.common.util.EList;
6import org.eclipse.emf.ecore.EClass; 9import org.eclipse.emf.ecore.EClass;
7import org.eclipse.emf.ecore.InternalEObject; 10import org.eclipse.emf.ecore.InternalEObject;
8import org.eclipse.emf.ecore.impl.ENotificationImpl; 11import org.eclipse.emf.ecore.impl.ENotificationImpl;
9import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; 12import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
13import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
14import org.eclipse.emf.ecore.util.InternalEList;
10import satellite.CommSubsystem; 15import satellite.CommSubsystem;
11import satellite.SatellitePackage; 16import satellite.SatellitePackage;
12 17
@@ -19,6 +24,7 @@ import satellite.SatellitePackage;
19 * </p> 24 * </p>
20 * <ul> 25 * <ul>
21 * <li>{@link satellite.impl.CommSubsystemImpl#getTarget <em>Target</em>}</li> 26 * <li>{@link satellite.impl.CommSubsystemImpl#getTarget <em>Target</em>}</li>
27 * <li>{@link satellite.impl.CommSubsystemImpl#getSource <em>Source</em>}</li>
22 * </ul> 28 * </ul>
23 * 29 *
24 * @generated 30 * @generated
@@ -35,6 +41,16 @@ public abstract class CommSubsystemImpl extends MinimalEObjectImpl.Container imp
35 protected CommSubsystem target; 41 protected CommSubsystem target;
36 42
37 /** 43 /**
44 * The cached value of the '{@link #getSource() <em>Source</em>}' reference list.
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @see #getSource()
48 * @generated
49 * @ordered
50 */
51 protected EList<CommSubsystem> source;
52
53 /**
38 * <!-- begin-user-doc --> 54 * <!-- begin-user-doc -->
39 * <!-- end-user-doc --> 55 * <!-- end-user-doc -->
40 * @generated 56 * @generated
@@ -86,13 +102,91 @@ public abstract class CommSubsystemImpl extends MinimalEObjectImpl.Container imp
86 * <!-- end-user-doc --> 102 * <!-- end-user-doc -->
87 * @generated 103 * @generated
88 */ 104 */
89 @Override 105 public NotificationChain basicSetTarget(CommSubsystem newTarget, NotificationChain msgs) {
90 public void setTarget(CommSubsystem newTarget) {
91 CommSubsystem oldTarget = target; 106 CommSubsystem oldTarget = target;
92 target = newTarget; 107 target = newTarget;
93 if (eNotificationRequired()) 108 if (eNotificationRequired()) {
94 eNotify(new ENotificationImpl(this, Notification.SET, SatellitePackage.COMM_SUBSYSTEM__TARGET, oldTarget, 109 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
95 target)); 110 SatellitePackage.COMM_SUBSYSTEM__TARGET, oldTarget, newTarget);
111 if (msgs == null)
112 msgs = notification;
113 else
114 msgs.add(notification);
115 }
116 return msgs;
117 }
118
119 /**
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @generated
123 */
124 @Override
125 public void setTarget(CommSubsystem newTarget) {
126 if (newTarget != target) {
127 NotificationChain msgs = null;
128 if (target != null)
129 msgs = ((InternalEObject) target).eInverseRemove(this, SatellitePackage.COMM_SUBSYSTEM__SOURCE,
130 CommSubsystem.class, msgs);
131 if (newTarget != null)
132 msgs = ((InternalEObject) newTarget).eInverseAdd(this, SatellitePackage.COMM_SUBSYSTEM__SOURCE,
133 CommSubsystem.class, msgs);
134 msgs = basicSetTarget(newTarget, msgs);
135 if (msgs != null)
136 msgs.dispatch();
137 } else if (eNotificationRequired())
138 eNotify(new ENotificationImpl(this, Notification.SET, SatellitePackage.COMM_SUBSYSTEM__TARGET, newTarget,
139 newTarget));
140 }
141
142 /**
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @generated
146 */
147 @Override
148 public EList<CommSubsystem> getSource() {
149 if (source == null) {
150 source = new EObjectWithInverseResolvingEList<CommSubsystem>(CommSubsystem.class, this,
151 SatellitePackage.COMM_SUBSYSTEM__SOURCE, SatellitePackage.COMM_SUBSYSTEM__TARGET);
152 }
153 return source;
154 }
155
156 /**
157 * <!-- begin-user-doc -->
158 * <!-- end-user-doc -->
159 * @generated
160 */
161 @SuppressWarnings("unchecked")
162 @Override
163 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
164 switch (featureID) {
165 case SatellitePackage.COMM_SUBSYSTEM__TARGET:
166 if (target != null)
167 msgs = ((InternalEObject) target).eInverseRemove(this, SatellitePackage.COMM_SUBSYSTEM__SOURCE,
168 CommSubsystem.class, msgs);
169 return basicSetTarget((CommSubsystem) otherEnd, msgs);
170 case SatellitePackage.COMM_SUBSYSTEM__SOURCE:
171 return ((InternalEList<InternalEObject>) (InternalEList<?>) getSource()).basicAdd(otherEnd, msgs);
172 }
173 return super.eInverseAdd(otherEnd, featureID, msgs);
174 }
175
176 /**
177 * <!-- begin-user-doc -->
178 * <!-- end-user-doc -->
179 * @generated
180 */
181 @Override
182 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
183 switch (featureID) {
184 case SatellitePackage.COMM_SUBSYSTEM__TARGET:
185 return basicSetTarget(null, msgs);
186 case SatellitePackage.COMM_SUBSYSTEM__SOURCE:
187 return ((InternalEList<?>) getSource()).basicRemove(otherEnd, msgs);
188 }
189 return super.eInverseRemove(otherEnd, featureID, msgs);
96 } 190 }
97 191
98 /** 192 /**
@@ -107,6 +201,8 @@ public abstract class CommSubsystemImpl extends MinimalEObjectImpl.Container imp
107 if (resolve) 201 if (resolve)
108 return getTarget(); 202 return getTarget();
109 return basicGetTarget(); 203 return basicGetTarget();
204 case SatellitePackage.COMM_SUBSYSTEM__SOURCE:
205 return getSource();
110 } 206 }
111 return super.eGet(featureID, resolve, coreType); 207 return super.eGet(featureID, resolve, coreType);
112 } 208 }
@@ -116,12 +212,17 @@ public abstract class CommSubsystemImpl extends MinimalEObjectImpl.Container imp
116 * <!-- end-user-doc --> 212 * <!-- end-user-doc -->
117 * @generated 213 * @generated
118 */ 214 */
215 @SuppressWarnings("unchecked")
119 @Override 216 @Override
120 public void eSet(int featureID, Object newValue) { 217 public void eSet(int featureID, Object newValue) {
121 switch (featureID) { 218 switch (featureID) {
122 case SatellitePackage.COMM_SUBSYSTEM__TARGET: 219 case SatellitePackage.COMM_SUBSYSTEM__TARGET:
123 setTarget((CommSubsystem) newValue); 220 setTarget((CommSubsystem) newValue);
124 return; 221 return;
222 case SatellitePackage.COMM_SUBSYSTEM__SOURCE:
223 getSource().clear();
224 getSource().addAll((Collection<? extends CommSubsystem>) newValue);
225 return;
125 } 226 }
126 super.eSet(featureID, newValue); 227 super.eSet(featureID, newValue);
127 } 228 }
@@ -137,6 +238,9 @@ public abstract class CommSubsystemImpl extends MinimalEObjectImpl.Container imp
137 case SatellitePackage.COMM_SUBSYSTEM__TARGET: 238 case SatellitePackage.COMM_SUBSYSTEM__TARGET:
138 setTarget((CommSubsystem) null); 239 setTarget((CommSubsystem) null);
139 return; 240 return;
241 case SatellitePackage.COMM_SUBSYSTEM__SOURCE:
242 getSource().clear();
243 return;
140 } 244 }
141 super.eUnset(featureID); 245 super.eUnset(featureID);
142 } 246 }
@@ -151,6 +255,8 @@ public abstract class CommSubsystemImpl extends MinimalEObjectImpl.Container imp
151 switch (featureID) { 255 switch (featureID) {
152 case SatellitePackage.COMM_SUBSYSTEM__TARGET: 256 case SatellitePackage.COMM_SUBSYSTEM__TARGET:
153 return target != null; 257 return target != null;
258 case SatellitePackage.COMM_SUBSYSTEM__SOURCE:
259 return source != null && !source.isEmpty();
154 } 260 }
155 return super.eIsSet(featureID); 261 return super.eIsSet(featureID);
156 } 262 }
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SatellitePackageImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SatellitePackageImpl.java
index e3e20e0c..17212a96 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SatellitePackageImpl.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SatellitePackageImpl.java
@@ -328,6 +328,16 @@ public class SatellitePackageImpl extends EPackageImpl implements SatellitePacka
328 * @generated 328 * @generated
329 */ 329 */
330 @Override 330 @Override
331 public EReference getCommSubsystem_Source() {
332 return (EReference) commSubsystemEClass.getEStructuralFeatures().get(1);
333 }
334
335 /**
336 * <!-- begin-user-doc -->
337 * <!-- end-user-doc -->
338 * @generated
339 */
340 @Override
331 public EClass getPayload() { 341 public EClass getPayload() {
332 return payloadEClass; 342 return payloadEClass;
333 } 343 }
@@ -459,6 +469,7 @@ public class SatellitePackageImpl extends EPackageImpl implements SatellitePacka
459 469
460 commSubsystemEClass = createEClass(COMM_SUBSYSTEM); 470 commSubsystemEClass = createEClass(COMM_SUBSYSTEM);
461 createEReference(commSubsystemEClass, COMM_SUBSYSTEM__TARGET); 471 createEReference(commSubsystemEClass, COMM_SUBSYSTEM__TARGET);
472 createEReference(commSubsystemEClass, COMM_SUBSYSTEM__SOURCE);
462 473
463 payloadEClass = createEClass(PAYLOAD); 474 payloadEClass = createEClass(PAYLOAD);
464 475
@@ -553,9 +564,12 @@ public class SatellitePackageImpl extends EPackageImpl implements SatellitePacka
553 564
554 initEClass(commSubsystemEClass, CommSubsystem.class, "CommSubsystem", IS_ABSTRACT, !IS_INTERFACE, 565 initEClass(commSubsystemEClass, CommSubsystem.class, "CommSubsystem", IS_ABSTRACT, !IS_INTERFACE,
555 IS_GENERATED_INSTANCE_CLASS); 566 IS_GENERATED_INSTANCE_CLASS);
556 initEReference(getCommSubsystem_Target(), this.getCommSubsystem(), null, "target", null, 0, 1, 567 initEReference(getCommSubsystem_Target(), this.getCommSubsystem(), this.getCommSubsystem_Source(), "target",
557 CommSubsystem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, 568 null, 0, 1, CommSubsystem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
558 !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 569 IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
570 initEReference(getCommSubsystem_Source(), this.getCommSubsystem(), this.getCommSubsystem_Target(), "source",
571 null, 0, -1, CommSubsystem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
572 IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
559 573
560 initEClass(payloadEClass, Payload.class, "Payload", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 574 initEClass(payloadEClass, Payload.class, "Payload", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
561 575
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/batch-0/batch-0-data-steps.csv b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/batch-0/batch-0-data-steps.csv
deleted file mode 100644
index b5578ae8..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/batch-0/batch-0-data-steps.csv
+++ /dev/null
@@ -1,145 +0,0 @@
1NFE, Elapsed Time, Approximation Set, Population, Population Size
225, 1.891789696, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
350, 2.586708782, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
475, 3.2109932480000003, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
5100, 3.755158208, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
6125, 4.238918802000001, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
7150, 4.7050757370000005, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
8175, 5.2712747900000005, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
9200, 5.808632395, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
10225, 6.281898818, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
11250, 6.614350584, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
12275, 7.083502681000001, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
13300, 7.426119055, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
14325, 7.941173648, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
15350, 8.319613926, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
16375, 8.730843491, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
17400, 9.013722178, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
18425, 9.443927308000001, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
19450, 9.750104678000001, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
20475, 10.129727031, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
21500, 10.448347054000001, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
22525, 10.735080266, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
23550, 11.190916156, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
24575, 11.633786536, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
25600, 12.021543378, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
26625, 12.544638568000002, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
27650, 12.845640665000001, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
28675, 13.122804784000001, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
29700, 13.396689107, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
30725, 13.837233090000002, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
31750, 14.115298167, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
32775, 14.388343172, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
33800, 14.826446569000002, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
34825, 15.109539416, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
35850, 15.388781908, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
36875, 15.811032095000002, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
37900, 16.224146467, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
38925, 16.609006308, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
39950, 16.911202402, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
40975, 17.351199716, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
411000, 17.726844683, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
421025, 18.004694833000002, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
431050, 18.275873235000002, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
441075, 18.723853517000002, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
451100, 19.006602448000002, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
461125, 19.27602452, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
471150, 19.546914792000003, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
481175, 20.063555527000002, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
491200, 20.4503214, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
501225, 20.812025281, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
511250, 21.372619142, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
521275, 22.044064458, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
531300, 22.541792224, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
541325, 22.979074876000002, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
551350, 23.722393477, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
561375, 24.210281178000002, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
571400, 24.597108146, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
581425, 24.962990538000003, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
591450, 25.449476537000002, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
601475, 25.735480272, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
611500, 26.017771945000003, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
621525, 26.503268108, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
631550, 26.875246388, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
641575, 27.277011053000003, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
651600, 27.920554676000002, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
661625, 28.350389968, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
671650, 28.746870958000002, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
681675, 29.399911038000003, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
691700, 29.705655292000003, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
701725, 30.222917600000002, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
711750, 30.582687885000002, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
721775, 30.930680467000002, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
731800, 31.401464999, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
741825, 31.71501731, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
751850, 32.118626995, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
761875, 32.522417332, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
771900, 32.888226244, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
781925, 33.340297764, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
791950, 33.78173228, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
801975, 34.213199421, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
812000, 34.6389604, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
822025, 35.068572284000005, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
832050, 35.598090496000005, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
842075, 36.029981973000005, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
852100, 36.410860302, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
862125, 36.845392142, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
872150, 37.220125764, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
882175, 37.633310576, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
892200, 38.105014037000004, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
902225, 38.495631925000005, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
912250, 38.868065483, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
922275, 39.31772083, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
932300, 39.724176017000005, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
942325, 40.16674348, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
952350, 40.650008441000004, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
962375, 41.092378918, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
972400, 41.535670983, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
982425, 42.001399116, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
992450, 42.484935328000006, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1002475, 42.911409647, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1012500, 43.336942158, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1022525, 43.787051396, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1032550, 44.277504574000005, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1042575, 44.76816336, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1052600, 45.276457352, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1062625, 45.735699625, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1072650, 46.168899874000005, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1082675, 46.593364297, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1092700, 47.056027297, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1102725, 47.452480539, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1112750, 47.84848743800001, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1122775, 48.296304749, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1132800, 48.772881607, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1142825, 49.140301813, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1152850, 49.601806971, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1162875, 50.036785167000005, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1172900, 50.519073857, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1182925, 50.952136413000005, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1192950, 51.422963162, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1202975, 51.880428426, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1213000, 52.325376492000004, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1223025, 52.757666111000006, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1233050, 53.199401996000006, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1243075, 53.643965946, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1253100, 54.042385829000004, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1263125, 54.470351427000004, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1273150, 54.911578006000006, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1283175, 55.434332657000006, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1293200, 55.876270659000006, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1303225, 56.29157381700001, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1313250, 56.678343517, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1323275, 57.110165294000005, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1333300, 61.833746227000006, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1343325, 62.143060813000005, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1353350, 62.487517775, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1363375, 62.855227351, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1373400, 63.290566593, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1383425, 63.715538516, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1393450, 68.23575590200001, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1403475, 72.71105517400001, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1413500, 77.068135532, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1423525, 81.616801517, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1433550, 90.065785465, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1443575, 103.88993463300001, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25
1453600, 148.72096381100002, [[1158414.6563694086][13.0]], "[[1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0], [1158414.6563694086][13.0]]", 25 \ No newline at end of file
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/batch-0/batch-0-outcome.txt b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/batch-0/batch-0-outcome.txt
deleted file mode 100644
index 350a6a69..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/batch-0/batch-0-outcome.txt
+++ /dev/null
@@ -1,20 +0,0 @@
1
2============================================
3
4Batch 0 duration: 00:02:29.245
5
6--------------------------------------------
7Evaluation data for solution: ./mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/batch-0796A23B6.xmi
8
9Objective values:
10Cost: 1158414.6563694086
11
12Constraint values:
13PatternMatch: 13.0
14
15Transformations chain:
16Length: 2
17Sequence: {1=addCubeSat3U, 2=addCubeSat3U, 3=addCubeSat3U} -> {1=addCubeSat3U, 2=addCubeSat3U, 3=addCubeSat3U}
18
19============================================
20
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/batch-0/batch-0-serialized-objectives.pf b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/batch-0/batch-0-serialized-objectives.pf
deleted file mode 100644
index a4823e89..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/batch-0/batch-0-serialized-objectives.pf
+++ /dev/null
@@ -1 +0,0 @@
11158414.6563694086
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/batch-0/mutation-operators/satellite.ecore b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/batch-0/mutation-operators/satellite.ecore
deleted file mode 100644
index a58dd30e..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/batch-0/mutation-operators/satellite.ecore
+++ /dev/null
@@ -1,68 +0,0 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="satellite" nsURI="http://www.example.org/satellite" nsPrefix="satellite">
4 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
5 <details key="settingDelegates" value="org.eclipse.viatra.query.querybasedfeature"/>
6 </eAnnotations>
7 <eClassifiers xsi:type="ecore:EClass" name="ConstellationMission" abstract="true">
8 <eStructuralFeatures xsi:type="ecore:EReference" name="groundStationNetwork" lowerBound="1"
9 eType="ecore:EClass satellite.ecore#//GroundStationNetwork" containment="true"
10 resolveProxies="false"/>
11 <eStructuralFeatures xsi:type="ecore:EReference" name="spacecraft" lowerBound="2"
12 upperBound="50" eType="ecore:EClass satellite.ecore#//Spacecraft" containment="true"
13 resolveProxies="false"/>
14 </eClassifiers>
15 <eClassifiers xsi:type="ecore:EClass" name="InterferometryMission" eSuperTypes="satellite.ecore#//ConstellationMission">
16 <eStructuralFeatures xsi:type="ecore:EAttribute" name="observationTime" lowerBound="1"
17 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat" defaultValueLiteral="2.0"/>
18 </eClassifiers>
19 <eClassifiers xsi:type="ecore:EClass" name="CommunicatingElement" abstract="true">
20 <eStructuralFeatures xsi:type="ecore:EReference" name="commSubsystem" lowerBound="1"
21 upperBound="2" eType="ecore:EClass satellite.ecore#//CommSubsystem" containment="true"
22 resolveProxies="false"/>
23 <eStructuralFeatures xsi:type="ecore:EReference" name="communicationLink" eType="ecore:EClass satellite.ecore#//DirectedCommunicationLink"
24 containment="true" resolveProxies="false"/>
25 </eClassifiers>
26 <eClassifiers xsi:type="ecore:EClass" name="GroundStationNetwork" eSuperTypes="satellite.ecore#//CommunicatingElement"/>
27 <eClassifiers xsi:type="ecore:EClass" name="Spacecraft" abstract="true" eSuperTypes="satellite.ecore#//CommunicatingElement">
28 <eStructuralFeatures xsi:type="ecore:EReference" name="payload" eType="ecore:EClass satellite.ecore#//Payload"
29 containment="true" resolveProxies="false"/>
30 <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" lowerBound="1" eType="ecore:EEnum satellite.ecore#//SpacecraftKind"
31 changeable="false" volatile="true" transient="true" derived="true">
32 <eAnnotations source="org.eclipse.viatra.query.querybasedfeature">
33 <details key="patternFQN" value="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftOfKind"/>
34 </eAnnotations>
35 </eStructuralFeatures>
36 </eClassifiers>
37 <eClassifiers xsi:type="ecore:EClass" name="CommSubsystem">
38 <eStructuralFeatures xsi:type="ecore:EAttribute" name="band" lowerBound="1" eType="ecore:EEnum satellite.ecore#//TransceiverBand"/>
39 <eStructuralFeatures xsi:type="ecore:EAttribute" name="gain" lowerBound="1" eType="ecore:EEnum satellite.ecore#//AntennaGain"/>
40 </eClassifiers>
41 <eClassifiers xsi:type="ecore:EClass" name="DirectedCommunicationLink">
42 <eStructuralFeatures xsi:type="ecore:EReference" name="source" lowerBound="1"
43 eType="ecore:EClass satellite.ecore#//CommSubsystem"/>
44 <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
45 eType="ecore:EClass satellite.ecore#//CommSubsystem"/>
46 </eClassifiers>
47 <eClassifiers xsi:type="ecore:EClass" name="Payload" abstract="true"/>
48 <eClassifiers xsi:type="ecore:EClass" name="InterferometryPayload" eSuperTypes="satellite.ecore#//Payload"/>
49 <eClassifiers xsi:type="ecore:EClass" name="CubeSat3U" eSuperTypes="satellite.ecore#//CubeSat"/>
50 <eClassifiers xsi:type="ecore:EClass" name="CubeSat6U" eSuperTypes="satellite.ecore#//CubeSat"/>
51 <eClassifiers xsi:type="ecore:EClass" name="SmallSat" eSuperTypes="satellite.ecore#//Spacecraft"/>
52 <eClassifiers xsi:type="ecore:EClass" name="CubeSat" abstract="true" eSuperTypes="satellite.ecore#//Spacecraft"/>
53 <eClassifiers xsi:type="ecore:EEnum" name="TransceiverBand">
54 <eLiterals name="UHF"/>
55 <eLiterals name="X" value="1"/>
56 <eLiterals name="Ka" value="2"/>
57 </eClassifiers>
58 <eClassifiers xsi:type="ecore:EEnum" name="AntennaGain">
59 <eLiterals name="LOW"/>
60 <eLiterals name="MEDIUM" value="1"/>
61 <eLiterals name="HIGH" value="2"/>
62 </eClassifiers>
63 <eClassifiers xsi:type="ecore:EEnum" name="SpacecraftKind">
64 <eLiterals name="CubeSat3U"/>
65 <eLiterals name="CubeSat6U" value="1"/>
66 <eLiterals name="SmallSat" value="2"/>
67 </eClassifiers>
68</ecore:EPackage>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/batch-0796A23B6.xmi b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/batch-0796A23B6.xmi
deleted file mode 100644
index 958b22d0..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/batch-0796A23B6.xmi
+++ /dev/null
@@ -1,13 +0,0 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite">
3 <groundStationNetwork>
4 <commSubsystem band="X" gain="MEDIUM"/>
5 <commSubsystem band="Ka" gain="HIGH"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:CubeSat3U"/>
8 <spacecraft xsi:type="satellite:CubeSat3U"/>
9 <spacecraft xsi:type="satellite:CubeSat3U"/>
10 <spacecraft xsi:type="satellite:CubeSat3U"/>
11 <spacecraft xsi:type="satellite:CubeSat3U"/>
12 <spacecraft xsi:type="satellite:CubeSat3U"/>
13</satellite:InterferometryMission>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/experiment-data.csv b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/experiment-data.csv
deleted file mode 100644
index 8c754932..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/experiment-data.csv
+++ /dev/null
@@ -1,2 +0,0 @@
1batch-id,duration,o-Cost,c-PatternMatch,solutions-found,solution-model
20,00:02:29.245,1158414.6563694086,13.0,1,./mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/batch-0796A23B6.xmi
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/satellite.mopt b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/satellite.mopt
deleted file mode 100644
index 138ea309..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/satellite.mopt
+++ /dev/null
@@ -1,35 +0,0 @@
1problem {
2 basepath <model>
3 metamodel <satellite.SatellitePackage>
4 model <../inputs/SatelliteInstance.xmi>
5}
6
7goal {
8 objective Cost minimise java { "hu.bme.mit.inf.dslreasoner.domains.satellite.mdeo.CostObjective" }
9 constraint PatternMatch java { "hu.bme.mit.inf.dslreasoner.domains.satellite.mdeo.PatternMatchConstraint" }
10}
11
12search {
13 mutate using <satellite_fixup.henshin> unit "addCubeSat3U"
14// mutate { "CubeSat3U" }
15// mutate { "CubeSat6U" }
16// mutate { "SmallSat" }
17// mutate { "InterferometryPayload" }
18// mutate { "CommSubsystem" }
19// mutate { "DirectedCommunicationLink" }
20}
21
22solver {
23 optimisation provider moea algorithm NSGAII {
24 variation: mutation
25 population: 25
26 mutation.step: 3
27 mutation.strategy: random
28 }
29
30 termination {
31 time: 120
32 }
33
34 batches 1
35} \ No newline at end of file
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshinoverall-results.txt b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshinoverall-results.txt
deleted file mode 100644
index 669f03b0..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshinoverall-results.txt
+++ /dev/null
@@ -1,27 +0,0 @@
1Average experiment time: 00:02:29.245
2
3Average value for Cost objective: 1158414.6563694086
4============================================
5
6============================================
7
8Batch 0 duration: 00:02:29.245
9
10--------------------------------------------
11Evaluation data for solution: ./mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/batch-0796A23B6.xmi
12
13Objective values:
14Cost: 1158414.6563694086
15
16Constraint values:
17PatternMatch: 13.0
18
19Transformations chain:
20Length: 2
21Sequence: {1=addCubeSat3U, 2=addCubeSat3U, 3=addCubeSat3U} -> {1=addCubeSat3U, 2=addCubeSat3U, 3=addCubeSat3U}
22
23============================================
24
25Serialized objectives saved to: /home/kris/bme/research/VIATRA-Generator/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/./mdeo-results/experiment-satellite.mopt-190525-195435-matching-henshin/batch-0/batch-0-serialized-objectives.pf
26============================================
27
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore
index 74f09388..1685c756 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore
@@ -21,7 +21,10 @@
21 containment="true"/> 21 containment="true"/>
22 </eClassifiers> 22 </eClassifiers>
23 <eClassifiers xsi:type="ecore:EClass" name="CommSubsystem" abstract="true"> 23 <eClassifiers xsi:type="ecore:EClass" name="CommSubsystem" abstract="true">
24 <eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//CommSubsystem"/> 24 <eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//CommSubsystem"
25 eOpposite="#//CommSubsystem/source"/>
26 <eStructuralFeatures xsi:type="ecore:EReference" name="source" upperBound="-1"
27 eType="#//CommSubsystem" eOpposite="#//CommSubsystem/target"/>
25 </eClassifiers> 28 </eClassifiers>
26 <eClassifiers xsi:type="ecore:EClass" name="Payload" abstract="true"/> 29 <eClassifiers xsi:type="ecore:EClass" name="Payload" abstract="true"/>
27 <eClassifiers xsi:type="ecore:EClass" name="InterferometryPayload" eSuperTypes="#//Payload"/> 30 <eClassifiers xsi:type="ecore:EClass" name="InterferometryPayload" eSuperTypes="#//Payload"/>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.genmodel b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.genmodel
index e315e0ec..09b5f64c 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.genmodel
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.genmodel
@@ -27,6 +27,7 @@
27 </genClasses> 27 </genClasses>
28 <genClasses ecoreClass="satellite.ecore#//CommSubsystem"> 28 <genClasses ecoreClass="satellite.ecore#//CommSubsystem">
29 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference satellite.ecore#//CommSubsystem/target"/> 29 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference satellite.ecore#//CommSubsystem/target"/>
30 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference satellite.ecore#//CommSubsystem/source"/>
30 </genClasses> 31 </genClasses>
31 <genClasses image="false" ecoreClass="satellite.ecore#//Payload"/> 32 <genClasses image="false" ecoreClass="satellite.ecore#//Payload"/>
32 <genClasses ecoreClass="satellite.ecore#//InterferometryPayload"/> 33 <genClasses ecoreClass="satellite.ecore#//InterferometryPayload"/>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/generation.logicproblem b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/generation.logicproblem
deleted file mode 100644
index ab54ab85..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/generation.logicproblem
+++ /dev/null
@@ -1,1449 +0,0 @@
1<?xml version="1.0" encoding="ASCII"?>
2<language:LogicProblem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/ecore2logicannotation" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" xmlns:language_1="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" xmlns:partial2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/partial2logicannotation" xmlns:viatra2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/viatra2logicannotation">
3 <types xsi:type="language_1:TypeDeclaration" name="ConstellationMission class" subtypes="//@types.1 //@types.15 //@types.16" isAbstract="true"/>
4 <types xsi:type="language_1:TypeDeclaration" name="InterferometryMission class" subtypes="//@types.17 //@types.18" supertypes="//@types.0" isAbstract="true"/>
5 <types xsi:type="language_1:TypeDeclaration" name="CommunicatingElement class" subtypes="//@types.3 //@types.4 //@types.19 //@types.20" isAbstract="true"/>
6 <types xsi:type="language_1:TypeDeclaration" name="GroundStationNetwork class" subtypes="//@types.21 //@types.22" supertypes="//@types.2" isAbstract="true"/>
7 <types xsi:type="language_1:TypeDeclaration" name="Spacecraft class" subtypes="//@types.10 //@types.11" supertypes="//@types.2 //@types.20" isAbstract="true"/>
8 <types xsi:type="language_1:TypeDeclaration" name="CommSubsystem class" subtypes="//@types.12 //@types.13 //@types.14 //@types.23 //@types.24" isAbstract="true"/>
9 <types xsi:type="language_1:TypeDeclaration" name="Payload class" subtypes="//@types.7" isAbstract="true"/>
10 <types xsi:type="language_1:TypeDeclaration" name="InterferometryPayload class" supertypes="//@types.6"/>
11 <types xsi:type="language_1:TypeDeclaration" name="CubeSat3U class" supertypes="//@types.11"/>
12 <types xsi:type="language_1:TypeDeclaration" name="CubeSat6U class" supertypes="//@types.11"/>
13 <types xsi:type="language_1:TypeDeclaration" name="SmallSat class" supertypes="//@types.4"/>
14 <types xsi:type="language_1:TypeDeclaration" name="CubeSat class" subtypes="//@types.8 //@types.9" supertypes="//@types.4" isAbstract="true"/>
15 <types xsi:type="language_1:TypeDeclaration" name="UHFCommSubsystem class" supertypes="//@types.5 //@types.24"/>
16 <types xsi:type="language_1:TypeDeclaration" name="XCommSubsystem class" subtypes="//@types.25 //@types.26" supertypes="//@types.5" isAbstract="true"/>
17 <types xsi:type="language_1:TypeDeclaration" name="KaCommSubsystem class" subtypes="//@types.27 //@types.28" supertypes="//@types.5" isAbstract="true"/>
18 <types xsi:type="language_1:TypeDefinition" name="ConstellationMission class DefinedPart" subtypes="//@types.17" supertypes="//@types.0" isAbstract="true" elements="//@elements.0"/>
19 <types xsi:type="language_1:TypeDeclaration" name="ConstellationMission class UndefinedPart" subtypes="//@types.18" supertypes="//@types.0" isAbstract="true"/>
20 <types xsi:type="language_1:TypeDefinition" name="InterferometryMission class DefinedPart" supertypes="//@types.1 //@types.15" elements="//@elements.0"/>
21 <types xsi:type="language_1:TypeDeclaration" name="InterferometryMission class UndefinedPart" supertypes="//@types.1 //@types.16"/>
22 <types xsi:type="language_1:TypeDefinition" name="CommunicatingElement class DefinedPart" subtypes="//@types.21" supertypes="//@types.2" isAbstract="true" elements="//@elements.1"/>
23 <types xsi:type="language_1:TypeDeclaration" name="CommunicatingElement class UndefinedPart" subtypes="//@types.22 //@types.4" supertypes="//@types.2" isAbstract="true"/>
24 <types xsi:type="language_1:TypeDefinition" name="GroundStationNetwork class DefinedPart" supertypes="//@types.3 //@types.19" elements="//@elements.1"/>
25 <types xsi:type="language_1:TypeDeclaration" name="GroundStationNetwork class UndefinedPart" supertypes="//@types.3 //@types.20"/>
26 <types xsi:type="language_1:TypeDefinition" name="CommSubsystem class DefinedPart" subtypes="//@types.25 //@types.27" supertypes="//@types.5" isAbstract="true" elements="//@elements.2 //@elements.3"/>
27 <types xsi:type="language_1:TypeDeclaration" name="CommSubsystem class UndefinedPart" subtypes="//@types.12 //@types.26 //@types.28" supertypes="//@types.5" isAbstract="true"/>
28 <types xsi:type="language_1:TypeDefinition" name="XCommSubsystem class DefinedPart" supertypes="//@types.13 //@types.23" elements="//@elements.2"/>
29 <types xsi:type="language_1:TypeDeclaration" name="XCommSubsystem class UndefinedPart" supertypes="//@types.13 //@types.24"/>
30 <types xsi:type="language_1:TypeDefinition" name="KaCommSubsystem class DefinedPart" supertypes="//@types.14 //@types.23" elements="//@elements.3"/>
31 <types xsi:type="language_1:TypeDeclaration" name="KaCommSubsystem class UndefinedPart" supertypes="//@types.14 //@types.24"/>
32 <assertions name="lowerMultiplicity groundStationNetwork ConstellationMission" annotations="//@annotations.0">
33 <value xsi:type="language_1:Forall">
34 <quantifiedVariables name="src">
35 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
36 </quantifiedVariables>
37 <expression xsi:type="language_1:Exists">
38 <quantifiedVariables name="trg 1">
39 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
40 </quantifiedVariables>
41 <expression xsi:type="language_1:And">
42 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0">
43 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/>
44 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@expression/@quantifiedVariables.0"/>
45 </operands>
46 </expression>
47 </expression>
48 </value>
49 </assertions>
50 <assertions name="upperMultiplicity groundStationNetwork ConstellationMission" annotations="//@annotations.1">
51 <value xsi:type="language_1:Forall">
52 <quantifiedVariables name="src">
53 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
54 </quantifiedVariables>
55 <quantifiedVariables name="trg 1">
56 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
57 </quantifiedVariables>
58 <quantifiedVariables name="trg 2">
59 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
60 </quantifiedVariables>
61 <expression xsi:type="language_1:Impl">
62 <leftOperand xsi:type="language_1:And">
63 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0">
64 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.0"/>
65 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.1"/>
66 </operands>
67 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0">
68 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.0"/>
69 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.2"/>
70 </operands>
71 </leftOperand>
72 <rightOperand xsi:type="language_1:Not">
73 <operand xsi:type="language_1:Distinct">
74 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.1"/>
75 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.2"/>
76 </operand>
77 </rightOperand>
78 </expression>
79 </value>
80 </assertions>
81 <assertions name="lowerMultiplicity spacecraft ConstellationMission" annotations="//@annotations.2">
82 <value xsi:type="language_1:Forall">
83 <quantifiedVariables name="src">
84 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
85 </quantifiedVariables>
86 <expression xsi:type="language_1:Exists">
87 <quantifiedVariables name="trg 1">
88 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
89 </quantifiedVariables>
90 <quantifiedVariables name="trg 2">
91 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
92 </quantifiedVariables>
93 <expression xsi:type="language_1:And">
94 <operands xsi:type="language_1:Distinct">
95 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@expression/@quantifiedVariables.0"/>
96 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@expression/@quantifiedVariables.1"/>
97 </operands>
98 <operands xsi:type="language_1:And">
99 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
100 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/>
101 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@expression/@quantifiedVariables.0"/>
102 </operands>
103 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
104 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/>
105 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@expression/@quantifiedVariables.1"/>
106 </operands>
107 </operands>
108 </expression>
109 </expression>
110 </value>
111 </assertions>
112 <assertions name="upperMultiplicity spacecraft ConstellationMission" annotations="//@annotations.3">
113 <value xsi:type="language_1:Forall">
114 <quantifiedVariables name="src">
115 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
116 </quantifiedVariables>
117 <quantifiedVariables name="trg 1">
118 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
119 </quantifiedVariables>
120 <quantifiedVariables name="trg 2">
121 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
122 </quantifiedVariables>
123 <quantifiedVariables name="trg 3">
124 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
125 </quantifiedVariables>
126 <quantifiedVariables name="trg 4">
127 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
128 </quantifiedVariables>
129 <quantifiedVariables name="trg 5">
130 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
131 </quantifiedVariables>
132 <quantifiedVariables name="trg 6">
133 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
134 </quantifiedVariables>
135 <quantifiedVariables name="trg 7">
136 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
137 </quantifiedVariables>
138 <quantifiedVariables name="trg 8">
139 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
140 </quantifiedVariables>
141 <quantifiedVariables name="trg 9">
142 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
143 </quantifiedVariables>
144 <quantifiedVariables name="trg 10">
145 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
146 </quantifiedVariables>
147 <quantifiedVariables name="trg 11">
148 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
149 </quantifiedVariables>
150 <quantifiedVariables name="trg 12">
151 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
152 </quantifiedVariables>
153 <quantifiedVariables name="trg 13">
154 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
155 </quantifiedVariables>
156 <quantifiedVariables name="trg 14">
157 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
158 </quantifiedVariables>
159 <quantifiedVariables name="trg 15">
160 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
161 </quantifiedVariables>
162 <quantifiedVariables name="trg 16">
163 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
164 </quantifiedVariables>
165 <quantifiedVariables name="trg 17">
166 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
167 </quantifiedVariables>
168 <quantifiedVariables name="trg 18">
169 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
170 </quantifiedVariables>
171 <quantifiedVariables name="trg 19">
172 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
173 </quantifiedVariables>
174 <quantifiedVariables name="trg 20">
175 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
176 </quantifiedVariables>
177 <quantifiedVariables name="trg 21">
178 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
179 </quantifiedVariables>
180 <quantifiedVariables name="trg 22">
181 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
182 </quantifiedVariables>
183 <quantifiedVariables name="trg 23">
184 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
185 </quantifiedVariables>
186 <quantifiedVariables name="trg 24">
187 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
188 </quantifiedVariables>
189 <quantifiedVariables name="trg 25">
190 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
191 </quantifiedVariables>
192 <quantifiedVariables name="trg 26">
193 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
194 </quantifiedVariables>
195 <quantifiedVariables name="trg 27">
196 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
197 </quantifiedVariables>
198 <quantifiedVariables name="trg 28">
199 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
200 </quantifiedVariables>
201 <quantifiedVariables name="trg 29">
202 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
203 </quantifiedVariables>
204 <quantifiedVariables name="trg 30">
205 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
206 </quantifiedVariables>
207 <quantifiedVariables name="trg 31">
208 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
209 </quantifiedVariables>
210 <quantifiedVariables name="trg 32">
211 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
212 </quantifiedVariables>
213 <quantifiedVariables name="trg 33">
214 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
215 </quantifiedVariables>
216 <quantifiedVariables name="trg 34">
217 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
218 </quantifiedVariables>
219 <quantifiedVariables name="trg 35">
220 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
221 </quantifiedVariables>
222 <quantifiedVariables name="trg 36">
223 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
224 </quantifiedVariables>
225 <quantifiedVariables name="trg 37">
226 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
227 </quantifiedVariables>
228 <quantifiedVariables name="trg 38">
229 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
230 </quantifiedVariables>
231 <quantifiedVariables name="trg 39">
232 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
233 </quantifiedVariables>
234 <quantifiedVariables name="trg 40">
235 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
236 </quantifiedVariables>
237 <quantifiedVariables name="trg 41">
238 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
239 </quantifiedVariables>
240 <quantifiedVariables name="trg 42">
241 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
242 </quantifiedVariables>
243 <quantifiedVariables name="trg 43">
244 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
245 </quantifiedVariables>
246 <quantifiedVariables name="trg 44">
247 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
248 </quantifiedVariables>
249 <quantifiedVariables name="trg 45">
250 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
251 </quantifiedVariables>
252 <quantifiedVariables name="trg 46">
253 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
254 </quantifiedVariables>
255 <quantifiedVariables name="trg 47">
256 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
257 </quantifiedVariables>
258 <quantifiedVariables name="trg 48">
259 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
260 </quantifiedVariables>
261 <quantifiedVariables name="trg 49">
262 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
263 </quantifiedVariables>
264 <quantifiedVariables name="trg 50">
265 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
266 </quantifiedVariables>
267 <quantifiedVariables name="trg 51">
268 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
269 </quantifiedVariables>
270 <expression xsi:type="language_1:Impl">
271 <leftOperand xsi:type="language_1:And">
272 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
273 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
274 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.1"/>
275 </operands>
276 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
277 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
278 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.2"/>
279 </operands>
280 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
281 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
282 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.3"/>
283 </operands>
284 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
285 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
286 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.4"/>
287 </operands>
288 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
289 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
290 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.5"/>
291 </operands>
292 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
293 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
294 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.6"/>
295 </operands>
296 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
297 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
298 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.7"/>
299 </operands>
300 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
301 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
302 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.8"/>
303 </operands>
304 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
305 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
306 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.9"/>
307 </operands>
308 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
309 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
310 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.10"/>
311 </operands>
312 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
313 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
314 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.11"/>
315 </operands>
316 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
317 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
318 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.12"/>
319 </operands>
320 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
321 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
322 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.13"/>
323 </operands>
324 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
325 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
326 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.14"/>
327 </operands>
328 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
329 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
330 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.15"/>
331 </operands>
332 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
333 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
334 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.16"/>
335 </operands>
336 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
337 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
338 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.17"/>
339 </operands>
340 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
341 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
342 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.18"/>
343 </operands>
344 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
345 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
346 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.19"/>
347 </operands>
348 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
349 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
350 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.20"/>
351 </operands>
352 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
353 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
354 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.21"/>
355 </operands>
356 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
357 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
358 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.22"/>
359 </operands>
360 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
361 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
362 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.23"/>
363 </operands>
364 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
365 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
366 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.24"/>
367 </operands>
368 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
369 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
370 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.25"/>
371 </operands>
372 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
373 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
374 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.26"/>
375 </operands>
376 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
377 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
378 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.27"/>
379 </operands>
380 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
381 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
382 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.28"/>
383 </operands>
384 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
385 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
386 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.29"/>
387 </operands>
388 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
389 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
390 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.30"/>
391 </operands>
392 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
393 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
394 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.31"/>
395 </operands>
396 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
397 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
398 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.32"/>
399 </operands>
400 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
401 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
402 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.33"/>
403 </operands>
404 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
405 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
406 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.34"/>
407 </operands>
408 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
409 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
410 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.35"/>
411 </operands>
412 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
413 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
414 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.36"/>
415 </operands>
416 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
417 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
418 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.37"/>
419 </operands>
420 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
421 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
422 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.38"/>
423 </operands>
424 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
425 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
426 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.39"/>
427 </operands>
428 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
429 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
430 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.40"/>
431 </operands>
432 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
433 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
434 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.41"/>
435 </operands>
436 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
437 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
438 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.42"/>
439 </operands>
440 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
441 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
442 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.43"/>
443 </operands>
444 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
445 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
446 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.44"/>
447 </operands>
448 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
449 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
450 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.45"/>
451 </operands>
452 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
453 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
454 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.46"/>
455 </operands>
456 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
457 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
458 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.47"/>
459 </operands>
460 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
461 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
462 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.48"/>
463 </operands>
464 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
465 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
466 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.49"/>
467 </operands>
468 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
469 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
470 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.50"/>
471 </operands>
472 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
473 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
474 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.51"/>
475 </operands>
476 </leftOperand>
477 <rightOperand xsi:type="language_1:Not">
478 <operand xsi:type="language_1:Distinct">
479 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.1"/>
480 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.2"/>
481 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.3"/>
482 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.4"/>
483 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.5"/>
484 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.6"/>
485 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.7"/>
486 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.8"/>
487 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.9"/>
488 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.10"/>
489 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.11"/>
490 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.12"/>
491 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.13"/>
492 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.14"/>
493 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.15"/>
494 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.16"/>
495 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.17"/>
496 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.18"/>
497 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.19"/>
498 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.20"/>
499 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.21"/>
500 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.22"/>
501 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.23"/>
502 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.24"/>
503 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.25"/>
504 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.26"/>
505 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.27"/>
506 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.28"/>
507 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.29"/>
508 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.30"/>
509 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.31"/>
510 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.32"/>
511 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.33"/>
512 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.34"/>
513 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.35"/>
514 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.36"/>
515 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.37"/>
516 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.38"/>
517 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.39"/>
518 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.40"/>
519 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.41"/>
520 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.42"/>
521 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.43"/>
522 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.44"/>
523 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.45"/>
524 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.46"/>
525 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.47"/>
526 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.48"/>
527 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.49"/>
528 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.50"/>
529 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.51"/>
530 </operand>
531 </rightOperand>
532 </expression>
533 </value>
534 </assertions>
535 <assertions name="lowerMultiplicity commSubsystem CommunicatingElement" annotations="//@annotations.4">
536 <value xsi:type="language_1:Forall">
537 <quantifiedVariables name="src">
538 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
539 </quantifiedVariables>
540 <expression xsi:type="language_1:Exists">
541 <quantifiedVariables name="trg 1">
542 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
543 </quantifiedVariables>
544 <expression xsi:type="language_1:And">
545 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
546 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.0"/>
547 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@expression/@quantifiedVariables.0"/>
548 </operands>
549 </expression>
550 </expression>
551 </value>
552 </assertions>
553 <assertions name="upperMultiplicity commSubsystem CommunicatingElement" annotations="//@annotations.5">
554 <value xsi:type="language_1:Forall">
555 <quantifiedVariables name="src">
556 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
557 </quantifiedVariables>
558 <quantifiedVariables name="trg 1">
559 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
560 </quantifiedVariables>
561 <quantifiedVariables name="trg 2">
562 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
563 </quantifiedVariables>
564 <quantifiedVariables name="trg 3">
565 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
566 </quantifiedVariables>
567 <expression xsi:type="language_1:Impl">
568 <leftOperand xsi:type="language_1:And">
569 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
570 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.0"/>
571 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.1"/>
572 </operands>
573 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
574 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.0"/>
575 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.2"/>
576 </operands>
577 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
578 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.0"/>
579 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.3"/>
580 </operands>
581 </leftOperand>
582 <rightOperand xsi:type="language_1:Not">
583 <operand xsi:type="language_1:Distinct">
584 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.1"/>
585 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.2"/>
586 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.3"/>
587 </operand>
588 </rightOperand>
589 </expression>
590 </value>
591 </assertions>
592 <assertions name="upperMultiplicity payload Spacecraft" annotations="//@annotations.6">
593 <value xsi:type="language_1:Forall">
594 <quantifiedVariables name="src">
595 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
596 </quantifiedVariables>
597 <quantifiedVariables name="trg 1">
598 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
599 </quantifiedVariables>
600 <quantifiedVariables name="trg 2">
601 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
602 </quantifiedVariables>
603 <expression xsi:type="language_1:Impl">
604 <leftOperand xsi:type="language_1:And">
605 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3">
606 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.0"/>
607 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.1"/>
608 </operands>
609 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3">
610 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.0"/>
611 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.2"/>
612 </operands>
613 </leftOperand>
614 <rightOperand xsi:type="language_1:Not">
615 <operand xsi:type="language_1:Distinct">
616 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.1"/>
617 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.2"/>
618 </operand>
619 </rightOperand>
620 </expression>
621 </value>
622 </assertions>
623 <assertions name="upperMultiplicity target CommSubsystem" annotations="//@annotations.7">
624 <value xsi:type="language_1:Forall">
625 <quantifiedVariables name="src">
626 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
627 </quantifiedVariables>
628 <quantifiedVariables name="trg 1">
629 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
630 </quantifiedVariables>
631 <quantifiedVariables name="trg 2">
632 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
633 </quantifiedVariables>
634 <expression xsi:type="language_1:Impl">
635 <leftOperand xsi:type="language_1:And">
636 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.4">
637 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.0"/>
638 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.1"/>
639 </operands>
640 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.4">
641 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.0"/>
642 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.2"/>
643 </operands>
644 </leftOperand>
645 <rightOperand xsi:type="language_1:Not">
646 <operand xsi:type="language_1:Distinct">
647 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.1"/>
648 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.2"/>
649 </operand>
650 </rightOperand>
651 </expression>
652 </value>
653 </assertions>
654 <assertions name="PartialInterpretation groundStationNetwork reference ConstellationMission" annotations="//@annotations.8">
655 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0">
656 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.0"/>
657 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.1"/>
658 </value>
659 </assertions>
660 <assertions name="PartialInterpretation commSubsystem reference CommunicatingElement" annotations="//@annotations.9">
661 <value xsi:type="language_1:And">
662 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
663 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.1"/>
664 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.2"/>
665 </operands>
666 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
667 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.1"/>
668 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.3"/>
669 </operands>
670 </value>
671 </assertions>
672 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries communicationLinkDoesNotStartAtContainingElement" annotations="//@annotations.32">
673 <value xsi:type="language_1:Forall">
674 <quantifiedVariables name="p0">
675 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
676 </quantifiedVariables>
677 <expression xsi:type="language_1:Not">
678 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5">
679 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.0"/>
680 </operand>
681 </expression>
682 </value>
683 </assertions>
684 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries notEnoughInterferometryPayloads" annotations="//@annotations.33">
685 <value xsi:type="language_1:Forall">
686 <quantifiedVariables name="p0">
687 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
688 </quantifiedVariables>
689 <expression xsi:type="language_1:Not">
690 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
691 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.0"/>
692 </operand>
693 </expression>
694 </value>
695 </assertions>
696 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries noLinkToGroundStation" annotations="//@annotations.34">
697 <value xsi:type="language_1:Forall">
698 <quantifiedVariables name="p0">
699 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
700 </quantifiedVariables>
701 <expression xsi:type="language_1:Not">
702 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10">
703 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.0"/>
704 </operand>
705 </expression>
706 </value>
707 </assertions>
708 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries noPotentialLinkToGroundStation" annotations="//@annotations.35">
709 <value xsi:type="language_1:Forall">
710 <quantifiedVariables name="p0">
711 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
712 </quantifiedVariables>
713 <expression xsi:type="language_1:Not">
714 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11">
715 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.0"/>
716 </operand>
717 </expression>
718 </value>
719 </assertions>
720 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries communicationLoop" annotations="//@annotations.36">
721 <value xsi:type="language_1:Forall">
722 <quantifiedVariables name="p0">
723 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
724 </quantifiedVariables>
725 <expression xsi:type="language_1:Not">
726 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18">
727 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.0"/>
728 </operand>
729 </expression>
730 </value>
731 </assertions>
732 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetBand" annotations="//@annotations.37">
733 <value xsi:type="language_1:Forall">
734 <quantifiedVariables name="p0">
735 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
736 </quantifiedVariables>
737 <expression xsi:type="language_1:Not">
738 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21">
739 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.0"/>
740 </operand>
741 </expression>
742 </value>
743 </assertions>
744 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries threeUCubeSatWithNonUhfCrossLink" annotations="//@annotations.38">
745 <value xsi:type="language_1:Forall">
746 <quantifiedVariables name="p0">
747 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
748 </quantifiedVariables>
749 <expression xsi:type="language_1:Not">
750 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22">
751 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.0"/>
752 </operand>
753 </expression>
754 </value>
755 </assertions>
756 <assertions name="errorpattern hu bme mit inf dslreasoner domains satellite queries cubeSatWithKaAntenna" annotations="//@annotations.39">
757 <value xsi:type="language_1:Forall">
758 <quantifiedVariables name="p0">
759 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
760 </quantifiedVariables>
761 <expression xsi:type="language_1:Not">
762 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25">
763 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.0"/>
764 </operand>
765 </expression>
766 </value>
767 </assertions>
768 <relations xsi:type="language_1:RelationDeclaration" name="groundStationNetwork reference ConstellationMission">
769 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
770 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
771 </relations>
772 <relations xsi:type="language_1:RelationDeclaration" name="spacecraft reference ConstellationMission">
773 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
774 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
775 </relations>
776 <relations xsi:type="language_1:RelationDeclaration" name="commSubsystem reference CommunicatingElement">
777 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
778 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
779 </relations>
780 <relations xsi:type="language_1:RelationDeclaration" name="payload reference Spacecraft">
781 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
782 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
783 </relations>
784 <relations xsi:type="language_1:RelationDeclaration" name="target reference CommSubsystem">
785 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
786 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
787 </relations>
788 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries communicationLinkDoesNotStartAtContainingElement" annotations="//@annotations.10">
789 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
790 <variables name="parameter Element">
791 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
792 </variables>
793 <value xsi:type="language_1:Or">
794 <operands xsi:type="language_1:Exists">
795 <quantifiedVariables name="variable Comm1">
796 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
797 </quantifiedVariables>
798 <quantifiedVariables name="variable Comm2">
799 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
800 </quantifiedVariables>
801 <expression xsi:type="language_1:And">
802 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
803 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5/@variables.0"/>
804 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5/@value/@operands.0/@quantifiedVariables.0"/>
805 </operands>
806 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
807 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5/@variables.0"/>
808 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5/@value/@operands.0/@quantifiedVariables.1"/>
809 </operands>
810 <operands xsi:type="language_1:Distinct">
811 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5/@value/@operands.0/@quantifiedVariables.0"/>
812 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5/@value/@operands.0/@quantifiedVariables.1"/>
813 </operands>
814 </expression>
815 </operands>
816 </value>
817 </relations>
818 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries transmittingCommSubsystem" annotations="//@annotations.11">
819 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
820 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
821 <variables name="parameter Element">
822 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
823 </variables>
824 <variables name="parameter Comm">
825 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
826 </variables>
827 <value xsi:type="language_1:Or">
828 <operands xsi:type="language_1:Exists">
829 <quantifiedVariables name="variable 0">
830 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
831 </quantifiedVariables>
832 <expression xsi:type="language_1:And">
833 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
834 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6/@variables.0"/>
835 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6/@variables.1"/>
836 </operands>
837 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.4">
838 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6/@variables.1"/>
839 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6/@value/@operands.0/@quantifiedVariables.0"/>
840 </operands>
841 <operands xsi:type="language_1:InstanceOf">
842 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6/@value/@operands.0/@quantifiedVariables.0"/>
843 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
844 </operands>
845 </expression>
846 </operands>
847 </value>
848 </relations>
849 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries notEnoughInterferometryPayloads" annotations="//@annotations.12">
850 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
851 <variables name="parameter Mission">
852 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
853 </variables>
854 <value xsi:type="language_1:Or">
855 <operands xsi:type="language_1:And">
856 <operands xsi:type="language_1:InstanceOf">
857 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7/@variables.0"/>
858 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
859 </operands>
860 <operands xsi:type="language_1:Not">
861 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
862 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7/@variables.0"/>
863 </operand>
864 </operands>
865 </operands>
866 </value>
867 </relations>
868 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries atLeastTwoInterferometryPayloads" annotations="//@annotations.13">
869 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
870 <variables name="parameter Mission">
871 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
872 </variables>
873 <value xsi:type="language_1:Or">
874 <operands xsi:type="language_1:Exists">
875 <quantifiedVariables name="variable Spacecraft1">
876 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
877 </quantifiedVariables>
878 <quantifiedVariables name="variable Spacecraft2">
879 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
880 </quantifiedVariables>
881 <expression xsi:type="language_1:And">
882 <operands xsi:type="language_1:InstanceOf">
883 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8/@variables.0"/>
884 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
885 </operands>
886 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
887 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8/@variables.0"/>
888 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8/@value/@operands.0/@quantifiedVariables.0"/>
889 </operands>
890 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
891 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8/@variables.0"/>
892 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8/@value/@operands.0/@quantifiedVariables.1"/>
893 </operands>
894 <operands xsi:type="language_1:Distinct">
895 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8/@value/@operands.0/@quantifiedVariables.0"/>
896 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8/@value/@operands.0/@quantifiedVariables.1"/>
897 </operands>
898 </expression>
899 </operands>
900 </value>
901 </relations>
902 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries spacecraftWithInterferometryPayload" annotations="//@annotations.14">
903 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
904 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
905 <variables name="parameter Mission">
906 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
907 </variables>
908 <variables name="parameter Spacecraft">
909 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
910 </variables>
911 <value xsi:type="language_1:Or">
912 <operands xsi:type="language_1:Exists">
913 <quantifiedVariables name="variable Payload">
914 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
915 </quantifiedVariables>
916 <expression xsi:type="language_1:And">
917 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
918 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9/@variables.0"/>
919 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9/@variables.1"/>
920 </operands>
921 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3">
922 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9/@variables.1"/>
923 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9/@value/@operands.0/@quantifiedVariables.0"/>
924 </operands>
925 <operands xsi:type="language_1:InstanceOf">
926 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9/@value/@operands.0/@quantifiedVariables.0"/>
927 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
928 </operands>
929 </expression>
930 </operands>
931 </value>
932 </relations>
933 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries noLinkToGroundStation" annotations="//@annotations.15">
934 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
935 <variables name="parameter Spacecraft">
936 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
937 </variables>
938 <value xsi:type="language_1:Or">
939 <operands xsi:type="language_1:Exists">
940 <quantifiedVariables name="variable Mission">
941 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
942 </quantifiedVariables>
943 <quantifiedVariables name="variable GroundStation">
944 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
945 </quantifiedVariables>
946 <expression xsi:type="language_1:And">
947 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0">
948 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@value/@operands.0/@quantifiedVariables.0"/>
949 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@value/@operands.0/@quantifiedVariables.1"/>
950 </operands>
951 <operands xsi:type="language_1:InstanceOf">
952 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@value/@operands.0/@quantifiedVariables.1"/>
953 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
954 </operands>
955 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
956 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@value/@operands.0/@quantifiedVariables.0"/>
957 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@variables.0"/>
958 </operands>
959 <operands xsi:type="language_1:InstanceOf">
960 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@variables.0"/>
961 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
962 </operands>
963 <operands xsi:type="language_1:Not">
964 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19">
965 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@variables.0"/>
966 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10/@value/@operands.0/@quantifiedVariables.1"/>
967 </operand>
968 </operands>
969 </expression>
970 </operands>
971 </value>
972 </relations>
973 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries noPotentialLinkToGroundStation" annotations="//@annotations.16">
974 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
975 <variables name="parameter Spacecraft">
976 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
977 </variables>
978 <value xsi:type="language_1:Or">
979 <operands xsi:type="language_1:Exists">
980 <quantifiedVariables name="variable Mission">
981 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
982 </quantifiedVariables>
983 <quantifiedVariables name="variable GroundStation">
984 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
985 </quantifiedVariables>
986 <expression xsi:type="language_1:And">
987 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0">
988 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@value/@operands.0/@quantifiedVariables.0"/>
989 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@value/@operands.0/@quantifiedVariables.1"/>
990 </operands>
991 <operands xsi:type="language_1:InstanceOf">
992 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@value/@operands.0/@quantifiedVariables.1"/>
993 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
994 </operands>
995 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
996 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@value/@operands.0/@quantifiedVariables.0"/>
997 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@variables.0"/>
998 </operands>
999 <operands xsi:type="language_1:InstanceOf">
1000 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@variables.0"/>
1001 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1002 </operands>
1003 <operands xsi:type="language_1:Not">
1004 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12">
1005 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@variables.0"/>
1006 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@value/@operands.0/@quantifiedVariables.1"/>
1007 </operand>
1008 </operands>
1009 </expression>
1010 </operands>
1011 </value>
1012 </relations>
1013 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries indirectLinkAllowed" annotations="//@annotations.17">
1014 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1015 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1016 <variables name="parameter From">
1017 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1018 </variables>
1019 <variables name="parameter To">
1020 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1021 </variables>
1022 <value xsi:type="language_1:Or">
1023 <operands xsi:type="language_1:And">
1024 <operands xsi:type="language_1:TransitiveClosure" relation="//@relations.13"/>
1025 </operands>
1026 </value>
1027 </relations>
1028 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries linkAllowed" annotations="//@annotations.18">
1029 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1030 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1031 <variables name="parameter From">
1032 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1033 </variables>
1034 <variables name="parameter To">
1035 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1036 </variables>
1037 <value xsi:type="language_1:Or">
1038 <operands xsi:type="language_1:And">
1039 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14">
1040 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@variables.0"/>
1041 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@variables.1"/>
1042 </operands>
1043 <operands xsi:type="language_1:Not">
1044 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16">
1045 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@variables.0"/>
1046 </operand>
1047 </operands>
1048 </operands>
1049 <operands xsi:type="language_1:And">
1050 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14">
1051 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@variables.0"/>
1052 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@variables.1"/>
1053 </operands>
1054 <operands xsi:type="language_1:InstanceOf">
1055 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@variables.0"/>
1056 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1057 </operands>
1058 </operands>
1059 <operands xsi:type="language_1:And">
1060 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14">
1061 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@variables.0"/>
1062 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@variables.1"/>
1063 </operands>
1064 <operands xsi:type="language_1:InstanceOf">
1065 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@variables.0"/>
1066 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1067 </operands>
1068 <operands xsi:type="language_1:InstanceOf">
1069 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@variables.1"/>
1070 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
1071 </operands>
1072 </operands>
1073 </value>
1074 </relations>
1075 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries matchingAntenna" annotations="//@annotations.19">
1076 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1077 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1078 <variables name="parameter From">
1079 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1080 </variables>
1081 <variables name="parameter To">
1082 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1083 </variables>
1084 <value xsi:type="language_1:Or">
1085 <operands xsi:type="language_1:Exists">
1086 <quantifiedVariables name="variable FromSys">
1087 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1088 </quantifiedVariables>
1089 <quantifiedVariables name="variable ToSys">
1090 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1091 </quantifiedVariables>
1092 <expression xsi:type="language_1:And">
1093 <operands xsi:type="language_1:InstanceOf">
1094 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@variables.0"/>
1095 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1096 </operands>
1097 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
1098 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@variables.0"/>
1099 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@value/@operands.0/@quantifiedVariables.0"/>
1100 </operands>
1101 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
1102 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@variables.1"/>
1103 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@value/@operands.0/@quantifiedVariables.1"/>
1104 </operands>
1105 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15">
1106 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@value/@operands.0/@quantifiedVariables.0"/>
1107 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@value/@operands.0/@quantifiedVariables.1"/>
1108 </operands>
1109 </expression>
1110 </operands>
1111 </value>
1112 </relations>
1113 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries matchingCommSubsystem" annotations="//@annotations.20">
1114 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1115 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1116 <variables name="parameter From">
1117 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1118 </variables>
1119 <variables name="parameter To">
1120 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1121 </variables>
1122 <value xsi:type="language_1:Or">
1123 <operands xsi:type="language_1:And">
1124 <operands xsi:type="language_1:InstanceOf">
1125 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.0"/>
1126 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/>
1127 </operands>
1128 <operands xsi:type="language_1:InstanceOf">
1129 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.1"/>
1130 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/>
1131 </operands>
1132 </operands>
1133 <operands xsi:type="language_1:And">
1134 <operands xsi:type="language_1:InstanceOf">
1135 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.0"/>
1136 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1137 </operands>
1138 <operands xsi:type="language_1:InstanceOf">
1139 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.1"/>
1140 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.13"/>
1141 </operands>
1142 </operands>
1143 <operands xsi:type="language_1:And">
1144 <operands xsi:type="language_1:InstanceOf">
1145 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.0"/>
1146 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1147 </operands>
1148 <operands xsi:type="language_1:InstanceOf">
1149 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.1"/>
1150 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1151 </operands>
1152 </operands>
1153 </value>
1154 </relations>
1155 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries cubeSat3U" annotations="//@annotations.21">
1156 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1157 <variables name="parameter Sat">
1158 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1159 </variables>
1160 <value xsi:type="language_1:Or">
1161 <operands xsi:type="language_1:And">
1162 <operands xsi:type="language_1:InstanceOf">
1163 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@variables.0"/>
1164 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1165 </operands>
1166 </operands>
1167 </value>
1168 </relations>
1169 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries cubeSat6U" annotations="//@annotations.22">
1170 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1171 <variables name="parameter Sat">
1172 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1173 </variables>
1174 <value xsi:type="language_1:Or">
1175 <operands xsi:type="language_1:And">
1176 <operands xsi:type="language_1:InstanceOf">
1177 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.0"/>
1178 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
1179 </operands>
1180 </operands>
1181 </value>
1182 </relations>
1183 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries communicationLoop" annotations="//@annotations.23">
1184 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1185 <variables name="parameter Element">
1186 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1187 </variables>
1188 <value xsi:type="language_1:Or">
1189 <operands xsi:type="language_1:And">
1190 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19">
1191 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.0"/>
1192 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.0"/>
1193 </operands>
1194 </operands>
1195 </value>
1196 </relations>
1197 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries indirectCommunicationLink" annotations="//@annotations.24">
1198 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1199 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1200 <variables name="parameter Source">
1201 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1202 </variables>
1203 <variables name="parameter Target">
1204 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1205 </variables>
1206 <value xsi:type="language_1:Or">
1207 <operands xsi:type="language_1:And">
1208 <operands xsi:type="language_1:TransitiveClosure" relation="//@relations.20"/>
1209 </operands>
1210 </value>
1211 </relations>
1212 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries directCommunicationLink" annotations="//@annotations.25">
1213 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1214 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1215 <variables name="parameter Source">
1216 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1217 </variables>
1218 <variables name="parameter Target">
1219 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1220 </variables>
1221 <value xsi:type="language_1:Or">
1222 <operands xsi:type="language_1:Exists">
1223 <quantifiedVariables name="variable SourceSubsystem">
1224 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1225 </quantifiedVariables>
1226 <quantifiedVariables name="variable TargetSubsystem">
1227 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1228 </quantifiedVariables>
1229 <expression xsi:type="language_1:And">
1230 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.4">
1231 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@value/@operands.0/@quantifiedVariables.0"/>
1232 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@value/@operands.0/@quantifiedVariables.1"/>
1233 </operands>
1234 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
1235 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.0"/>
1236 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@value/@operands.0/@quantifiedVariables.0"/>
1237 </operands>
1238 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
1239 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.1"/>
1240 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@value/@operands.0/@quantifiedVariables.1"/>
1241 </operands>
1242 <operands xsi:type="language_1:InstanceOf">
1243 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@value/@operands.0/@quantifiedVariables.1"/>
1244 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1245 </operands>
1246 </expression>
1247 </operands>
1248 </value>
1249 </relations>
1250 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetBand" annotations="//@annotations.26">
1251 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1252 <variables name="parameter SourceSubsystem">
1253 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1254 </variables>
1255 <value xsi:type="language_1:Or">
1256 <operands xsi:type="language_1:Exists">
1257 <quantifiedVariables name="variable TargetSubsystem">
1258 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1259 </quantifiedVariables>
1260 <expression xsi:type="language_1:And">
1261 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.4">
1262 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.0"/>
1263 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@value/@operands.0/@quantifiedVariables.0"/>
1264 </operands>
1265 <operands xsi:type="language_1:InstanceOf">
1266 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@value/@operands.0/@quantifiedVariables.0"/>
1267 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1268 </operands>
1269 <operands xsi:type="language_1:Not">
1270 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15">
1271 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.0"/>
1272 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@value/@operands.0/@quantifiedVariables.0"/>
1273 </operand>
1274 </operands>
1275 </expression>
1276 </operands>
1277 </value>
1278 </relations>
1279 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries threeUCubeSatWithNonUhfCrossLink" annotations="//@annotations.27">
1280 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1281 <variables name="parameter Sat">
1282 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1283 </variables>
1284 <value xsi:type="language_1:Or">
1285 <operands xsi:type="language_1:Exists">
1286 <quantifiedVariables name="variable SourceComm">
1287 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1288 </quantifiedVariables>
1289 <quantifiedVariables name="variable TargetComm">
1290 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1291 </quantifiedVariables>
1292 <quantifiedVariables name="variable Target">
1293 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
1294 </quantifiedVariables>
1295 <expression xsi:type="language_1:And">
1296 <operands xsi:type="language_1:InstanceOf">
1297 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.0"/>
1298 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
1299 </operands>
1300 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
1301 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.0"/>
1302 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.0"/>
1303 </operands>
1304 <operands xsi:type="language_1:Not">
1305 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23">
1306 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.0"/>
1307 </operand>
1308 </operands>
1309 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.4">
1310 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.0"/>
1311 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.1"/>
1312 </operands>
1313 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
1314 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.2"/>
1315 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.1"/>
1316 </operands>
1317 <operands xsi:type="language_1:InstanceOf">
1318 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.1"/>
1319 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1320 </operands>
1321 <operands xsi:type="language_1:Not">
1322 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24">
1323 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.2"/>
1324 </operand>
1325 </operands>
1326 </expression>
1327 </operands>
1328 </value>
1329 </relations>
1330 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemBandUhf" annotations="//@annotations.28">
1331 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/>
1332 <variables name="parameter Comm">
1333 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/>
1334 </variables>
1335 <value xsi:type="language_1:Or">
1336 <operands xsi:type="language_1:And">
1337 <operands xsi:type="language_1:InstanceOf">
1338 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@variables.0"/>
1339 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.12"/>
1340 </operands>
1341 </operands>
1342 </value>
1343 </relations>
1344 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries groundStationNetwork" annotations="//@annotations.29">
1345 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
1346 <variables name="parameter Network">
1347 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
1348 </variables>
1349 <value xsi:type="language_1:Or">
1350 <operands xsi:type="language_1:And">
1351 <operands xsi:type="language_1:InstanceOf">
1352 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@variables.0"/>
1353 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
1354 </operands>
1355 </operands>
1356 </value>
1357 </relations>
1358 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries cubeSatWithKaAntenna" annotations="//@annotations.30">
1359 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1360 <variables name="parameter Spacecraft">
1361 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1362 </variables>
1363 <value xsi:type="language_1:Or">
1364 <operands xsi:type="language_1:Exists">
1365 <quantifiedVariables name="variable Comm">
1366 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1367 </quantifiedVariables>
1368 <expression xsi:type="language_1:And">
1369 <operands xsi:type="language_1:InstanceOf">
1370 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@variables.0"/>
1371 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
1372 </operands>
1373 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
1374 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@variables.0"/>
1375 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.0"/>
1376 </operands>
1377 <operands xsi:type="language_1:InstanceOf">
1378 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.0"/>
1379 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.14"/>
1380 </operands>
1381 <operands xsi:type="language_1:Not">
1382 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26">
1383 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@variables.0"/>
1384 </operand>
1385 </operands>
1386 </expression>
1387 </operands>
1388 </value>
1389 </relations>
1390 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains satellite queries smallSat" annotations="//@annotations.31">
1391 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/>
1392 <variables name="parameter Sat">
1393 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/>
1394 </variables>
1395 <value xsi:type="language_1:Or">
1396 <operands xsi:type="language_1:And">
1397 <operands xsi:type="language_1:InstanceOf">
1398 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@variables.0"/>
1399 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.10"/>
1400 </operands>
1401 </operands>
1402 </value>
1403 </relations>
1404 <elements name="o 1" definedInType="//@types.15 //@types.17"/>
1405 <elements name="o 2" definedInType="//@types.19 //@types.21"/>
1406 <elements name="o 3" definedInType="//@types.23 //@types.25"/>
1407 <elements name="o 4" definedInType="//@types.23 //@types.27"/>
1408 <containmentHierarchies typesOrderedInHierarchy="//@types.2 //@types.0 //@types.7 //@types.3 //@types.5 //@types.6 //@types.9 //@types.13 //@types.8 //@types.14 //@types.4 //@types.1 //@types.12 //@types.10 //@types.11 //@types.15 //@types.16 //@types.17 //@types.18 //@types.19 //@types.20 //@types.21 //@types.22 //@types.23 //@types.24 //@types.25 //@types.26 //@types.27 //@types.28" containmentRelations="//@relations.0 //@relations.1 //@relations.2 //@relations.3"/>
1409 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.0" relation="//@relations.0" lower="1"/>
1410 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.1" relation="//@relations.0" upper="1"/>
1411 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.2" relation="//@relations.1" lower="2"/>
1412 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.3" relation="//@relations.1" upper="50"/>
1413 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.4" relation="//@relations.2" lower="1"/>
1414 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.5" relation="//@relations.2" upper="2"/>
1415 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.6" relation="//@relations.3" upper="1"/>
1416 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.7" relation="//@relations.4" upper="1"/>
1417 <annotations xsi:type="partial2logicannotations:PartialModelRelation2Assertion" target="//@assertions.8" targetRelation="//@relations.0"/>
1418 <annotations xsi:type="partial2logicannotations:PartialModelRelation2Assertion" target="//@assertions.9" targetRelation="//@relations.2"/>
1419 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.5" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLinkDoesNotStartAtContainingElement"/>
1420 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.6" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.transmittingCommSubsystem"/>
1421 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.7" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.notEnoughInterferometryPayloads"/>
1422 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.8" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.atLeastTwoInterferometryPayloads"/>
1423 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.9" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftWithInterferometryPayload"/>
1424 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.10" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noLinkToGroundStation"/>
1425 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.11" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noPotentialLinkToGroundStation"/>
1426 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.12" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.indirectLinkAllowed"/>
1427 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.13" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.linkAllowed"/>
1428 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.14" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.matchingAntenna"/>
1429 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.15" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.matchingCommSubsystem"/>
1430 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.16" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.cubeSat3U"/>
1431 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.17" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.cubeSat6U"/>
1432 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.18" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLoop"/>
1433 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.19" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.indirectCommunicationLink"/>
1434 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.20" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.directCommunicationLink"/>
1435 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.21" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetBand"/>
1436 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.22" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.threeUCubeSatWithNonUhfCrossLink"/>
1437 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.23" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.commSubsystemBandUhf"/>
1438 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.24" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.groundStationNetwork"/>
1439 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.25" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.cubeSatWithKaAntenna"/>
1440 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.26" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.smallSat"/>
1441 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.10" query="//@annotations.10"/>
1442 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.11" query="//@annotations.12"/>
1443 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.12" query="//@annotations.15"/>
1444 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.13" query="//@annotations.16"/>
1445 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.14" query="//@annotations.23"/>
1446 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.15" query="//@annotations.26"/>
1447 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.16" query="//@annotations.27"/>
1448 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.17" query="//@annotations.30"/>
1449</language:LogicProblem>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run1/generated3valued.vql_deactivated b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run1/generated3valued.vql_deactivated
deleted file mode 100644
index c96a951c..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run1/generated3valued.vql_deactivated
+++ /dev/null
@@ -1,3000 +0,0 @@
1import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage"
2import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem"
3import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language"
4
5//////////
6// 0. Util
7//////////
8private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) {
9 PartialInterpretation.problem(interpretation,problem);
10}
11
12/////////////////////////
13// 0.1 Existence
14/////////////////////////
15private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
16 find interpretation(problem,interpretation);
17 LogicProblem.elements(problem,element);
18} or {
19 find interpretation(problem,interpretation);
20 PartialInterpretation.newElements(interpretation,element);
21}
22
23private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
24 find mustExist(problem,interpretation,element);
25} or {
26 find interpretation(problem,interpretation);
27 neg find elementCloseWorld(element);
28 PartialInterpretation.openWorldElements(interpretation,element);
29}
30
31private pattern elementCloseWorld(element:DefinedElement) {
32 PartialInterpretation.openWorldElements(i,element);
33 PartialInterpretation.maxNewElements(i,0);
34} or {
35 Scope.targetTypeInterpretation(scope,interpretation);
36 PartialTypeInterpratation.elements(interpretation,element);
37 Scope.maxNewElements(scope,0);
38}
39
40////////////////////////
41// 0.2 Equivalence
42////////////////////////
43pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) {
44 find mayExist(problem,interpretation,a);
45 find mayExist(problem,interpretation,b);
46 a == b;
47}
48pattern mustEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) {
49 find mustExist(problem,interpretation,a);
50 find mustExist(problem,interpretation,b);
51 a == b;
52}
53
54////////////////////////
55// 0.3 Required Patterns by TypeIndexer
56////////////////////////
57private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) {
58 find interpretation(problem,interpretation);
59 LogicProblem.types(problem,type);
60 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
61 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
62}
63
64private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) {
65 find interpretation(problem,interpretation);
66 LogicProblem.types(problem,type);
67 TypeDefinition.elements(type,element);
68} or {
69 find interpretation(problem,interpretation);
70 find typeInterpretation(problem,interpretation,type,typeInterpretation);
71 PartialComplexTypeInterpretation.elements(typeInterpretation,element);
72}
73
74private pattern isPrimitive(element: PrimitiveElement) {
75 PrimitiveElement(element);
76}
77
78//////////
79// 1. Problem-Specific Base Indexers
80//////////
81// 1.1 Type Indexers
82//////////
83// 1.1.1 primitive Type Indexers
84//////////
85
86//////////
87// 1.1.2 domain-specific Type Indexers
88//////////
89/**
90 * An element must be an instance of type "ConstellationMission class".
91 */
92private pattern mustInstanceOfConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
93 Type.name(type,"ConstellationMission class");
94 find directInstanceOf(problem,interpretation,element,type);
95}
96private pattern scopeDisallowsNewConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation) {
97 find interpretation(problem,interpretation);
98 PartialInterpretation.scopes(interpretation,scope);
99 Scope.targetTypeInterpretation(scope,typeInterpretation);
100 Scope.maxNewElements(scope,0);
101 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
102 Type.name(type,"ConstellationMission class");
103}
104
105/**
106 * An element may be an instance of type "ConstellationMission class".
107 */
108private pattern mayInstanceOfConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
109{
110 find interpretation(problem,interpretation);
111 PartialInterpretation.newElements(interpretation,element);
112 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
113 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
114 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
115 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
116 neg find mustInstanceOfPayload_class(problem,interpretation,element);
117 neg find scopeDisallowsNewConstellationMission_class(problem, interpretation);
118 neg find isPrimitive(element);
119} or {
120 find interpretation(problem,interpretation);
121 PartialInterpretation.openWorldElements(interpretation,element);
122 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
123 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
124 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
125 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
126 neg find mustInstanceOfPayload_class(problem,interpretation,element);
127 neg find scopeDisallowsNewConstellationMission_class(problem, interpretation);
128 neg find isPrimitive(element);
129} or
130{ find mustInstanceOfConstellationMission_class(problem,interpretation,element); }
131/**
132 * An element must be an instance of type "InterferometryMission class".
133 */
134private pattern mustInstanceOfInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
135 Type.name(type,"InterferometryMission class");
136 find directInstanceOf(problem,interpretation,element,type);
137}
138private pattern scopeDisallowsNewInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation) {
139 find interpretation(problem,interpretation);
140 PartialInterpretation.scopes(interpretation,scope);
141 Scope.targetTypeInterpretation(scope,typeInterpretation);
142 Scope.maxNewElements(scope,0);
143 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
144 Type.name(type,"InterferometryMission class");
145}
146
147/**
148 * An element may be an instance of type "InterferometryMission class".
149 */
150private pattern mayInstanceOfInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
151{
152 find interpretation(problem,interpretation);
153 PartialInterpretation.newElements(interpretation,element);
154 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
155 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
156 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
157 neg find mustInstanceOfPayload_class(problem,interpretation,element);
158 neg find scopeDisallowsNewInterferometryMission_class(problem, interpretation);
159 neg find isPrimitive(element);
160} or {
161 find interpretation(problem,interpretation);
162 PartialInterpretation.openWorldElements(interpretation,element);
163 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
164 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
165 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
166 neg find mustInstanceOfPayload_class(problem,interpretation,element);
167 neg find scopeDisallowsNewInterferometryMission_class(problem, interpretation);
168 neg find isPrimitive(element);
169} or
170{ find mustInstanceOfInterferometryMission_class(problem,interpretation,element); }
171/**
172 * An element must be an instance of type "CommunicatingElement class".
173 */
174private pattern mustInstanceOfCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
175 Type.name(type,"CommunicatingElement class");
176 find directInstanceOf(problem,interpretation,element,type);
177}
178private pattern scopeDisallowsNewCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
179 find interpretation(problem,interpretation);
180 PartialInterpretation.scopes(interpretation,scope);
181 Scope.targetTypeInterpretation(scope,typeInterpretation);
182 Scope.maxNewElements(scope,0);
183 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
184 Type.name(type,"CommunicatingElement class");
185}
186
187/**
188 * An element may be an instance of type "CommunicatingElement class".
189 */
190private pattern mayInstanceOfCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
191{
192 find interpretation(problem,interpretation);
193 PartialInterpretation.newElements(interpretation,element);
194 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
195 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
196 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
197 neg find mustInstanceOfPayload_class(problem,interpretation,element);
198 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
199 neg find scopeDisallowsNewCommunicatingElement_class(problem, interpretation);
200 neg find isPrimitive(element);
201} or {
202 find interpretation(problem,interpretation);
203 PartialInterpretation.openWorldElements(interpretation,element);
204 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
205 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
206 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
207 neg find mustInstanceOfPayload_class(problem,interpretation,element);
208 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
209 neg find scopeDisallowsNewCommunicatingElement_class(problem, interpretation);
210 neg find isPrimitive(element);
211} or
212{ find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); }
213/**
214 * An element must be an instance of type "GroundStationNetwork class".
215 */
216private pattern mustInstanceOfGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
217 Type.name(type,"GroundStationNetwork class");
218 find directInstanceOf(problem,interpretation,element,type);
219}
220private pattern scopeDisallowsNewGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation) {
221 find interpretation(problem,interpretation);
222 PartialInterpretation.scopes(interpretation,scope);
223 Scope.targetTypeInterpretation(scope,typeInterpretation);
224 Scope.maxNewElements(scope,0);
225 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
226 Type.name(type,"GroundStationNetwork class");
227}
228
229/**
230 * An element may be an instance of type "GroundStationNetwork class".
231 */
232private pattern mayInstanceOfGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
233{
234 find interpretation(problem,interpretation);
235 PartialInterpretation.newElements(interpretation,element);
236 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
237 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
238 neg find mustInstanceOfPayload_class(problem,interpretation,element);
239 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
240 neg find scopeDisallowsNewGroundStationNetwork_class(problem, interpretation);
241 neg find isPrimitive(element);
242} or {
243 find interpretation(problem,interpretation);
244 PartialInterpretation.openWorldElements(interpretation,element);
245 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
246 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
247 neg find mustInstanceOfPayload_class(problem,interpretation,element);
248 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
249 neg find scopeDisallowsNewGroundStationNetwork_class(problem, interpretation);
250 neg find isPrimitive(element);
251} or
252{ find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); }
253/**
254 * An element must be an instance of type "Spacecraft class".
255 */
256private pattern mustInstanceOfSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
257 Type.name(type,"Spacecraft class");
258 find directInstanceOf(problem,interpretation,element,type);
259}
260private pattern scopeDisallowsNewSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation) {
261 find interpretation(problem,interpretation);
262 PartialInterpretation.scopes(interpretation,scope);
263 Scope.targetTypeInterpretation(scope,typeInterpretation);
264 Scope.maxNewElements(scope,0);
265 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
266 Type.name(type,"Spacecraft class");
267}
268
269/**
270 * An element may be an instance of type "Spacecraft class".
271 */
272private pattern mayInstanceOfSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
273{
274 find interpretation(problem,interpretation);
275 PartialInterpretation.newElements(interpretation,element);
276 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
277 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
278 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
279 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
280 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
281 neg find mustInstanceOfPayload_class(problem,interpretation,element);
282 neg find scopeDisallowsNewSpacecraft_class(problem, interpretation);
283 neg find isPrimitive(element);
284} or {
285 find interpretation(problem,interpretation);
286 PartialInterpretation.openWorldElements(interpretation,element);
287 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
288 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
289 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
290 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
291 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
292 neg find mustInstanceOfPayload_class(problem,interpretation,element);
293 neg find scopeDisallowsNewSpacecraft_class(problem, interpretation);
294 neg find isPrimitive(element);
295} or
296{ find mustInstanceOfSpacecraft_class(problem,interpretation,element); }
297/**
298 * An element must be an instance of type "CommSubsystem class".
299 */
300private pattern mustInstanceOfCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
301 Type.name(type,"CommSubsystem class");
302 find directInstanceOf(problem,interpretation,element,type);
303}
304private pattern scopeDisallowsNewCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) {
305 find interpretation(problem,interpretation);
306 PartialInterpretation.scopes(interpretation,scope);
307 Scope.targetTypeInterpretation(scope,typeInterpretation);
308 Scope.maxNewElements(scope,0);
309 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
310 Type.name(type,"CommSubsystem class");
311}
312
313/**
314 * An element may be an instance of type "CommSubsystem class".
315 */
316private pattern mayInstanceOfCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
317{
318 find interpretation(problem,interpretation);
319 PartialInterpretation.newElements(interpretation,element);
320 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
321 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
322 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
323 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
324 neg find mustInstanceOfPayload_class(problem,interpretation,element);
325 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
326 neg find scopeDisallowsNewCommSubsystem_class(problem, interpretation);
327 neg find isPrimitive(element);
328} or {
329 find interpretation(problem,interpretation);
330 PartialInterpretation.openWorldElements(interpretation,element);
331 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
332 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
333 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
334 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
335 neg find mustInstanceOfPayload_class(problem,interpretation,element);
336 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
337 neg find scopeDisallowsNewCommSubsystem_class(problem, interpretation);
338 neg find isPrimitive(element);
339} or
340{ find mustInstanceOfCommSubsystem_class(problem,interpretation,element); }
341/**
342 * An element must be an instance of type "Payload class".
343 */
344private pattern mustInstanceOfPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
345 Type.name(type,"Payload class");
346 find directInstanceOf(problem,interpretation,element,type);
347}
348private pattern scopeDisallowsNewPayload_class(problem:LogicProblem, interpretation:PartialInterpretation) {
349 find interpretation(problem,interpretation);
350 PartialInterpretation.scopes(interpretation,scope);
351 Scope.targetTypeInterpretation(scope,typeInterpretation);
352 Scope.maxNewElements(scope,0);
353 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
354 Type.name(type,"Payload class");
355}
356
357/**
358 * An element may be an instance of type "Payload class".
359 */
360private pattern mayInstanceOfPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
361{
362 find interpretation(problem,interpretation);
363 PartialInterpretation.newElements(interpretation,element);
364 neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element);
365 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
366 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
367 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
368 neg find scopeDisallowsNewPayload_class(problem, interpretation);
369 neg find isPrimitive(element);
370} or {
371 find interpretation(problem,interpretation);
372 PartialInterpretation.openWorldElements(interpretation,element);
373 neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element);
374 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
375 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
376 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
377 neg find scopeDisallowsNewPayload_class(problem, interpretation);
378 neg find isPrimitive(element);
379} or
380{ find mustInstanceOfPayload_class(problem,interpretation,element); }
381/**
382 * An element must be an instance of type "InterferometryPayload class".
383 */
384private pattern mustInstanceOfInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
385 Type.name(type,"InterferometryPayload class");
386 find directInstanceOf(problem,interpretation,element,type);
387}
388private pattern scopeDisallowsNewInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation) {
389 find interpretation(problem,interpretation);
390 PartialInterpretation.scopes(interpretation,scope);
391 Scope.targetTypeInterpretation(scope,typeInterpretation);
392 Scope.maxNewElements(scope,0);
393 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
394 Type.name(type,"InterferometryPayload class");
395}
396
397/**
398 * An element may be an instance of type "InterferometryPayload class".
399 */
400private pattern mayInstanceOfInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
401{
402 find interpretation(problem,interpretation);
403 PartialInterpretation.newElements(interpretation,element);
404 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
405 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
406 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
407 neg find scopeDisallowsNewInterferometryPayload_class(problem, interpretation);
408 neg find isPrimitive(element);
409} or {
410 find interpretation(problem,interpretation);
411 PartialInterpretation.openWorldElements(interpretation,element);
412 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
413 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
414 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
415 neg find scopeDisallowsNewInterferometryPayload_class(problem, interpretation);
416 neg find isPrimitive(element);
417} or
418{ find mustInstanceOfInterferometryPayload_class(problem,interpretation,element); }
419/**
420 * An element must be an instance of type "CubeSat3U class".
421 */
422private pattern mustInstanceOfCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
423 Type.name(type,"CubeSat3U class");
424 find directInstanceOf(problem,interpretation,element,type);
425}
426private pattern scopeDisallowsNewCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation) {
427 find interpretation(problem,interpretation);
428 PartialInterpretation.scopes(interpretation,scope);
429 Scope.targetTypeInterpretation(scope,typeInterpretation);
430 Scope.maxNewElements(scope,0);
431 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
432 Type.name(type,"CubeSat3U class");
433}
434
435/**
436 * An element may be an instance of type "CubeSat3U class".
437 */
438private pattern mayInstanceOfCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
439{
440 find interpretation(problem,interpretation);
441 PartialInterpretation.newElements(interpretation,element);
442 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
443 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
444 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
445 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
446 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
447 neg find mustInstanceOfPayload_class(problem,interpretation,element);
448 neg find scopeDisallowsNewCubeSat3U_class(problem, interpretation);
449 neg find isPrimitive(element);
450} or {
451 find interpretation(problem,interpretation);
452 PartialInterpretation.openWorldElements(interpretation,element);
453 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
454 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
455 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
456 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
457 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
458 neg find mustInstanceOfPayload_class(problem,interpretation,element);
459 neg find scopeDisallowsNewCubeSat3U_class(problem, interpretation);
460 neg find isPrimitive(element);
461} or
462{ find mustInstanceOfCubeSat3U_class(problem,interpretation,element); }
463/**
464 * An element must be an instance of type "CubeSat6U class".
465 */
466private pattern mustInstanceOfCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
467 Type.name(type,"CubeSat6U class");
468 find directInstanceOf(problem,interpretation,element,type);
469}
470private pattern scopeDisallowsNewCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation) {
471 find interpretation(problem,interpretation);
472 PartialInterpretation.scopes(interpretation,scope);
473 Scope.targetTypeInterpretation(scope,typeInterpretation);
474 Scope.maxNewElements(scope,0);
475 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
476 Type.name(type,"CubeSat6U class");
477}
478
479/**
480 * An element may be an instance of type "CubeSat6U class".
481 */
482private pattern mayInstanceOfCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
483{
484 find interpretation(problem,interpretation);
485 PartialInterpretation.newElements(interpretation,element);
486 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
487 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
488 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
489 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
490 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
491 neg find mustInstanceOfPayload_class(problem,interpretation,element);
492 neg find scopeDisallowsNewCubeSat6U_class(problem, interpretation);
493 neg find isPrimitive(element);
494} or {
495 find interpretation(problem,interpretation);
496 PartialInterpretation.openWorldElements(interpretation,element);
497 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
498 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
499 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
500 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
501 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
502 neg find mustInstanceOfPayload_class(problem,interpretation,element);
503 neg find scopeDisallowsNewCubeSat6U_class(problem, interpretation);
504 neg find isPrimitive(element);
505} or
506{ find mustInstanceOfCubeSat6U_class(problem,interpretation,element); }
507/**
508 * An element must be an instance of type "SmallSat class".
509 */
510private pattern mustInstanceOfSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
511 Type.name(type,"SmallSat class");
512 find directInstanceOf(problem,interpretation,element,type);
513}
514private pattern scopeDisallowsNewSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation) {
515 find interpretation(problem,interpretation);
516 PartialInterpretation.scopes(interpretation,scope);
517 Scope.targetTypeInterpretation(scope,typeInterpretation);
518 Scope.maxNewElements(scope,0);
519 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
520 Type.name(type,"SmallSat class");
521}
522
523/**
524 * An element may be an instance of type "SmallSat class".
525 */
526private pattern mayInstanceOfSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
527{
528 find interpretation(problem,interpretation);
529 PartialInterpretation.newElements(interpretation,element);
530 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
531 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
532 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
533 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
534 neg find mustInstanceOfPayload_class(problem,interpretation,element);
535 neg find scopeDisallowsNewSmallSat_class(problem, interpretation);
536 neg find isPrimitive(element);
537} or {
538 find interpretation(problem,interpretation);
539 PartialInterpretation.openWorldElements(interpretation,element);
540 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
541 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
542 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
543 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
544 neg find mustInstanceOfPayload_class(problem,interpretation,element);
545 neg find scopeDisallowsNewSmallSat_class(problem, interpretation);
546 neg find isPrimitive(element);
547} or
548{ find mustInstanceOfSmallSat_class(problem,interpretation,element); }
549/**
550 * An element must be an instance of type "CubeSat class".
551 */
552private pattern mustInstanceOfCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
553 Type.name(type,"CubeSat class");
554 find directInstanceOf(problem,interpretation,element,type);
555}
556private pattern scopeDisallowsNewCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation) {
557 find interpretation(problem,interpretation);
558 PartialInterpretation.scopes(interpretation,scope);
559 Scope.targetTypeInterpretation(scope,typeInterpretation);
560 Scope.maxNewElements(scope,0);
561 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
562 Type.name(type,"CubeSat class");
563}
564
565/**
566 * An element may be an instance of type "CubeSat class".
567 */
568private pattern mayInstanceOfCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
569{
570 find interpretation(problem,interpretation);
571 PartialInterpretation.newElements(interpretation,element);
572 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
573 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
574 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
575 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
576 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
577 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
578 neg find mustInstanceOfPayload_class(problem,interpretation,element);
579 neg find scopeDisallowsNewCubeSat_class(problem, interpretation);
580 neg find isPrimitive(element);
581} or {
582 find interpretation(problem,interpretation);
583 PartialInterpretation.openWorldElements(interpretation,element);
584 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
585 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
586 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
587 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
588 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
589 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
590 neg find mustInstanceOfPayload_class(problem,interpretation,element);
591 neg find scopeDisallowsNewCubeSat_class(problem, interpretation);
592 neg find isPrimitive(element);
593} or
594{ find mustInstanceOfCubeSat_class(problem,interpretation,element); }
595/**
596 * An element must be an instance of type "UHFCommSubsystem class".
597 */
598private pattern mustInstanceOfUHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
599 Type.name(type,"UHFCommSubsystem class");
600 find directInstanceOf(problem,interpretation,element,type);
601}
602private pattern scopeDisallowsNewUHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) {
603 find interpretation(problem,interpretation);
604 PartialInterpretation.scopes(interpretation,scope);
605 Scope.targetTypeInterpretation(scope,typeInterpretation);
606 Scope.maxNewElements(scope,0);
607 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
608 Type.name(type,"UHFCommSubsystem class");
609}
610
611/**
612 * An element may be an instance of type "UHFCommSubsystem class".
613 */
614private pattern mayInstanceOfUHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
615{
616 find interpretation(problem,interpretation);
617 PartialInterpretation.newElements(interpretation,element);
618 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
619 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
620 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
621 neg find mustInstanceOfPayload_class(problem,interpretation,element);
622 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
623 neg find scopeDisallowsNewUHFCommSubsystem_class(problem, interpretation);
624 neg find isPrimitive(element);
625} or {
626 find interpretation(problem,interpretation);
627 PartialInterpretation.openWorldElements(interpretation,element);
628 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
629 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
630 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
631 neg find mustInstanceOfPayload_class(problem,interpretation,element);
632 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
633 neg find scopeDisallowsNewUHFCommSubsystem_class(problem, interpretation);
634 neg find isPrimitive(element);
635} or
636{ find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element); }
637/**
638 * An element must be an instance of type "XCommSubsystem class".
639 */
640private pattern mustInstanceOfXCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
641 Type.name(type,"XCommSubsystem class");
642 find directInstanceOf(problem,interpretation,element,type);
643}
644private pattern scopeDisallowsNewXCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) {
645 find interpretation(problem,interpretation);
646 PartialInterpretation.scopes(interpretation,scope);
647 Scope.targetTypeInterpretation(scope,typeInterpretation);
648 Scope.maxNewElements(scope,0);
649 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
650 Type.name(type,"XCommSubsystem class");
651}
652
653/**
654 * An element may be an instance of type "XCommSubsystem class".
655 */
656private pattern mayInstanceOfXCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
657{
658 find interpretation(problem,interpretation);
659 PartialInterpretation.newElements(interpretation,element);
660 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
661 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
662 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
663 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
664 neg find mustInstanceOfPayload_class(problem,interpretation,element);
665 neg find scopeDisallowsNewXCommSubsystem_class(problem, interpretation);
666 neg find isPrimitive(element);
667} or {
668 find interpretation(problem,interpretation);
669 PartialInterpretation.openWorldElements(interpretation,element);
670 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
671 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
672 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
673 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
674 neg find mustInstanceOfPayload_class(problem,interpretation,element);
675 neg find scopeDisallowsNewXCommSubsystem_class(problem, interpretation);
676 neg find isPrimitive(element);
677} or
678{ find mustInstanceOfXCommSubsystem_class(problem,interpretation,element); }
679/**
680 * An element must be an instance of type "KaCommSubsystem class".
681 */
682private pattern mustInstanceOfKaCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
683 Type.name(type,"KaCommSubsystem class");
684 find directInstanceOf(problem,interpretation,element,type);
685}
686private pattern scopeDisallowsNewKaCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) {
687 find interpretation(problem,interpretation);
688 PartialInterpretation.scopes(interpretation,scope);
689 Scope.targetTypeInterpretation(scope,typeInterpretation);
690 Scope.maxNewElements(scope,0);
691 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
692 Type.name(type,"KaCommSubsystem class");
693}
694
695/**
696 * An element may be an instance of type "KaCommSubsystem class".
697 */
698private pattern mayInstanceOfKaCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
699{
700 find interpretation(problem,interpretation);
701 PartialInterpretation.newElements(interpretation,element);
702 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
703 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
704 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
705 neg find mustInstanceOfPayload_class(problem,interpretation,element);
706 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
707 neg find scopeDisallowsNewKaCommSubsystem_class(problem, interpretation);
708 neg find isPrimitive(element);
709} or {
710 find interpretation(problem,interpretation);
711 PartialInterpretation.openWorldElements(interpretation,element);
712 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
713 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
714 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
715 neg find mustInstanceOfPayload_class(problem,interpretation,element);
716 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
717 neg find scopeDisallowsNewKaCommSubsystem_class(problem, interpretation);
718 neg find isPrimitive(element);
719} or
720{ find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element); }
721/**
722 * An element must be an instance of type "ConstellationMission class DefinedPart".
723 */
724private pattern mustInstanceOfConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
725 Type.name(type,"ConstellationMission class DefinedPart");
726 find directInstanceOf(problem,interpretation,element,type);
727}
728private pattern scopeDisallowsNewConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
729 find interpretation(problem,interpretation);
730 PartialInterpretation.scopes(interpretation,scope);
731 Scope.targetTypeInterpretation(scope,typeInterpretation);
732 Scope.maxNewElements(scope,0);
733 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
734 Type.name(type,"ConstellationMission class DefinedPart");
735}
736
737/**
738 * An element may be an instance of type "ConstellationMission class DefinedPart".
739 */
740private pattern mayInstanceOfConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
741{ find mustInstanceOfConstellationMission_class_DefinedPart(problem,interpretation,element); }
742/**
743 * An element must be an instance of type "ConstellationMission class UndefinedPart".
744 */
745private pattern mustInstanceOfConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
746 Type.name(type,"ConstellationMission class UndefinedPart");
747 find directInstanceOf(problem,interpretation,element,type);
748}
749private pattern scopeDisallowsNewConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
750 find interpretation(problem,interpretation);
751 PartialInterpretation.scopes(interpretation,scope);
752 Scope.targetTypeInterpretation(scope,typeInterpretation);
753 Scope.maxNewElements(scope,0);
754 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
755 Type.name(type,"ConstellationMission class UndefinedPart");
756}
757
758/**
759 * An element may be an instance of type "ConstellationMission class UndefinedPart".
760 */
761private pattern mayInstanceOfConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
762{
763 find interpretation(problem,interpretation);
764 PartialInterpretation.newElements(interpretation,element);
765 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
766 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
767 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
768 neg find mustInstanceOfPayload_class(problem,interpretation,element);
769 neg find scopeDisallowsNewConstellationMission_class_UndefinedPart(problem, interpretation);
770 neg find isPrimitive(element);
771} or {
772 find interpretation(problem,interpretation);
773 PartialInterpretation.openWorldElements(interpretation,element);
774 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
775 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
776 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
777 neg find mustInstanceOfPayload_class(problem,interpretation,element);
778 neg find scopeDisallowsNewConstellationMission_class_UndefinedPart(problem, interpretation);
779 neg find isPrimitive(element);
780} or
781{ find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element); }
782/**
783 * An element must be an instance of type "InterferometryMission class DefinedPart".
784 */
785private pattern mustInstanceOfInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
786 Type.name(type,"InterferometryMission class DefinedPart");
787 find directInstanceOf(problem,interpretation,element,type);
788}
789private pattern scopeDisallowsNewInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
790 find interpretation(problem,interpretation);
791 PartialInterpretation.scopes(interpretation,scope);
792 Scope.targetTypeInterpretation(scope,typeInterpretation);
793 Scope.maxNewElements(scope,0);
794 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
795 Type.name(type,"InterferometryMission class DefinedPart");
796}
797
798/**
799 * An element may be an instance of type "InterferometryMission class DefinedPart".
800 */
801private pattern mayInstanceOfInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
802{ find mustInstanceOfInterferometryMission_class_DefinedPart(problem,interpretation,element); }
803/**
804 * An element must be an instance of type "InterferometryMission class UndefinedPart".
805 */
806private pattern mustInstanceOfInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
807 Type.name(type,"InterferometryMission class UndefinedPart");
808 find directInstanceOf(problem,interpretation,element,type);
809}
810private pattern scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
811 find interpretation(problem,interpretation);
812 PartialInterpretation.scopes(interpretation,scope);
813 Scope.targetTypeInterpretation(scope,typeInterpretation);
814 Scope.maxNewElements(scope,0);
815 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
816 Type.name(type,"InterferometryMission class UndefinedPart");
817}
818
819/**
820 * An element may be an instance of type "InterferometryMission class UndefinedPart".
821 */
822private pattern mayInstanceOfInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
823{
824 find interpretation(problem,interpretation);
825 PartialInterpretation.newElements(interpretation,element);
826 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
827 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
828 neg find mustInstanceOfPayload_class(problem,interpretation,element);
829 neg find scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem, interpretation);
830 neg find isPrimitive(element);
831} or {
832 find interpretation(problem,interpretation);
833 PartialInterpretation.openWorldElements(interpretation,element);
834 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
835 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
836 neg find mustInstanceOfPayload_class(problem,interpretation,element);
837 neg find scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem, interpretation);
838 neg find isPrimitive(element);
839} or
840{ find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element); }
841/**
842 * An element must be an instance of type "CommunicatingElement class DefinedPart".
843 */
844private pattern mustInstanceOfCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
845 Type.name(type,"CommunicatingElement class DefinedPart");
846 find directInstanceOf(problem,interpretation,element,type);
847}
848private pattern scopeDisallowsNewCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
849 find interpretation(problem,interpretation);
850 PartialInterpretation.scopes(interpretation,scope);
851 Scope.targetTypeInterpretation(scope,typeInterpretation);
852 Scope.maxNewElements(scope,0);
853 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
854 Type.name(type,"CommunicatingElement class DefinedPart");
855}
856
857/**
858 * An element may be an instance of type "CommunicatingElement class DefinedPart".
859 */
860private pattern mayInstanceOfCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
861{ find mustInstanceOfCommunicatingElement_class_DefinedPart(problem,interpretation,element); }
862/**
863 * An element must be an instance of type "CommunicatingElement class UndefinedPart".
864 */
865private pattern mustInstanceOfCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
866 Type.name(type,"CommunicatingElement class UndefinedPart");
867 find directInstanceOf(problem,interpretation,element,type);
868}
869private pattern scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
870 find interpretation(problem,interpretation);
871 PartialInterpretation.scopes(interpretation,scope);
872 Scope.targetTypeInterpretation(scope,typeInterpretation);
873 Scope.maxNewElements(scope,0);
874 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
875 Type.name(type,"CommunicatingElement class UndefinedPart");
876}
877
878/**
879 * An element may be an instance of type "CommunicatingElement class UndefinedPart".
880 */
881private pattern mayInstanceOfCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
882{
883 find interpretation(problem,interpretation);
884 PartialInterpretation.newElements(interpretation,element);
885 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
886 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
887 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
888 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
889 neg find mustInstanceOfPayload_class(problem,interpretation,element);
890 neg find scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem, interpretation);
891 neg find isPrimitive(element);
892} or {
893 find interpretation(problem,interpretation);
894 PartialInterpretation.openWorldElements(interpretation,element);
895 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
896 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
897 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
898 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
899 neg find mustInstanceOfPayload_class(problem,interpretation,element);
900 neg find scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem, interpretation);
901 neg find isPrimitive(element);
902} or
903{ find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element); }
904/**
905 * An element must be an instance of type "GroundStationNetwork class DefinedPart".
906 */
907private pattern mustInstanceOfGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
908 Type.name(type,"GroundStationNetwork class DefinedPart");
909 find directInstanceOf(problem,interpretation,element,type);
910}
911private pattern scopeDisallowsNewGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
912 find interpretation(problem,interpretation);
913 PartialInterpretation.scopes(interpretation,scope);
914 Scope.targetTypeInterpretation(scope,typeInterpretation);
915 Scope.maxNewElements(scope,0);
916 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
917 Type.name(type,"GroundStationNetwork class DefinedPart");
918}
919
920/**
921 * An element may be an instance of type "GroundStationNetwork class DefinedPart".
922 */
923private pattern mayInstanceOfGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
924{ find mustInstanceOfGroundStationNetwork_class_DefinedPart(problem,interpretation,element); }
925/**
926 * An element must be an instance of type "GroundStationNetwork class UndefinedPart".
927 */
928private pattern mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
929 Type.name(type,"GroundStationNetwork class UndefinedPart");
930 find directInstanceOf(problem,interpretation,element,type);
931}
932private pattern scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
933 find interpretation(problem,interpretation);
934 PartialInterpretation.scopes(interpretation,scope);
935 Scope.targetTypeInterpretation(scope,typeInterpretation);
936 Scope.maxNewElements(scope,0);
937 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
938 Type.name(type,"GroundStationNetwork class UndefinedPart");
939}
940
941/**
942 * An element may be an instance of type "GroundStationNetwork class UndefinedPart".
943 */
944private pattern mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
945{
946 find interpretation(problem,interpretation);
947 PartialInterpretation.newElements(interpretation,element);
948 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
949 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
950 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
951 neg find mustInstanceOfPayload_class(problem,interpretation,element);
952 neg find scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem, interpretation);
953 neg find isPrimitive(element);
954} or {
955 find interpretation(problem,interpretation);
956 PartialInterpretation.openWorldElements(interpretation,element);
957 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
958 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
959 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
960 neg find mustInstanceOfPayload_class(problem,interpretation,element);
961 neg find scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem, interpretation);
962 neg find isPrimitive(element);
963} or
964{ find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element); }
965/**
966 * An element must be an instance of type "CommSubsystem class DefinedPart".
967 */
968private pattern mustInstanceOfCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
969 Type.name(type,"CommSubsystem class DefinedPart");
970 find directInstanceOf(problem,interpretation,element,type);
971}
972private pattern scopeDisallowsNewCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
973 find interpretation(problem,interpretation);
974 PartialInterpretation.scopes(interpretation,scope);
975 Scope.targetTypeInterpretation(scope,typeInterpretation);
976 Scope.maxNewElements(scope,0);
977 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
978 Type.name(type,"CommSubsystem class DefinedPart");
979}
980
981/**
982 * An element may be an instance of type "CommSubsystem class DefinedPart".
983 */
984private pattern mayInstanceOfCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
985{ find mustInstanceOfCommSubsystem_class_DefinedPart(problem,interpretation,element); }
986/**
987 * An element must be an instance of type "CommSubsystem class UndefinedPart".
988 */
989private pattern mustInstanceOfCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
990 Type.name(type,"CommSubsystem class UndefinedPart");
991 find directInstanceOf(problem,interpretation,element,type);
992}
993private pattern scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
994 find interpretation(problem,interpretation);
995 PartialInterpretation.scopes(interpretation,scope);
996 Scope.targetTypeInterpretation(scope,typeInterpretation);
997 Scope.maxNewElements(scope,0);
998 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
999 Type.name(type,"CommSubsystem class UndefinedPart");
1000}
1001
1002/**
1003 * An element may be an instance of type "CommSubsystem class UndefinedPart".
1004 */
1005private pattern mayInstanceOfCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1006{
1007 find interpretation(problem,interpretation);
1008 PartialInterpretation.newElements(interpretation,element);
1009 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1010 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1011 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1012 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
1013 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1014 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
1015 neg find scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem, interpretation);
1016 neg find isPrimitive(element);
1017} or {
1018 find interpretation(problem,interpretation);
1019 PartialInterpretation.openWorldElements(interpretation,element);
1020 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1021 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1022 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1023 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
1024 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1025 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
1026 neg find scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem, interpretation);
1027 neg find isPrimitive(element);
1028} or
1029{ find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element); }
1030/**
1031 * An element must be an instance of type "XCommSubsystem class DefinedPart".
1032 */
1033private pattern mustInstanceOfXCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
1034 Type.name(type,"XCommSubsystem class DefinedPart");
1035 find directInstanceOf(problem,interpretation,element,type);
1036}
1037private pattern scopeDisallowsNewXCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
1038 find interpretation(problem,interpretation);
1039 PartialInterpretation.scopes(interpretation,scope);
1040 Scope.targetTypeInterpretation(scope,typeInterpretation);
1041 Scope.maxNewElements(scope,0);
1042 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
1043 Type.name(type,"XCommSubsystem class DefinedPart");
1044}
1045
1046/**
1047 * An element may be an instance of type "XCommSubsystem class DefinedPart".
1048 */
1049private pattern mayInstanceOfXCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1050{ find mustInstanceOfXCommSubsystem_class_DefinedPart(problem,interpretation,element); }
1051/**
1052 * An element must be an instance of type "XCommSubsystem class UndefinedPart".
1053 */
1054private pattern mustInstanceOfXCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
1055 Type.name(type,"XCommSubsystem class UndefinedPart");
1056 find directInstanceOf(problem,interpretation,element,type);
1057}
1058private pattern scopeDisallowsNewXCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
1059 find interpretation(problem,interpretation);
1060 PartialInterpretation.scopes(interpretation,scope);
1061 Scope.targetTypeInterpretation(scope,typeInterpretation);
1062 Scope.maxNewElements(scope,0);
1063 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
1064 Type.name(type,"XCommSubsystem class UndefinedPart");
1065}
1066
1067/**
1068 * An element may be an instance of type "XCommSubsystem class UndefinedPart".
1069 */
1070private pattern mayInstanceOfXCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1071{
1072 find interpretation(problem,interpretation);
1073 PartialInterpretation.newElements(interpretation,element);
1074 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1075 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1076 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1077 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
1078 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1079 neg find scopeDisallowsNewXCommSubsystem_class_UndefinedPart(problem, interpretation);
1080 neg find isPrimitive(element);
1081} or {
1082 find interpretation(problem,interpretation);
1083 PartialInterpretation.openWorldElements(interpretation,element);
1084 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1085 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1086 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1087 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
1088 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1089 neg find scopeDisallowsNewXCommSubsystem_class_UndefinedPart(problem, interpretation);
1090 neg find isPrimitive(element);
1091} or
1092{ find mustInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,element); }
1093/**
1094 * An element must be an instance of type "KaCommSubsystem class DefinedPart".
1095 */
1096private pattern mustInstanceOfKaCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
1097 Type.name(type,"KaCommSubsystem class DefinedPart");
1098 find directInstanceOf(problem,interpretation,element,type);
1099}
1100private pattern scopeDisallowsNewKaCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
1101 find interpretation(problem,interpretation);
1102 PartialInterpretation.scopes(interpretation,scope);
1103 Scope.targetTypeInterpretation(scope,typeInterpretation);
1104 Scope.maxNewElements(scope,0);
1105 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
1106 Type.name(type,"KaCommSubsystem class DefinedPart");
1107}
1108
1109/**
1110 * An element may be an instance of type "KaCommSubsystem class DefinedPart".
1111 */
1112private pattern mayInstanceOfKaCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1113{ find mustInstanceOfKaCommSubsystem_class_DefinedPart(problem,interpretation,element); }
1114/**
1115 * An element must be an instance of type "KaCommSubsystem class UndefinedPart".
1116 */
1117private pattern mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
1118 Type.name(type,"KaCommSubsystem class UndefinedPart");
1119 find directInstanceOf(problem,interpretation,element,type);
1120}
1121private pattern scopeDisallowsNewKaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
1122 find interpretation(problem,interpretation);
1123 PartialInterpretation.scopes(interpretation,scope);
1124 Scope.targetTypeInterpretation(scope,typeInterpretation);
1125 Scope.maxNewElements(scope,0);
1126 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
1127 Type.name(type,"KaCommSubsystem class UndefinedPart");
1128}
1129
1130/**
1131 * An element may be an instance of type "KaCommSubsystem class UndefinedPart".
1132 */
1133private pattern mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1134{
1135 find interpretation(problem,interpretation);
1136 PartialInterpretation.newElements(interpretation,element);
1137 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1138 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1139 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1140 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1141 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
1142 neg find scopeDisallowsNewKaCommSubsystem_class_UndefinedPart(problem, interpretation);
1143 neg find isPrimitive(element);
1144} or {
1145 find interpretation(problem,interpretation);
1146 PartialInterpretation.openWorldElements(interpretation,element);
1147 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1148 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1149 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1150 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1151 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
1152 neg find scopeDisallowsNewKaCommSubsystem_class_UndefinedPart(problem, interpretation);
1153 neg find isPrimitive(element);
1154} or
1155{ find mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,element); }
1156
1157//////////
1158// 1.2 Relation Declaration Indexers
1159//////////
1160/**
1161 * Matcher for detecting tuples t where []groundStationNetwork reference ConstellationMission(source,target)
1162 */
1163private pattern mustInRelationgroundStationNetwork_reference_ConstellationMission(
1164 problem:LogicProblem, interpretation:PartialInterpretation,
1165 source: DefinedElement, target:DefinedElement)
1166{
1167 find interpretation(problem,interpretation);
1168 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1169 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"groundStationNetwork reference ConstellationMission");
1170 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1171 BinaryElementRelationLink.param1(link,source);
1172 BinaryElementRelationLink.param2(link,target);
1173}
1174/**
1175 * Matcher for detecting tuples t where <>groundStationNetwork reference ConstellationMission(source,target)
1176 */
1177private pattern mayInRelationgroundStationNetwork_reference_ConstellationMission(
1178 problem:LogicProblem, interpretation:PartialInterpretation,
1179 source: DefinedElement, target:DefinedElement)
1180{
1181 find interpretation(problem,interpretation);
1182 // The two endpoint of the link have to exist
1183 find mayExist(problem, interpretation, source);
1184 find mayExist(problem, interpretation, target);
1185 // Type consistency
1186 find mayInstanceOfConstellationMission_class(problem,interpretation,source);
1187 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,target);
1188 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1189 // the upper bound of the multiplicity should be considered.
1190 numberOfExistingReferences == count find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,_);
1191 check(numberOfExistingReferences < 1);
1192 // The reference is containment, then a new reference cannot be create if:
1193 // 1. Multiple parents
1194 neg find mustContains4(problem,interpretation,_,target);
1195 // 2. Circle in the containment hierarchy
1196 neg find mustTransitiveContains(source,target);
1197} or {
1198 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,target);
1199}
1200/**
1201 * Matcher for detecting tuples t where []spacecraft reference ConstellationMission(source,target)
1202 */
1203private pattern mustInRelationspacecraft_reference_ConstellationMission(
1204 problem:LogicProblem, interpretation:PartialInterpretation,
1205 source: DefinedElement, target:DefinedElement)
1206{
1207 find interpretation(problem,interpretation);
1208 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1209 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"spacecraft reference ConstellationMission");
1210 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1211 BinaryElementRelationLink.param1(link,source);
1212 BinaryElementRelationLink.param2(link,target);
1213}
1214/**
1215 * Matcher for detecting tuples t where <>spacecraft reference ConstellationMission(source,target)
1216 */
1217private pattern mayInRelationspacecraft_reference_ConstellationMission(
1218 problem:LogicProblem, interpretation:PartialInterpretation,
1219 source: DefinedElement, target:DefinedElement)
1220{
1221 find interpretation(problem,interpretation);
1222 // The two endpoint of the link have to exist
1223 find mayExist(problem, interpretation, source);
1224 find mayExist(problem, interpretation, target);
1225 // Type consistency
1226 find mayInstanceOfConstellationMission_class(problem,interpretation,source);
1227 find mayInstanceOfSpacecraft_class(problem,interpretation,target);
1228 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1229 // the upper bound of the multiplicity should be considered.
1230 numberOfExistingReferences == count find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,_);
1231 check(numberOfExistingReferences < 50);
1232 // The reference is containment, then a new reference cannot be create if:
1233 // 1. Multiple parents
1234 neg find mustContains4(problem,interpretation,_,target);
1235 // 2. Circle in the containment hierarchy
1236 neg find mustTransitiveContains(source,target);
1237} or {
1238 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,target);
1239}
1240/**
1241 * Matcher for detecting tuples t where []commSubsystem reference CommunicatingElement(source,target)
1242 */
1243private pattern mustInRelationcommSubsystem_reference_CommunicatingElement(
1244 problem:LogicProblem, interpretation:PartialInterpretation,
1245 source: DefinedElement, target:DefinedElement)
1246{
1247 find interpretation(problem,interpretation);
1248 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1249 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"commSubsystem reference CommunicatingElement");
1250 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1251 BinaryElementRelationLink.param1(link,source);
1252 BinaryElementRelationLink.param2(link,target);
1253}
1254/**
1255 * Matcher for detecting tuples t where <>commSubsystem reference CommunicatingElement(source,target)
1256 */
1257private pattern mayInRelationcommSubsystem_reference_CommunicatingElement(
1258 problem:LogicProblem, interpretation:PartialInterpretation,
1259 source: DefinedElement, target:DefinedElement)
1260{
1261 find interpretation(problem,interpretation);
1262 // The two endpoint of the link have to exist
1263 find mayExist(problem, interpretation, source);
1264 find mayExist(problem, interpretation, target);
1265 // Type consistency
1266 find mayInstanceOfCommunicatingElement_class(problem,interpretation,source);
1267 find mayInstanceOfCommSubsystem_class(problem,interpretation,target);
1268 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1269 // the upper bound of the multiplicity should be considered.
1270 numberOfExistingReferences == count find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,_);
1271 check(numberOfExistingReferences < 2);
1272 // The reference is containment, then a new reference cannot be create if:
1273 // 1. Multiple parents
1274 neg find mustContains4(problem,interpretation,_,target);
1275 // 2. Circle in the containment hierarchy
1276 neg find mustTransitiveContains(source,target);
1277} or {
1278 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,target);
1279}
1280/**
1281 * Matcher for detecting tuples t where []payload reference Spacecraft(source,target)
1282 */
1283private pattern mustInRelationpayload_reference_Spacecraft(
1284 problem:LogicProblem, interpretation:PartialInterpretation,
1285 source: DefinedElement, target:DefinedElement)
1286{
1287 find interpretation(problem,interpretation);
1288 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1289 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"payload reference Spacecraft");
1290 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1291 BinaryElementRelationLink.param1(link,source);
1292 BinaryElementRelationLink.param2(link,target);
1293}
1294/**
1295 * Matcher for detecting tuples t where <>payload reference Spacecraft(source,target)
1296 */
1297private pattern mayInRelationpayload_reference_Spacecraft(
1298 problem:LogicProblem, interpretation:PartialInterpretation,
1299 source: DefinedElement, target:DefinedElement)
1300{
1301 find interpretation(problem,interpretation);
1302 // The two endpoint of the link have to exist
1303 find mayExist(problem, interpretation, source);
1304 find mayExist(problem, interpretation, target);
1305 // Type consistency
1306 find mayInstanceOfSpacecraft_class(problem,interpretation,source);
1307 find mayInstanceOfPayload_class(problem,interpretation,target);
1308 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1309 // the upper bound of the multiplicity should be considered.
1310 numberOfExistingReferences == count find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,_);
1311 check(numberOfExistingReferences < 1);
1312 // The reference is containment, then a new reference cannot be create if:
1313 // 1. Multiple parents
1314 neg find mustContains4(problem,interpretation,_,target);
1315 // 2. Circle in the containment hierarchy
1316 neg find mustTransitiveContains(source,target);
1317} or {
1318 find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,target);
1319}
1320/**
1321 * Matcher for detecting tuples t where []target reference CommSubsystem(source,target)
1322 */
1323private pattern mustInRelationtarget_reference_CommSubsystem(
1324 problem:LogicProblem, interpretation:PartialInterpretation,
1325 source: DefinedElement, target:DefinedElement)
1326{
1327 find interpretation(problem,interpretation);
1328 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1329 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"target reference CommSubsystem");
1330 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1331 BinaryElementRelationLink.param1(link,source);
1332 BinaryElementRelationLink.param2(link,target);
1333}
1334/**
1335 * Matcher for detecting tuples t where <>target reference CommSubsystem(source,target)
1336 */
1337private pattern mayInRelationtarget_reference_CommSubsystem(
1338 problem:LogicProblem, interpretation:PartialInterpretation,
1339 source: DefinedElement, target:DefinedElement)
1340{
1341 find interpretation(problem,interpretation);
1342 // The two endpoint of the link have to exist
1343 find mayExist(problem, interpretation, source);
1344 find mayExist(problem, interpretation, target);
1345 // Type consistency
1346 find mayInstanceOfCommSubsystem_class(problem,interpretation,source);
1347 find mayInstanceOfCommSubsystem_class(problem,interpretation,target);
1348 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1349 // the upper bound of the multiplicity should be considered.
1350 numberOfExistingReferences == count find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,source,_);
1351 check(numberOfExistingReferences < 1);
1352} or {
1353 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,source,target);
1354}
1355
1356//////////
1357// 1.3 Relation Definition Indexers
1358//////////
1359// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries communicationLinkDoesNotStartAtContainingElement
1360private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(
1361 problem:LogicProblem, interpretation:PartialInterpretation,
1362 var_Element)
1363{
1364 find interpretation(problem,interpretation);
1365 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1366 // Element is exported
1367 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm1);
1368 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm2);
1369 neg find mayEquivalent(problem, interpretation, var_Comm1, var_Comm2);
1370}
1371private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(
1372 problem:LogicProblem, interpretation:PartialInterpretation,
1373 var_Element)
1374{
1375 find interpretation(problem,interpretation);
1376 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1377 // Element is exported
1378 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm1);
1379 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm2);
1380 neg find mustEquivalent(problem, interpretation, var_Comm1, var_Comm2);
1381}
1382private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(
1383 problem:LogicProblem, interpretation:PartialInterpretation,
1384 var_Element)
1385{
1386 find interpretation(problem,interpretation);
1387 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1388 // Element is exported
1389 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm1);
1390 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm2);
1391 neg find mustEquivalent(problem, interpretation, var_Comm1, var_Comm2);
1392}
1393// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries transmittingCommSubsystem
1394private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(
1395 problem:LogicProblem, interpretation:PartialInterpretation,
1396 var_Element, var_Comm)
1397{
1398 find interpretation(problem,interpretation);
1399 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1400 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1401 // Element is exported
1402 // Comm is exported
1403 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1404 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0);
1405 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1406 find mustEquivalent(problem, interpretation, var_virtual0, var_Comm);
1407 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1408 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1409 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1410 find mustEquivalent(problem, interpretation, var_virtual1, _var__0);
1411}
1412private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(
1413 problem:LogicProblem, interpretation:PartialInterpretation,
1414 var_Element, var_Comm)
1415{
1416 find interpretation(problem,interpretation);
1417 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1418 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1419 // Element is exported
1420 // Comm is exported
1421 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1422 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0);
1423 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1424 find mayEquivalent(problem, interpretation, var_virtual0, var_Comm);
1425 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1426 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1427 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1428 find mayEquivalent(problem, interpretation, var_virtual1, _var__0);
1429}
1430private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(
1431 problem:LogicProblem, interpretation:PartialInterpretation,
1432 var_Element, var_Comm)
1433{
1434 find interpretation(problem,interpretation);
1435 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1436 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1437 // Element is exported
1438 // Comm is exported
1439 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1440 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0);
1441 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1442 find mustEquivalent(problem, interpretation, var_virtual0, var_Comm);
1443 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1444 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1445 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1446 find mustEquivalent(problem, interpretation, var_virtual1, _var__0);
1447}
1448// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries notEnoughInterferometryPayloads
1449private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(
1450 problem:LogicProblem, interpretation:PartialInterpretation,
1451 var_Mission)
1452{
1453 find interpretation(problem,interpretation);
1454 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1455 // Mission is exported
1456 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1457 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission);
1458}
1459private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(
1460 problem:LogicProblem, interpretation:PartialInterpretation,
1461 var_Mission)
1462{
1463 find interpretation(problem,interpretation);
1464 find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1465 // Mission is exported
1466 find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1467 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission);
1468}
1469private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(
1470 problem:LogicProblem, interpretation:PartialInterpretation,
1471 var_Mission)
1472{
1473 find interpretation(problem,interpretation);
1474 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1475 // Mission is exported
1476 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1477 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission);
1478}
1479// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries atLeastTwoInterferometryPayloads
1480private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(
1481 problem:LogicProblem, interpretation:PartialInterpretation,
1482 var_Mission)
1483{
1484 find interpretation(problem,interpretation);
1485 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1486 // Mission is exported
1487 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1);
1488 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2);
1489 neg find mayEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2);
1490}
1491private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(
1492 problem:LogicProblem, interpretation:PartialInterpretation,
1493 var_Mission)
1494{
1495 find interpretation(problem,interpretation);
1496 find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1497 // Mission is exported
1498 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1);
1499 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2);
1500 neg find mustEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2);
1501}
1502private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(
1503 problem:LogicProblem, interpretation:PartialInterpretation,
1504 var_Mission)
1505{
1506 find interpretation(problem,interpretation);
1507 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1508 // Mission is exported
1509 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1);
1510 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2);
1511 neg find mustEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2);
1512}
1513// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries spacecraftWithInterferometryPayload
1514private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(
1515 problem:LogicProblem, interpretation:PartialInterpretation,
1516 var_Mission, var_Spacecraft)
1517{
1518 find interpretation(problem,interpretation);
1519 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1520 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1521 // Mission is exported
1522 // Spacecraft is exported
1523 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1524 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1525 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual0);
1526 find mustEquivalent(problem, interpretation, var_virtual0, var_Spacecraft);
1527 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1528 find mustInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1);
1529 find mustInstanceOfPayload_class(problem,interpretation,var_virtual1);
1530 find mustEquivalent(problem, interpretation, var_virtual1, var_Payload);
1531 find mustInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload);
1532}
1533private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(
1534 problem:LogicProblem, interpretation:PartialInterpretation,
1535 var_Mission, var_Spacecraft)
1536{
1537 find interpretation(problem,interpretation);
1538 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1539 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1540 // Mission is exported
1541 // Spacecraft is exported
1542 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1543 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1544 find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual0);
1545 find mayEquivalent(problem, interpretation, var_virtual0, var_Spacecraft);
1546 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1547 find mayInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1);
1548 find mayInstanceOfPayload_class(problem,interpretation,var_virtual1);
1549 find mayEquivalent(problem, interpretation, var_virtual1, var_Payload);
1550 find mayInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload);
1551}
1552private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(
1553 problem:LogicProblem, interpretation:PartialInterpretation,
1554 var_Mission, var_Spacecraft)
1555{
1556 find interpretation(problem,interpretation);
1557 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1558 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1559 // Mission is exported
1560 // Spacecraft is exported
1561 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1562 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1563 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual0);
1564 find mustEquivalent(problem, interpretation, var_virtual0, var_Spacecraft);
1565 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1566 find mustInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1);
1567 find mustInstanceOfPayload_class(problem,interpretation,var_virtual1);
1568 find mustEquivalent(problem, interpretation, var_virtual1, var_Payload);
1569 find mustInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload);
1570}
1571// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries noLinkToGroundStation
1572private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(
1573 problem:LogicProblem, interpretation:PartialInterpretation,
1574 var_Spacecraft)
1575{
1576 find interpretation(problem,interpretation);
1577 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1578 // Spacecraft is exported
1579 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1580 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1581 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1582 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1583 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1584 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1585 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1586 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1587 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation);
1588}
1589private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(
1590 problem:LogicProblem, interpretation:PartialInterpretation,
1591 var_Spacecraft)
1592{
1593 find interpretation(problem,interpretation);
1594 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1595 // Spacecraft is exported
1596 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1597 find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1598 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1599 find mayEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1600 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1601 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1602 find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1603 find mayEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1604 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation);
1605}
1606private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(
1607 problem:LogicProblem, interpretation:PartialInterpretation,
1608 var_Spacecraft)
1609{
1610 find interpretation(problem,interpretation);
1611 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1612 // Spacecraft is exported
1613 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1614 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1615 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1616 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1617 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1618 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1619 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1620 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1621 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation);
1622}
1623// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries noPotentialLinkToGroundStation
1624private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(
1625 problem:LogicProblem, interpretation:PartialInterpretation,
1626 var_Spacecraft)
1627{
1628 find interpretation(problem,interpretation);
1629 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1630 // Spacecraft is exported
1631 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1632 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1633 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1634 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1635 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1636 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1637 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1638 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1639 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation);
1640}
1641private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(
1642 problem:LogicProblem, interpretation:PartialInterpretation,
1643 var_Spacecraft)
1644{
1645 find interpretation(problem,interpretation);
1646 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1647 // Spacecraft is exported
1648 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1649 find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1650 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1651 find mayEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1652 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1653 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1654 find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1655 find mayEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1656 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation);
1657}
1658private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(
1659 problem:LogicProblem, interpretation:PartialInterpretation,
1660 var_Spacecraft)
1661{
1662 find interpretation(problem,interpretation);
1663 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1664 // Spacecraft is exported
1665 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1666 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1667 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1668 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1669 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1670 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1671 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1672 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1673 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation);
1674}
1675// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries indirectLinkAllowed
1676private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(
1677 problem:LogicProblem, interpretation:PartialInterpretation,
1678 var_From, var_To)
1679{
1680 find interpretation(problem,interpretation);
1681 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1682 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1683 // From is exported
1684 // To is exported
1685 find twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To);
1686}
1687private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(
1688 problem:LogicProblem, interpretation:PartialInterpretation,
1689 var_From, var_To)
1690{
1691 find interpretation(problem,interpretation);
1692 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1693 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1694 // From is exported
1695 // To is exported
1696 find twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To);
1697}
1698private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(
1699 problem:LogicProblem, interpretation:PartialInterpretation,
1700 var_From, var_To)
1701{
1702 find interpretation(problem,interpretation);
1703 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1704 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1705 // From is exported
1706 // To is exported
1707 find twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To);
1708}
1709// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries linkAllowed
1710private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(
1711 problem:LogicProblem, interpretation:PartialInterpretation,
1712 var_From, var_To)
1713{
1714 find interpretation(problem,interpretation);
1715 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1716 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1717 // From is exported
1718 // To is exported
1719 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1720 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From);
1721}or{
1722 find interpretation(problem,interpretation);
1723 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1724 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1725 // From is exported
1726 // To is exported
1727 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1728 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1729}or{
1730 find interpretation(problem,interpretation);
1731 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1732 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1733 // From is exported
1734 // To is exported
1735 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1736 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1737 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_To);
1738}
1739private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(
1740 problem:LogicProblem, interpretation:PartialInterpretation,
1741 var_From, var_To)
1742{
1743 find interpretation(problem,interpretation);
1744 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1745 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1746 // From is exported
1747 // To is exported
1748 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1749 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From);
1750}or{
1751 find interpretation(problem,interpretation);
1752 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1753 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1754 // From is exported
1755 // To is exported
1756 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1757 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1758}or{
1759 find interpretation(problem,interpretation);
1760 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1761 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1762 // From is exported
1763 // To is exported
1764 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1765 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1766 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_To);
1767}
1768private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(
1769 problem:LogicProblem, interpretation:PartialInterpretation,
1770 var_From, var_To)
1771{
1772 find interpretation(problem,interpretation);
1773 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1774 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1775 // From is exported
1776 // To is exported
1777 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1778 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From);
1779}or{
1780 find interpretation(problem,interpretation);
1781 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1782 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1783 // From is exported
1784 // To is exported
1785 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1786 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1787}or{
1788 find interpretation(problem,interpretation);
1789 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1790 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1791 // From is exported
1792 // To is exported
1793 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1794 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1795 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_To);
1796}
1797private pattern twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) {
1798 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To);
1799}
1800private pattern twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) {
1801 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To);
1802}
1803private pattern twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) {
1804 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To);
1805}
1806// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries matchingAntenna
1807private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(
1808 problem:LogicProblem, interpretation:PartialInterpretation,
1809 var_From, var_To)
1810{
1811 find interpretation(problem,interpretation);
1812 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1813 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1814 // From is exported
1815 // To is exported
1816 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_From);
1817 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0);
1818 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1819 find mustEquivalent(problem, interpretation, var_virtual0, var_FromSys);
1820 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1821 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual1);
1822 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1823 find mustEquivalent(problem, interpretation, var_virtual1, var_ToSys);
1824 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_FromSys,var_ToSys);
1825}
1826private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(
1827 problem:LogicProblem, interpretation:PartialInterpretation,
1828 var_From, var_To)
1829{
1830 find interpretation(problem,interpretation);
1831 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1832 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1833 // From is exported
1834 // To is exported
1835 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_From);
1836 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0);
1837 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1838 find mayEquivalent(problem, interpretation, var_virtual0, var_FromSys);
1839 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1840 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual1);
1841 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1842 find mayEquivalent(problem, interpretation, var_virtual1, var_ToSys);
1843 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_FromSys,var_ToSys);
1844}
1845private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(
1846 problem:LogicProblem, interpretation:PartialInterpretation,
1847 var_From, var_To)
1848{
1849 find interpretation(problem,interpretation);
1850 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1851 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1852 // From is exported
1853 // To is exported
1854 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_From);
1855 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0);
1856 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1857 find mustEquivalent(problem, interpretation, var_virtual0, var_FromSys);
1858 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1859 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual1);
1860 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1861 find mustEquivalent(problem, interpretation, var_virtual1, var_ToSys);
1862 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_FromSys,var_ToSys);
1863}
1864// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries matchingCommSubsystem
1865private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(
1866 problem:LogicProblem, interpretation:PartialInterpretation,
1867 var_From, var_To)
1868{
1869 find interpretation(problem,interpretation);
1870 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1871 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1872 // From is exported
1873 // To is exported
1874 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_From);
1875 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_To);
1876}or{
1877 find interpretation(problem,interpretation);
1878 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1879 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1880 // From is exported
1881 // To is exported
1882 find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_From);
1883 find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_To);
1884}or{
1885 find interpretation(problem,interpretation);
1886 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1887 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1888 // From is exported
1889 // To is exported
1890 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_From);
1891 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_To);
1892}
1893private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(
1894 problem:LogicProblem, interpretation:PartialInterpretation,
1895 var_From, var_To)
1896{
1897 find interpretation(problem,interpretation);
1898 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1899 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1900 // From is exported
1901 // To is exported
1902 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_From);
1903 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_To);
1904}or{
1905 find interpretation(problem,interpretation);
1906 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1907 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1908 // From is exported
1909 // To is exported
1910 find mayInstanceOfXCommSubsystem_class(problem,interpretation,var_From);
1911 find mayInstanceOfXCommSubsystem_class(problem,interpretation,var_To);
1912}or{
1913 find interpretation(problem,interpretation);
1914 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1915 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1916 // From is exported
1917 // To is exported
1918 find mayInstanceOfKaCommSubsystem_class(problem,interpretation,var_From);
1919 find mayInstanceOfKaCommSubsystem_class(problem,interpretation,var_To);
1920}
1921private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(
1922 problem:LogicProblem, interpretation:PartialInterpretation,
1923 var_From, var_To)
1924{
1925 find interpretation(problem,interpretation);
1926 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1927 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1928 // From is exported
1929 // To is exported
1930 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_From);
1931 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_To);
1932}or{
1933 find interpretation(problem,interpretation);
1934 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1935 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1936 // From is exported
1937 // To is exported
1938 find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_From);
1939 find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_To);
1940}or{
1941 find interpretation(problem,interpretation);
1942 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1943 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1944 // From is exported
1945 // To is exported
1946 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_From);
1947 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_To);
1948}
1949// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries cubeSat3U
1950private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(
1951 problem:LogicProblem, interpretation:PartialInterpretation,
1952 var_Sat)
1953{
1954 find interpretation(problem,interpretation);
1955 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1956 // Sat is exported
1957 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1958}
1959private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(
1960 problem:LogicProblem, interpretation:PartialInterpretation,
1961 var_Sat)
1962{
1963 find interpretation(problem,interpretation);
1964 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1965 // Sat is exported
1966 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1967}
1968private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(
1969 problem:LogicProblem, interpretation:PartialInterpretation,
1970 var_Sat)
1971{
1972 find interpretation(problem,interpretation);
1973 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1974 // Sat is exported
1975 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1976}
1977// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries cubeSat6U
1978private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat6U(
1979 problem:LogicProblem, interpretation:PartialInterpretation,
1980 var_Sat)
1981{
1982 find interpretation(problem,interpretation);
1983 find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
1984 // Sat is exported
1985 find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
1986}
1987private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat6U(
1988 problem:LogicProblem, interpretation:PartialInterpretation,
1989 var_Sat)
1990{
1991 find interpretation(problem,interpretation);
1992 find mayInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
1993 // Sat is exported
1994 find mayInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
1995}
1996private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat6U(
1997 problem:LogicProblem, interpretation:PartialInterpretation,
1998 var_Sat)
1999{
2000 find interpretation(problem,interpretation);
2001 find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
2002 // Sat is exported
2003 find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
2004}
2005// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries communicationLoop
2006private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(
2007 problem:LogicProblem, interpretation:PartialInterpretation,
2008 var_Element)
2009{
2010 find interpretation(problem,interpretation);
2011 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
2012 // Element is exported
2013 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element);
2014}
2015private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(
2016 problem:LogicProblem, interpretation:PartialInterpretation,
2017 var_Element)
2018{
2019 find interpretation(problem,interpretation);
2020 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
2021 // Element is exported
2022 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element);
2023}
2024private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(
2025 problem:LogicProblem, interpretation:PartialInterpretation,
2026 var_Element)
2027{
2028 find interpretation(problem,interpretation);
2029 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
2030 // Element is exported
2031 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element);
2032}
2033// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries indirectCommunicationLink
2034private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(
2035 problem:LogicProblem, interpretation:PartialInterpretation,
2036 var_Source, var_Target)
2037{
2038 find interpretation(problem,interpretation);
2039 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2040 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2041 // Source is exported
2042 // Target is exported
2043 find twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target);
2044}
2045private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(
2046 problem:LogicProblem, interpretation:PartialInterpretation,
2047 var_Source, var_Target)
2048{
2049 find interpretation(problem,interpretation);
2050 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2051 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2052 // Source is exported
2053 // Target is exported
2054 find twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target);
2055}
2056private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(
2057 problem:LogicProblem, interpretation:PartialInterpretation,
2058 var_Source, var_Target)
2059{
2060 find interpretation(problem,interpretation);
2061 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2062 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2063 // Source is exported
2064 // Target is exported
2065 find twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target);
2066}
2067// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries directCommunicationLink
2068private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(
2069 problem:LogicProblem, interpretation:PartialInterpretation,
2070 var_Source, var_Target)
2071{
2072 find interpretation(problem,interpretation);
2073 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2074 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2075 // Source is exported
2076 // Target is exported
2077 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2078 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2079 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2080 find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2081 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2082 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual1);
2083 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2084 find mustEquivalent(problem, interpretation, var_virtual1, var_SourceSubsystem);
2085 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2086 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2087 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2088 find mustEquivalent(problem, interpretation, var_virtual2, var_TargetSubsystem);
2089}
2090private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(
2091 problem:LogicProblem, interpretation:PartialInterpretation,
2092 var_Source, var_Target)
2093{
2094 find interpretation(problem,interpretation);
2095 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2096 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2097 // Source is exported
2098 // Target is exported
2099 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2100 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2101 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2102 find mayEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2103 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2104 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual1);
2105 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2106 find mayEquivalent(problem, interpretation, var_virtual1, var_SourceSubsystem);
2107 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2108 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2109 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2110 find mayEquivalent(problem, interpretation, var_virtual2, var_TargetSubsystem);
2111}
2112private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(
2113 problem:LogicProblem, interpretation:PartialInterpretation,
2114 var_Source, var_Target)
2115{
2116 find interpretation(problem,interpretation);
2117 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2118 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2119 // Source is exported
2120 // Target is exported
2121 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2122 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2123 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2124 find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2125 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2126 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual1);
2127 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2128 find mustEquivalent(problem, interpretation, var_virtual1, var_SourceSubsystem);
2129 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2130 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2131 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2132 find mustEquivalent(problem, interpretation, var_virtual2, var_TargetSubsystem);
2133}
2134private pattern twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) {
2135 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target);
2136}
2137private pattern twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) {
2138 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target);
2139}
2140private pattern twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) {
2141 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target);
2142}
2143// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetBand
2144private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(
2145 problem:LogicProblem, interpretation:PartialInterpretation,
2146 var_SourceSubsystem)
2147{
2148 find interpretation(problem,interpretation);
2149 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2150 // SourceSubsystem is exported
2151 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2152 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2153 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2154 find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2155 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_SourceSubsystem,var_TargetSubsystem);
2156}
2157private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(
2158 problem:LogicProblem, interpretation:PartialInterpretation,
2159 var_SourceSubsystem)
2160{
2161 find interpretation(problem,interpretation);
2162 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2163 // SourceSubsystem is exported
2164 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2165 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2166 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2167 find mayEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2168 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_SourceSubsystem,var_TargetSubsystem);
2169}
2170private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(
2171 problem:LogicProblem, interpretation:PartialInterpretation,
2172 var_SourceSubsystem)
2173{
2174 find interpretation(problem,interpretation);
2175 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2176 // SourceSubsystem is exported
2177 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2178 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2179 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2180 find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2181 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_SourceSubsystem,var_TargetSubsystem);
2182}
2183// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries threeUCubeSatWithNonUhfCrossLink
2184private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(
2185 problem:LogicProblem, interpretation:PartialInterpretation,
2186 var_Sat)
2187{
2188 find interpretation(problem,interpretation);
2189 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
2190 // Sat is exported
2191 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat);
2192 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0);
2193 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2194 find mustEquivalent(problem, interpretation, var_virtual0, var_SourceComm);
2195 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm);
2196 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceComm);
2197 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceComm,var_virtual1);
2198 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2199 find mustEquivalent(problem, interpretation, var_virtual1, var_TargetComm);
2200 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2201 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2202 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2203 find mustEquivalent(problem, interpretation, var_virtual2, var_TargetComm);
2204 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target);
2205}
2206private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(
2207 problem:LogicProblem, interpretation:PartialInterpretation,
2208 var_Sat)
2209{
2210 find interpretation(problem,interpretation);
2211 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
2212 // Sat is exported
2213 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat);
2214 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0);
2215 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2216 find mayEquivalent(problem, interpretation, var_virtual0, var_SourceComm);
2217 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm);
2218 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceComm);
2219 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceComm,var_virtual1);
2220 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2221 find mayEquivalent(problem, interpretation, var_virtual1, var_TargetComm);
2222 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2223 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2224 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2225 find mayEquivalent(problem, interpretation, var_virtual2, var_TargetComm);
2226 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target);
2227}
2228private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(
2229 problem:LogicProblem, interpretation:PartialInterpretation,
2230 var_Sat)
2231{
2232 find interpretation(problem,interpretation);
2233 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
2234 // Sat is exported
2235 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat);
2236 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0);
2237 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2238 find mustEquivalent(problem, interpretation, var_virtual0, var_SourceComm);
2239 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm);
2240 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceComm);
2241 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceComm,var_virtual1);
2242 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2243 find mustEquivalent(problem, interpretation, var_virtual1, var_TargetComm);
2244 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2245 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2246 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2247 find mustEquivalent(problem, interpretation, var_virtual2, var_TargetComm);
2248 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target);
2249}
2250// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemBandUhf
2251private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(
2252 problem:LogicProblem, interpretation:PartialInterpretation,
2253 var_Comm)
2254{
2255 find interpretation(problem,interpretation);
2256 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2257 // Comm is exported
2258 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2259}
2260private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(
2261 problem:LogicProblem, interpretation:PartialInterpretation,
2262 var_Comm)
2263{
2264 find interpretation(problem,interpretation);
2265 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2266 // Comm is exported
2267 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2268}
2269private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(
2270 problem:LogicProblem, interpretation:PartialInterpretation,
2271 var_Comm)
2272{
2273 find interpretation(problem,interpretation);
2274 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2275 // Comm is exported
2276 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2277}
2278// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries groundStationNetwork
2279private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(
2280 problem:LogicProblem, interpretation:PartialInterpretation,
2281 var_Network)
2282{
2283 find interpretation(problem,interpretation);
2284 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2285 // Network is exported
2286 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2287}
2288private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(
2289 problem:LogicProblem, interpretation:PartialInterpretation,
2290 var_Network)
2291{
2292 find interpretation(problem,interpretation);
2293 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2294 // Network is exported
2295 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2296}
2297private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(
2298 problem:LogicProblem, interpretation:PartialInterpretation,
2299 var_Network)
2300{
2301 find interpretation(problem,interpretation);
2302 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2303 // Network is exported
2304 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2305}
2306// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries cubeSatWithKaAntenna
2307private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(
2308 problem:LogicProblem, interpretation:PartialInterpretation,
2309 var_Spacecraft)
2310{
2311 find interpretation(problem,interpretation);
2312 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2313 // Spacecraft is exported
2314 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft);
2315 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual0);
2316 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2317 find mustEquivalent(problem, interpretation, var_virtual0, var_Comm);
2318 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_Comm);
2319 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft);
2320}
2321private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(
2322 problem:LogicProblem, interpretation:PartialInterpretation,
2323 var_Spacecraft)
2324{
2325 find interpretation(problem,interpretation);
2326 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2327 // Spacecraft is exported
2328 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft);
2329 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual0);
2330 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2331 find mayEquivalent(problem, interpretation, var_virtual0, var_Comm);
2332 find mayInstanceOfKaCommSubsystem_class(problem,interpretation,var_Comm);
2333 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft);
2334}
2335private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(
2336 problem:LogicProblem, interpretation:PartialInterpretation,
2337 var_Spacecraft)
2338{
2339 find interpretation(problem,interpretation);
2340 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2341 // Spacecraft is exported
2342 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft);
2343 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual0);
2344 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2345 find mustEquivalent(problem, interpretation, var_virtual0, var_Comm);
2346 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_Comm);
2347 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft);
2348}
2349// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries smallSat
2350private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(
2351 problem:LogicProblem, interpretation:PartialInterpretation,
2352 var_Sat)
2353{
2354 find interpretation(problem,interpretation);
2355 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2356 // Sat is exported
2357 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2358}
2359private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(
2360 problem:LogicProblem, interpretation:PartialInterpretation,
2361 var_Sat)
2362{
2363 find interpretation(problem,interpretation);
2364 find mayInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2365 // Sat is exported
2366 find mayInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2367}
2368private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(
2369 problem:LogicProblem, interpretation:PartialInterpretation,
2370 var_Sat)
2371{
2372 find interpretation(problem,interpretation);
2373 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2374 // Sat is exported
2375 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2376}
2377
2378//////////
2379// 1.4 Containment Indexer
2380//////////
2381private pattern mustContains2(source: DefinedElement, target: DefinedElement) {
2382 find mustContains4(_,_,source,target);
2383}
2384
2385private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation,
2386 source: DefinedElement, target: DefinedElement)
2387 { find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,target); }or
2388
2389 { find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,target); }or
2390
2391 { find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,target); }or
2392
2393 { find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,target); }
2394
2395private pattern mustTransitiveContains(source,target) {
2396 find mustContains2+(source,target);
2397}
2398
2399//////////
2400// 2. Invalidation Indexers
2401//////////
2402// 2.1 Invalidated by WF Queries
2403//////////
2404pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem:LogicProblem, interpretation:PartialInterpretation,
2405 var_Element)
2406{
2407 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem,interpretation,var_Element);
2408}
2409pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem:LogicProblem, interpretation:PartialInterpretation,
2410 var_Mission)
2411{
2412 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem,interpretation,var_Mission);
2413}
2414pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2415 var_Spacecraft)
2416{
2417 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem,interpretation,var_Spacecraft);
2418}
2419pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2420 var_Spacecraft)
2421{
2422 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem,interpretation,var_Spacecraft);
2423}
2424pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem:LogicProblem, interpretation:PartialInterpretation,
2425 var_Element)
2426{
2427 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem,interpretation,var_Element);
2428}
2429pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem:LogicProblem, interpretation:PartialInterpretation,
2430 var_SourceSubsystem)
2431{
2432 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem,interpretation,var_SourceSubsystem);
2433}
2434pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem:LogicProblem, interpretation:PartialInterpretation,
2435 var_Sat)
2436{
2437 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem,interpretation,var_Sat);
2438}
2439pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem:LogicProblem, interpretation:PartialInterpretation,
2440 var_Spacecraft)
2441{
2442 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem,interpretation,var_Spacecraft);
2443}
2444
2445//////////
2446// 3. Unfinishedness Indexers
2447//////////
2448// 3.1 Unfinishedness Measured by Multiplicity
2449//////////
2450pattern unfinishedLowerMultiplicity_groundStationNetwork_reference_ConstellationMission(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
2451 find interpretation(problem,interpretation);
2452 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2453 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"groundStationNetwork reference ConstellationMission");
2454 find mustInstanceOfConstellationMission_class(problem,interpretation,object);
2455 numberOfExistingReferences == count find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,object,_);
2456 check(numberOfExistingReferences < 1);
2457 missingMultiplicity == eval(1-numberOfExistingReferences);
2458}
2459pattern unfinishedLowerMultiplicity_spacecraft_reference_ConstellationMission(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
2460 find interpretation(problem,interpretation);
2461 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2462 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"spacecraft reference ConstellationMission");
2463 find mustInstanceOfConstellationMission_class(problem,interpretation,object);
2464 numberOfExistingReferences == count find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,object,_);
2465 check(numberOfExistingReferences < 2);
2466 missingMultiplicity == eval(2-numberOfExistingReferences);
2467}
2468pattern unfinishedLowerMultiplicity_commSubsystem_reference_CommunicatingElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
2469 find interpretation(problem,interpretation);
2470 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2471 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"commSubsystem reference CommunicatingElement");
2472 find mustInstanceOfCommunicatingElement_class(problem,interpretation,object);
2473 numberOfExistingReferences == count find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,object,_);
2474 check(numberOfExistingReferences < 1);
2475 missingMultiplicity == eval(1-numberOfExistingReferences);
2476}
2477
2478//////////
2479// 3.2 Unfinishedness Measured by WF Queries
2480//////////
2481pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem:LogicProblem, interpretation:PartialInterpretation,
2482 var_Element)
2483{
2484 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem,interpretation,var_Element);
2485}
2486pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem:LogicProblem, interpretation:PartialInterpretation,
2487 var_Mission)
2488{
2489 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem,interpretation,var_Mission);
2490}
2491pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2492 var_Spacecraft)
2493{
2494 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem,interpretation,var_Spacecraft);
2495}
2496pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2497 var_Spacecraft)
2498{
2499 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem,interpretation,var_Spacecraft);
2500}
2501pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem:LogicProblem, interpretation:PartialInterpretation,
2502 var_Element)
2503{
2504 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem,interpretation,var_Element);
2505}
2506pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem:LogicProblem, interpretation:PartialInterpretation,
2507 var_SourceSubsystem)
2508{
2509 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem,interpretation,var_SourceSubsystem);
2510}
2511pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem:LogicProblem, interpretation:PartialInterpretation,
2512 var_Sat)
2513{
2514 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem,interpretation,var_Sat);
2515}
2516pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem:LogicProblem, interpretation:PartialInterpretation,
2517 var_Spacecraft)
2518{
2519 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem,interpretation,var_Spacecraft);
2520}
2521
2522//////////
2523// 4. Refinement Indexers
2524//////////
2525// 4.1 Object constructors
2526//////////
2527private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
2528{
2529 find interpretation(problem,interpretation);
2530 find mustInstanceOfCommunicatingElement_class(problem,interpretation,root);
2531 find mustExist(problem, interpretation, root);
2532}or{
2533 find interpretation(problem,interpretation);
2534 find mustInstanceOfConstellationMission_class(problem,interpretation,root);
2535 find mustExist(problem, interpretation, root);
2536}or{
2537 find interpretation(problem,interpretation);
2538 find mustInstanceOfInterferometryPayload_class(problem,interpretation,root);
2539 find mustExist(problem, interpretation, root);
2540}or{
2541 find interpretation(problem,interpretation);
2542 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,root);
2543 find mustExist(problem, interpretation, root);
2544}or{
2545 find interpretation(problem,interpretation);
2546 find mustInstanceOfCommSubsystem_class(problem,interpretation,root);
2547 find mustExist(problem, interpretation, root);
2548}or{
2549 find interpretation(problem,interpretation);
2550 find mustInstanceOfPayload_class(problem,interpretation,root);
2551 find mustExist(problem, interpretation, root);
2552}or{
2553 find interpretation(problem,interpretation);
2554 find mustInstanceOfCubeSat6U_class(problem,interpretation,root);
2555 find mustExist(problem, interpretation, root);
2556}or{
2557 find interpretation(problem,interpretation);
2558 find mustInstanceOfXCommSubsystem_class(problem,interpretation,root);
2559 find mustExist(problem, interpretation, root);
2560}or{
2561 find interpretation(problem,interpretation);
2562 find mustInstanceOfCubeSat3U_class(problem,interpretation,root);
2563 find mustExist(problem, interpretation, root);
2564}or{
2565 find interpretation(problem,interpretation);
2566 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,root);
2567 find mustExist(problem, interpretation, root);
2568}or{
2569 find interpretation(problem,interpretation);
2570 find mustInstanceOfSpacecraft_class(problem,interpretation,root);
2571 find mustExist(problem, interpretation, root);
2572}or{
2573 find interpretation(problem,interpretation);
2574 find mustInstanceOfInterferometryMission_class(problem,interpretation,root);
2575 find mustExist(problem, interpretation, root);
2576}or{
2577 find interpretation(problem,interpretation);
2578 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,root);
2579 find mustExist(problem, interpretation, root);
2580}or{
2581 find interpretation(problem,interpretation);
2582 find mustInstanceOfSmallSat_class(problem,interpretation,root);
2583 find mustExist(problem, interpretation, root);
2584}or{
2585 find interpretation(problem,interpretation);
2586 find mustInstanceOfCubeSat_class(problem,interpretation,root);
2587 find mustExist(problem, interpretation, root);
2588}or{
2589 find interpretation(problem,interpretation);
2590 find mustInstanceOfConstellationMission_class_DefinedPart(problem,interpretation,root);
2591 find mustExist(problem, interpretation, root);
2592}or{
2593 find interpretation(problem,interpretation);
2594 find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,root);
2595 find mustExist(problem, interpretation, root);
2596}or{
2597 find interpretation(problem,interpretation);
2598 find mustInstanceOfInterferometryMission_class_DefinedPart(problem,interpretation,root);
2599 find mustExist(problem, interpretation, root);
2600}or{
2601 find interpretation(problem,interpretation);
2602 find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,root);
2603 find mustExist(problem, interpretation, root);
2604}or{
2605 find interpretation(problem,interpretation);
2606 find mustInstanceOfCommunicatingElement_class_DefinedPart(problem,interpretation,root);
2607 find mustExist(problem, interpretation, root);
2608}or{
2609 find interpretation(problem,interpretation);
2610 find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,root);
2611 find mustExist(problem, interpretation, root);
2612}or{
2613 find interpretation(problem,interpretation);
2614 find mustInstanceOfGroundStationNetwork_class_DefinedPart(problem,interpretation,root);
2615 find mustExist(problem, interpretation, root);
2616}or{
2617 find interpretation(problem,interpretation);
2618 find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,root);
2619 find mustExist(problem, interpretation, root);
2620}or{
2621 find interpretation(problem,interpretation);
2622 find mustInstanceOfCommSubsystem_class_DefinedPart(problem,interpretation,root);
2623 find mustExist(problem, interpretation, root);
2624}or{
2625 find interpretation(problem,interpretation);
2626 find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,root);
2627 find mustExist(problem, interpretation, root);
2628}or{
2629 find interpretation(problem,interpretation);
2630 find mustInstanceOfXCommSubsystem_class_DefinedPart(problem,interpretation,root);
2631 find mustExist(problem, interpretation, root);
2632}or{
2633 find interpretation(problem,interpretation);
2634 find mustInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,root);
2635 find mustExist(problem, interpretation, root);
2636}or{
2637 find interpretation(problem,interpretation);
2638 find mustInstanceOfKaCommSubsystem_class_DefinedPart(problem,interpretation,root);
2639 find mustExist(problem, interpretation, root);
2640}or{
2641 find interpretation(problem,interpretation);
2642 find mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,root);
2643 find mustExist(problem, interpretation, root);
2644}
2645pattern createObject_InterferometryPayload_class_by_payload_reference_Spacecraft(
2646 problem:LogicProblem, interpretation:PartialInterpretation,
2647 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2648 container:DefinedElement)
2649{
2650 find interpretation(problem,interpretation);
2651 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2652 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryPayload class");
2653 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2654 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"payload reference Spacecraft");
2655 find mustInstanceOfSpacecraft_class(problem,interpretation,container);
2656 find mayInstanceOfInterferometryPayload_class(problem,interpretation,newObject);
2657 find mayInRelationpayload_reference_Spacecraft(problem,interpretation,container,newObject);
2658 find mustExist(problem, interpretation, container);
2659 neg find mustExist(problem, interpretation, newObject);
2660}
2661pattern createObject_InterferometryPayload_class(
2662 problem:LogicProblem, interpretation:PartialInterpretation,
2663 typeInterpretation:PartialComplexTypeInterpretation)
2664{
2665 find interpretation(problem,interpretation);
2666 neg find hasElementInContainment(problem,interpretation);
2667 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2668 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryPayload class");
2669 find mayInstanceOfInterferometryPayload_class(problem,interpretation,newObject);
2670 find mayExist(problem, interpretation, newObject);
2671 neg find mustExist(problem, interpretation, newObject);
2672}
2673pattern createObject_CubeSat6U_class_by_spacecraft_reference_ConstellationMission(
2674 problem:LogicProblem, interpretation:PartialInterpretation,
2675 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2676 container:DefinedElement)
2677{
2678 find interpretation(problem,interpretation);
2679 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2680 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat6U class");
2681 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2682 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission");
2683 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2684 find mayInstanceOfCubeSat6U_class(problem,interpretation,newObject);
2685 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject);
2686 find mustExist(problem, interpretation, container);
2687 neg find mustExist(problem, interpretation, newObject);
2688}
2689pattern createObject_CubeSat6U_class(
2690 problem:LogicProblem, interpretation:PartialInterpretation,
2691 typeInterpretation:PartialComplexTypeInterpretation)
2692{
2693 find interpretation(problem,interpretation);
2694 neg find hasElementInContainment(problem,interpretation);
2695 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2696 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat6U class");
2697 find mayInstanceOfCubeSat6U_class(problem,interpretation,newObject);
2698 find mayExist(problem, interpretation, newObject);
2699 neg find mustExist(problem, interpretation, newObject);
2700}
2701pattern createObject_GroundStationNetwork_class_UndefinedPart_by_groundStationNetwork_reference_ConstellationMission(
2702 problem:LogicProblem, interpretation:PartialInterpretation,
2703 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2704 container:DefinedElement)
2705{
2706 find interpretation(problem,interpretation);
2707 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2708 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"GroundStationNetwork class UndefinedPart");
2709 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2710 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"groundStationNetwork reference ConstellationMission");
2711 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2712 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,newObject);
2713 find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,container,newObject);
2714 find mustExist(problem, interpretation, container);
2715 neg find mustExist(problem, interpretation, newObject);
2716}
2717pattern createObject_GroundStationNetwork_class_UndefinedPart(
2718 problem:LogicProblem, interpretation:PartialInterpretation,
2719 typeInterpretation:PartialComplexTypeInterpretation)
2720{
2721 find interpretation(problem,interpretation);
2722 neg find hasElementInContainment(problem,interpretation);
2723 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2724 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"GroundStationNetwork class UndefinedPart");
2725 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,newObject);
2726 find mayExist(problem, interpretation, newObject);
2727 neg find mustExist(problem, interpretation, newObject);
2728}
2729pattern createObject_UHFCommSubsystem_class_by_commSubsystem_reference_CommunicatingElement(
2730 problem:LogicProblem, interpretation:PartialInterpretation,
2731 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2732 container:DefinedElement)
2733{
2734 find interpretation(problem,interpretation);
2735 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2736 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"UHFCommSubsystem class");
2737 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2738 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"commSubsystem reference CommunicatingElement");
2739 find mustInstanceOfCommunicatingElement_class(problem,interpretation,container);
2740 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,newObject);
2741 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,container,newObject);
2742 find mustExist(problem, interpretation, container);
2743 neg find mustExist(problem, interpretation, newObject);
2744}
2745pattern createObject_UHFCommSubsystem_class(
2746 problem:LogicProblem, interpretation:PartialInterpretation,
2747 typeInterpretation:PartialComplexTypeInterpretation)
2748{
2749 find interpretation(problem,interpretation);
2750 neg find hasElementInContainment(problem,interpretation);
2751 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2752 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"UHFCommSubsystem class");
2753 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,newObject);
2754 find mayExist(problem, interpretation, newObject);
2755 neg find mustExist(problem, interpretation, newObject);
2756}
2757pattern createObject_SmallSat_class_by_spacecraft_reference_ConstellationMission(
2758 problem:LogicProblem, interpretation:PartialInterpretation,
2759 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2760 container:DefinedElement)
2761{
2762 find interpretation(problem,interpretation);
2763 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2764 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"SmallSat class");
2765 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2766 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission");
2767 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2768 find mayInstanceOfSmallSat_class(problem,interpretation,newObject);
2769 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject);
2770 find mustExist(problem, interpretation, container);
2771 neg find mustExist(problem, interpretation, newObject);
2772}
2773pattern createObject_SmallSat_class(
2774 problem:LogicProblem, interpretation:PartialInterpretation,
2775 typeInterpretation:PartialComplexTypeInterpretation)
2776{
2777 find interpretation(problem,interpretation);
2778 neg find hasElementInContainment(problem,interpretation);
2779 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2780 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"SmallSat class");
2781 find mayInstanceOfSmallSat_class(problem,interpretation,newObject);
2782 find mayExist(problem, interpretation, newObject);
2783 neg find mustExist(problem, interpretation, newObject);
2784}
2785pattern createObject_KaCommSubsystem_class_UndefinedPart_by_commSubsystem_reference_CommunicatingElement(
2786 problem:LogicProblem, interpretation:PartialInterpretation,
2787 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2788 container:DefinedElement)
2789{
2790 find interpretation(problem,interpretation);
2791 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2792 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"KaCommSubsystem class UndefinedPart");
2793 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2794 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"commSubsystem reference CommunicatingElement");
2795 find mustInstanceOfCommunicatingElement_class(problem,interpretation,container);
2796 find mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2797 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,container,newObject);
2798 find mustExist(problem, interpretation, container);
2799 neg find mustExist(problem, interpretation, newObject);
2800}
2801pattern createObject_KaCommSubsystem_class_UndefinedPart(
2802 problem:LogicProblem, interpretation:PartialInterpretation,
2803 typeInterpretation:PartialComplexTypeInterpretation)
2804{
2805 find interpretation(problem,interpretation);
2806 neg find hasElementInContainment(problem,interpretation);
2807 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2808 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"KaCommSubsystem class UndefinedPart");
2809 find mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2810 find mayExist(problem, interpretation, newObject);
2811 neg find mustExist(problem, interpretation, newObject);
2812}
2813pattern createObject_CubeSat3U_class_by_spacecraft_reference_ConstellationMission(
2814 problem:LogicProblem, interpretation:PartialInterpretation,
2815 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2816 container:DefinedElement)
2817{
2818 find interpretation(problem,interpretation);
2819 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2820 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat3U class");
2821 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2822 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission");
2823 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2824 find mayInstanceOfCubeSat3U_class(problem,interpretation,newObject);
2825 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject);
2826 find mustExist(problem, interpretation, container);
2827 neg find mustExist(problem, interpretation, newObject);
2828}
2829pattern createObject_CubeSat3U_class(
2830 problem:LogicProblem, interpretation:PartialInterpretation,
2831 typeInterpretation:PartialComplexTypeInterpretation)
2832{
2833 find interpretation(problem,interpretation);
2834 neg find hasElementInContainment(problem,interpretation);
2835 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2836 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat3U class");
2837 find mayInstanceOfCubeSat3U_class(problem,interpretation,newObject);
2838 find mayExist(problem, interpretation, newObject);
2839 neg find mustExist(problem, interpretation, newObject);
2840}
2841pattern createObject_XCommSubsystem_class_UndefinedPart_by_commSubsystem_reference_CommunicatingElement(
2842 problem:LogicProblem, interpretation:PartialInterpretation,
2843 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2844 container:DefinedElement)
2845{
2846 find interpretation(problem,interpretation);
2847 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2848 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"XCommSubsystem class UndefinedPart");
2849 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2850 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"commSubsystem reference CommunicatingElement");
2851 find mustInstanceOfCommunicatingElement_class(problem,interpretation,container);
2852 find mayInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2853 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,container,newObject);
2854 find mustExist(problem, interpretation, container);
2855 neg find mustExist(problem, interpretation, newObject);
2856}
2857pattern createObject_XCommSubsystem_class_UndefinedPart(
2858 problem:LogicProblem, interpretation:PartialInterpretation,
2859 typeInterpretation:PartialComplexTypeInterpretation)
2860{
2861 find interpretation(problem,interpretation);
2862 neg find hasElementInContainment(problem,interpretation);
2863 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2864 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"XCommSubsystem class UndefinedPart");
2865 find mayInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2866 find mayExist(problem, interpretation, newObject);
2867 neg find mustExist(problem, interpretation, newObject);
2868}
2869pattern createObject_InterferometryMission_class_UndefinedPart(
2870 problem:LogicProblem, interpretation:PartialInterpretation,
2871 typeInterpretation:PartialComplexTypeInterpretation)
2872{
2873 find interpretation(problem,interpretation);
2874 neg find hasElementInContainment(problem,interpretation);
2875 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2876 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryMission class UndefinedPart");
2877 find mayInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,newObject);
2878 find mayExist(problem, interpretation, newObject);
2879 neg find mustExist(problem, interpretation, newObject);
2880}
2881
2882//////////
2883// 4.2 Type refinement
2884//////////
2885pattern refineTypeTo_InterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2886 find interpretation(problem,interpretation);
2887 PartialInterpretation.newElements(interpretation,element);
2888 find mayInstanceOfInterferometryPayload_class(problem,interpretation,element);
2889 neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element);
2890 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2891 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2892 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2893}
2894pattern refineTypeTo_CubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2895 find interpretation(problem,interpretation);
2896 PartialInterpretation.newElements(interpretation,element);
2897 find mayInstanceOfCubeSat6U_class(problem,interpretation,element);
2898 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2899 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
2900 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
2901 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
2902 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2903 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
2904 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2905}
2906pattern refineTypeTo_GroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2907 find interpretation(problem,interpretation);
2908 PartialInterpretation.newElements(interpretation,element);
2909 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element);
2910 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2911 neg find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element);
2912 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2913 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
2914 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2915}
2916pattern refineTypeTo_UHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2917 find interpretation(problem,interpretation);
2918 PartialInterpretation.newElements(interpretation,element);
2919 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
2920 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2921 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2922 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
2923 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
2924 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2925 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
2926}
2927pattern refineTypeTo_SmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2928 find interpretation(problem,interpretation);
2929 PartialInterpretation.newElements(interpretation,element);
2930 find mayInstanceOfSmallSat_class(problem,interpretation,element);
2931 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2932 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
2933 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
2934 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2935 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
2936 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2937}
2938pattern refineTypeTo_KaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2939 find interpretation(problem,interpretation);
2940 PartialInterpretation.newElements(interpretation,element);
2941 find mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2942 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2943 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2944 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
2945 neg find mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2946 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2947 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
2948}
2949pattern refineTypeTo_CubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2950 find interpretation(problem,interpretation);
2951 PartialInterpretation.newElements(interpretation,element);
2952 find mayInstanceOfCubeSat3U_class(problem,interpretation,element);
2953 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2954 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
2955 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
2956 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
2957 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2958 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
2959 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2960}
2961pattern refineTypeTo_XCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2962 find interpretation(problem,interpretation);
2963 PartialInterpretation.newElements(interpretation,element);
2964 find mayInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2965 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2966 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2967 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
2968 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
2969 neg find mustInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2970 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2971}
2972pattern refineTypeTo_InterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2973 find interpretation(problem,interpretation);
2974 PartialInterpretation.newElements(interpretation,element);
2975 find mayInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element);
2976 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2977 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2978 neg find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element);
2979 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2980}
2981
2982//////////
2983// 4.3 Relation refinement
2984//////////
2985pattern refineRelation_target_reference_CommSubsystem(
2986 problem:LogicProblem, interpretation:PartialInterpretation,
2987 relationIterpretation:PartialRelationInterpretation,
2988 from: DefinedElement, to: DefinedElement)
2989{
2990 find interpretation(problem,interpretation);
2991 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2992 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"target reference CommSubsystem");
2993 find mustExist(problem, interpretation, from);
2994 find mustExist(problem, interpretation, to);
2995 find mustInstanceOfCommSubsystem_class(problem,interpretation,from);
2996 find mustInstanceOfCommSubsystem_class(problem,interpretation,to);
2997 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,from,to);
2998 neg find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,from,to);
2999}
3000
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run1/init.partialmodel b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run1/init.partialmodel
deleted file mode 100644
index 9f14379f..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run1/init.partialmodel
+++ /dev/null
@@ -1,147 +0,0 @@
1<?xml version="1.0" encoding="ASCII"?>
2<partialinterpretation:PartialInterpretation xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" xmlns:partialinterpretation="http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" minNewElements="32" maxNewElements="64">
3 <problem href="outputs/debug/generation.logicproblem#/"/>
4 <partialrelationinterpretation>
5 <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.0"/>
6 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
7 <param1 href="outputs/debug/generation.logicproblem#//@elements.0"/>
8 <param2 href="outputs/debug/generation.logicproblem#//@elements.1"/>
9 </relationlinks>
10 <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.0/@parameters.0"/>
11 <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.0/@parameters.1"/>
12 </partialrelationinterpretation>
13 <partialrelationinterpretation>
14 <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.1"/>
15 <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.1/@parameters.0"/>
16 <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.1/@parameters.1"/>
17 </partialrelationinterpretation>
18 <partialrelationinterpretation>
19 <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.2"/>
20 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
21 <param1 href="outputs/debug/generation.logicproblem#//@elements.1"/>
22 <param2 href="outputs/debug/generation.logicproblem#//@elements.2"/>
23 </relationlinks>
24 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
25 <param1 href="outputs/debug/generation.logicproblem#//@elements.1"/>
26 <param2 href="outputs/debug/generation.logicproblem#//@elements.3"/>
27 </relationlinks>
28 <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.2/@parameters.0"/>
29 <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.2/@parameters.1"/>
30 </partialrelationinterpretation>
31 <partialrelationinterpretation>
32 <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.3"/>
33 <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.3/@parameters.0"/>
34 <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.3/@parameters.1"/>
35 </partialrelationinterpretation>
36 <partialrelationinterpretation>
37 <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.4"/>
38 <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.4/@parameters.0"/>
39 <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.4/@parameters.1"/>
40 </partialrelationinterpretation>
41 <newElements xsi:type="partialinterpretation:BooleanElement" name="true" valueSet="true" value="true"/>
42 <newElements xsi:type="partialinterpretation:BooleanElement" name="false" valueSet="true"/>
43 <partialtypeinterpratation xsi:type="partialinterpretation:PartialBooleanInterpretation" elements="//@newElements.0 //@newElements.1"/>
44 <partialtypeinterpratation xsi:type="partialinterpretation:PartialIntegerInterpretation" elements="//@openWorldElements.0"/>
45 <partialtypeinterpratation xsi:type="partialinterpretation:PartialRealInterpretation" elements="//@openWorldElements.1"/>
46 <partialtypeinterpratation xsi:type="partialinterpretation:PartialStringInterpretation" elements="//@openWorldElements.2"/>
47 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.0">
48 <elements href="outputs/debug/generation.logicproblem#//@elements.0"/>
49 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.0"/>
50 </partialtypeinterpratation>
51 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.1" supertypeInterpretation="//@partialtypeinterpratation.4">
52 <elements href="outputs/debug/generation.logicproblem#//@elements.0"/>
53 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.1"/>
54 </partialtypeinterpratation>
55 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.2">
56 <elements href="outputs/debug/generation.logicproblem#//@elements.1"/>
57 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.2"/>
58 </partialtypeinterpratation>
59 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.3" supertypeInterpretation="//@partialtypeinterpratation.6">
60 <elements href="outputs/debug/generation.logicproblem#//@elements.1"/>
61 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.3"/>
62 </partialtypeinterpratation>
63 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.4" supertypeInterpretation="//@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
64 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.4"/>
65 </partialtypeinterpratation>
66 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.5">
67 <elements href="outputs/debug/generation.logicproblem#//@elements.2"/>
68 <elements href="outputs/debug/generation.logicproblem#//@elements.3"/>
69 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.5"/>
70 </partialtypeinterpratation>
71 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.6">
72 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.6"/>
73 </partialtypeinterpratation>
74 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.7" supertypeInterpretation="//@partialtypeinterpratation.10">
75 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.7"/>
76 </partialtypeinterpratation>
77 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.8" supertypeInterpretation="//@partialtypeinterpratation.15 //@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
78 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.8"/>
79 </partialtypeinterpratation>
80 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.9" supertypeInterpretation="//@partialtypeinterpratation.15 //@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
81 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.9"/>
82 </partialtypeinterpratation>
83 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.10" supertypeInterpretation="//@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
84 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.10"/>
85 </partialtypeinterpratation>
86 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.11" supertypeInterpretation="//@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
87 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.11"/>
88 </partialtypeinterpratation>
89 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.12" supertypeInterpretation="//@partialtypeinterpratation.9 //@partialtypeinterpratation.23">
90 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.12"/>
91 </partialtypeinterpratation>
92 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.13" supertypeInterpretation="//@partialtypeinterpratation.9">
93 <elements href="outputs/debug/generation.logicproblem#//@elements.2"/>
94 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.13"/>
95 </partialtypeinterpratation>
96 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.14" supertypeInterpretation="//@partialtypeinterpratation.9">
97 <elements href="outputs/debug/generation.logicproblem#//@elements.3"/>
98 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.14"/>
99 </partialtypeinterpratation>
100 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.15" supertypeInterpretation="//@partialtypeinterpratation.4">
101 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.16"/>
102 </partialtypeinterpratation>
103 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.16" supertypeInterpretation="//@partialtypeinterpratation.5 //@partialtypeinterpratation.4 //@partialtypeinterpratation.19">
104 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.18"/>
105 </partialtypeinterpratation>
106 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.17" supertypeInterpretation="//@partialtypeinterpratation.6">
107 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.20"/>
108 </partialtypeinterpratation>
109 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.18" supertypeInterpretation="//@partialtypeinterpratation.7 //@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
110 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.22"/>
111 </partialtypeinterpratation>
112 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.19" supertypeInterpretation="//@partialtypeinterpratation.9">
113 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.24"/>
114 </partialtypeinterpratation>
115 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.20" supertypeInterpretation="//@partialtypeinterpratation.17 //@partialtypeinterpratation.9 //@partialtypeinterpratation.23">
116 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.26"/>
117 </partialtypeinterpratation>
118 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.21" supertypeInterpretation="//@partialtypeinterpratation.18 //@partialtypeinterpratation.9 //@partialtypeinterpratation.23">
119 <interpretationOf href="outputs/debug/generation.logicproblem#//@types.28"/>
120 </partialtypeinterpratation>
121 <openWorldElements xsi:type="partialinterpretation:IntegerElement" name="New Integers"/>
122 <openWorldElements xsi:type="partialinterpretation:RealElement" name="New Reals"/>
123 <openWorldElements xsi:type="partialinterpretation:StringElement" name="New Strings"/>
124 <openWorldElements name="New Objects"/>
125 <scopes targetTypeInterpretation="//@partialtypeinterpratation.4"/>
126 <scopes targetTypeInterpretation="//@partialtypeinterpratation.5"/>
127 <scopes targetTypeInterpretation="//@partialtypeinterpratation.6"/>
128 <scopes targetTypeInterpretation="//@partialtypeinterpratation.7"/>
129 <scopes targetTypeInterpretation="//@partialtypeinterpratation.8"/>
130 <scopes targetTypeInterpretation="//@partialtypeinterpratation.9"/>
131 <scopes targetTypeInterpretation="//@partialtypeinterpratation.10"/>
132 <scopes targetTypeInterpretation="//@partialtypeinterpratation.11"/>
133 <scopes targetTypeInterpretation="//@partialtypeinterpratation.12"/>
134 <scopes targetTypeInterpretation="//@partialtypeinterpratation.13"/>
135 <scopes targetTypeInterpretation="//@partialtypeinterpratation.14"/>
136 <scopes targetTypeInterpretation="//@partialtypeinterpratation.15"/>
137 <scopes targetTypeInterpretation="//@partialtypeinterpratation.16"/>
138 <scopes targetTypeInterpretation="//@partialtypeinterpratation.17"/>
139 <scopes targetTypeInterpretation="//@partialtypeinterpratation.18"/>
140 <scopes targetTypeInterpretation="//@partialtypeinterpratation.19"/>
141 <scopes targetTypeInterpretation="//@partialtypeinterpratation.20"/>
142 <scopes targetTypeInterpretation="//@partialtypeinterpratation.21"/>
143 <scopes targetTypeInterpretation="//@partialtypeinterpratation.22"/>
144 <scopes targetTypeInterpretation="//@partialtypeinterpratation.23"/>
145 <scopes targetTypeInterpretation="//@partialtypeinterpratation.24"/>
146 <scopes targetTypeInterpretation="//@partialtypeinterpratation.25"/>
147</partialinterpretation:PartialInterpretation>
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
deleted file mode 100644
index c96a951c..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run2/generated3valued.vql_deactivated
+++ /dev/null
@@ -1,3000 +0,0 @@
1import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage"
2import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem"
3import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language"
4
5//////////
6// 0. Util
7//////////
8private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) {
9 PartialInterpretation.problem(interpretation,problem);
10}
11
12/////////////////////////
13// 0.1 Existence
14/////////////////////////
15private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
16 find interpretation(problem,interpretation);
17 LogicProblem.elements(problem,element);
18} or {
19 find interpretation(problem,interpretation);
20 PartialInterpretation.newElements(interpretation,element);
21}
22
23private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
24 find mustExist(problem,interpretation,element);
25} or {
26 find interpretation(problem,interpretation);
27 neg find elementCloseWorld(element);
28 PartialInterpretation.openWorldElements(interpretation,element);
29}
30
31private pattern elementCloseWorld(element:DefinedElement) {
32 PartialInterpretation.openWorldElements(i,element);
33 PartialInterpretation.maxNewElements(i,0);
34} or {
35 Scope.targetTypeInterpretation(scope,interpretation);
36 PartialTypeInterpratation.elements(interpretation,element);
37 Scope.maxNewElements(scope,0);
38}
39
40////////////////////////
41// 0.2 Equivalence
42////////////////////////
43pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) {
44 find mayExist(problem,interpretation,a);
45 find mayExist(problem,interpretation,b);
46 a == b;
47}
48pattern mustEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) {
49 find mustExist(problem,interpretation,a);
50 find mustExist(problem,interpretation,b);
51 a == b;
52}
53
54////////////////////////
55// 0.3 Required Patterns by TypeIndexer
56////////////////////////
57private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) {
58 find interpretation(problem,interpretation);
59 LogicProblem.types(problem,type);
60 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
61 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
62}
63
64private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) {
65 find interpretation(problem,interpretation);
66 LogicProblem.types(problem,type);
67 TypeDefinition.elements(type,element);
68} or {
69 find interpretation(problem,interpretation);
70 find typeInterpretation(problem,interpretation,type,typeInterpretation);
71 PartialComplexTypeInterpretation.elements(typeInterpretation,element);
72}
73
74private pattern isPrimitive(element: PrimitiveElement) {
75 PrimitiveElement(element);
76}
77
78//////////
79// 1. Problem-Specific Base Indexers
80//////////
81// 1.1 Type Indexers
82//////////
83// 1.1.1 primitive Type Indexers
84//////////
85
86//////////
87// 1.1.2 domain-specific Type Indexers
88//////////
89/**
90 * An element must be an instance of type "ConstellationMission class".
91 */
92private pattern mustInstanceOfConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
93 Type.name(type,"ConstellationMission class");
94 find directInstanceOf(problem,interpretation,element,type);
95}
96private pattern scopeDisallowsNewConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation) {
97 find interpretation(problem,interpretation);
98 PartialInterpretation.scopes(interpretation,scope);
99 Scope.targetTypeInterpretation(scope,typeInterpretation);
100 Scope.maxNewElements(scope,0);
101 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
102 Type.name(type,"ConstellationMission class");
103}
104
105/**
106 * An element may be an instance of type "ConstellationMission class".
107 */
108private pattern mayInstanceOfConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
109{
110 find interpretation(problem,interpretation);
111 PartialInterpretation.newElements(interpretation,element);
112 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
113 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
114 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
115 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
116 neg find mustInstanceOfPayload_class(problem,interpretation,element);
117 neg find scopeDisallowsNewConstellationMission_class(problem, interpretation);
118 neg find isPrimitive(element);
119} or {
120 find interpretation(problem,interpretation);
121 PartialInterpretation.openWorldElements(interpretation,element);
122 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
123 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
124 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
125 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
126 neg find mustInstanceOfPayload_class(problem,interpretation,element);
127 neg find scopeDisallowsNewConstellationMission_class(problem, interpretation);
128 neg find isPrimitive(element);
129} or
130{ find mustInstanceOfConstellationMission_class(problem,interpretation,element); }
131/**
132 * An element must be an instance of type "InterferometryMission class".
133 */
134private pattern mustInstanceOfInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
135 Type.name(type,"InterferometryMission class");
136 find directInstanceOf(problem,interpretation,element,type);
137}
138private pattern scopeDisallowsNewInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation) {
139 find interpretation(problem,interpretation);
140 PartialInterpretation.scopes(interpretation,scope);
141 Scope.targetTypeInterpretation(scope,typeInterpretation);
142 Scope.maxNewElements(scope,0);
143 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
144 Type.name(type,"InterferometryMission class");
145}
146
147/**
148 * An element may be an instance of type "InterferometryMission class".
149 */
150private pattern mayInstanceOfInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
151{
152 find interpretation(problem,interpretation);
153 PartialInterpretation.newElements(interpretation,element);
154 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
155 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
156 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
157 neg find mustInstanceOfPayload_class(problem,interpretation,element);
158 neg find scopeDisallowsNewInterferometryMission_class(problem, interpretation);
159 neg find isPrimitive(element);
160} or {
161 find interpretation(problem,interpretation);
162 PartialInterpretation.openWorldElements(interpretation,element);
163 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
164 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
165 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
166 neg find mustInstanceOfPayload_class(problem,interpretation,element);
167 neg find scopeDisallowsNewInterferometryMission_class(problem, interpretation);
168 neg find isPrimitive(element);
169} or
170{ find mustInstanceOfInterferometryMission_class(problem,interpretation,element); }
171/**
172 * An element must be an instance of type "CommunicatingElement class".
173 */
174private pattern mustInstanceOfCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
175 Type.name(type,"CommunicatingElement class");
176 find directInstanceOf(problem,interpretation,element,type);
177}
178private pattern scopeDisallowsNewCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
179 find interpretation(problem,interpretation);
180 PartialInterpretation.scopes(interpretation,scope);
181 Scope.targetTypeInterpretation(scope,typeInterpretation);
182 Scope.maxNewElements(scope,0);
183 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
184 Type.name(type,"CommunicatingElement class");
185}
186
187/**
188 * An element may be an instance of type "CommunicatingElement class".
189 */
190private pattern mayInstanceOfCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
191{
192 find interpretation(problem,interpretation);
193 PartialInterpretation.newElements(interpretation,element);
194 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
195 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
196 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
197 neg find mustInstanceOfPayload_class(problem,interpretation,element);
198 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
199 neg find scopeDisallowsNewCommunicatingElement_class(problem, interpretation);
200 neg find isPrimitive(element);
201} or {
202 find interpretation(problem,interpretation);
203 PartialInterpretation.openWorldElements(interpretation,element);
204 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
205 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
206 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
207 neg find mustInstanceOfPayload_class(problem,interpretation,element);
208 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
209 neg find scopeDisallowsNewCommunicatingElement_class(problem, interpretation);
210 neg find isPrimitive(element);
211} or
212{ find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); }
213/**
214 * An element must be an instance of type "GroundStationNetwork class".
215 */
216private pattern mustInstanceOfGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
217 Type.name(type,"GroundStationNetwork class");
218 find directInstanceOf(problem,interpretation,element,type);
219}
220private pattern scopeDisallowsNewGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation) {
221 find interpretation(problem,interpretation);
222 PartialInterpretation.scopes(interpretation,scope);
223 Scope.targetTypeInterpretation(scope,typeInterpretation);
224 Scope.maxNewElements(scope,0);
225 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
226 Type.name(type,"GroundStationNetwork class");
227}
228
229/**
230 * An element may be an instance of type "GroundStationNetwork class".
231 */
232private pattern mayInstanceOfGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
233{
234 find interpretation(problem,interpretation);
235 PartialInterpretation.newElements(interpretation,element);
236 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
237 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
238 neg find mustInstanceOfPayload_class(problem,interpretation,element);
239 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
240 neg find scopeDisallowsNewGroundStationNetwork_class(problem, interpretation);
241 neg find isPrimitive(element);
242} or {
243 find interpretation(problem,interpretation);
244 PartialInterpretation.openWorldElements(interpretation,element);
245 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
246 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
247 neg find mustInstanceOfPayload_class(problem,interpretation,element);
248 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
249 neg find scopeDisallowsNewGroundStationNetwork_class(problem, interpretation);
250 neg find isPrimitive(element);
251} or
252{ find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); }
253/**
254 * An element must be an instance of type "Spacecraft class".
255 */
256private pattern mustInstanceOfSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
257 Type.name(type,"Spacecraft class");
258 find directInstanceOf(problem,interpretation,element,type);
259}
260private pattern scopeDisallowsNewSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation) {
261 find interpretation(problem,interpretation);
262 PartialInterpretation.scopes(interpretation,scope);
263 Scope.targetTypeInterpretation(scope,typeInterpretation);
264 Scope.maxNewElements(scope,0);
265 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
266 Type.name(type,"Spacecraft class");
267}
268
269/**
270 * An element may be an instance of type "Spacecraft class".
271 */
272private pattern mayInstanceOfSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
273{
274 find interpretation(problem,interpretation);
275 PartialInterpretation.newElements(interpretation,element);
276 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
277 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
278 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
279 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
280 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
281 neg find mustInstanceOfPayload_class(problem,interpretation,element);
282 neg find scopeDisallowsNewSpacecraft_class(problem, interpretation);
283 neg find isPrimitive(element);
284} or {
285 find interpretation(problem,interpretation);
286 PartialInterpretation.openWorldElements(interpretation,element);
287 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
288 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
289 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
290 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
291 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
292 neg find mustInstanceOfPayload_class(problem,interpretation,element);
293 neg find scopeDisallowsNewSpacecraft_class(problem, interpretation);
294 neg find isPrimitive(element);
295} or
296{ find mustInstanceOfSpacecraft_class(problem,interpretation,element); }
297/**
298 * An element must be an instance of type "CommSubsystem class".
299 */
300private pattern mustInstanceOfCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
301 Type.name(type,"CommSubsystem class");
302 find directInstanceOf(problem,interpretation,element,type);
303}
304private pattern scopeDisallowsNewCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) {
305 find interpretation(problem,interpretation);
306 PartialInterpretation.scopes(interpretation,scope);
307 Scope.targetTypeInterpretation(scope,typeInterpretation);
308 Scope.maxNewElements(scope,0);
309 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
310 Type.name(type,"CommSubsystem class");
311}
312
313/**
314 * An element may be an instance of type "CommSubsystem class".
315 */
316private pattern mayInstanceOfCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
317{
318 find interpretation(problem,interpretation);
319 PartialInterpretation.newElements(interpretation,element);
320 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
321 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
322 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
323 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
324 neg find mustInstanceOfPayload_class(problem,interpretation,element);
325 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
326 neg find scopeDisallowsNewCommSubsystem_class(problem, interpretation);
327 neg find isPrimitive(element);
328} or {
329 find interpretation(problem,interpretation);
330 PartialInterpretation.openWorldElements(interpretation,element);
331 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
332 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
333 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
334 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
335 neg find mustInstanceOfPayload_class(problem,interpretation,element);
336 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
337 neg find scopeDisallowsNewCommSubsystem_class(problem, interpretation);
338 neg find isPrimitive(element);
339} or
340{ find mustInstanceOfCommSubsystem_class(problem,interpretation,element); }
341/**
342 * An element must be an instance of type "Payload class".
343 */
344private pattern mustInstanceOfPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
345 Type.name(type,"Payload class");
346 find directInstanceOf(problem,interpretation,element,type);
347}
348private pattern scopeDisallowsNewPayload_class(problem:LogicProblem, interpretation:PartialInterpretation) {
349 find interpretation(problem,interpretation);
350 PartialInterpretation.scopes(interpretation,scope);
351 Scope.targetTypeInterpretation(scope,typeInterpretation);
352 Scope.maxNewElements(scope,0);
353 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
354 Type.name(type,"Payload class");
355}
356
357/**
358 * An element may be an instance of type "Payload class".
359 */
360private pattern mayInstanceOfPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
361{
362 find interpretation(problem,interpretation);
363 PartialInterpretation.newElements(interpretation,element);
364 neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element);
365 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
366 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
367 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
368 neg find scopeDisallowsNewPayload_class(problem, interpretation);
369 neg find isPrimitive(element);
370} or {
371 find interpretation(problem,interpretation);
372 PartialInterpretation.openWorldElements(interpretation,element);
373 neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element);
374 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
375 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
376 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
377 neg find scopeDisallowsNewPayload_class(problem, interpretation);
378 neg find isPrimitive(element);
379} or
380{ find mustInstanceOfPayload_class(problem,interpretation,element); }
381/**
382 * An element must be an instance of type "InterferometryPayload class".
383 */
384private pattern mustInstanceOfInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
385 Type.name(type,"InterferometryPayload class");
386 find directInstanceOf(problem,interpretation,element,type);
387}
388private pattern scopeDisallowsNewInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation) {
389 find interpretation(problem,interpretation);
390 PartialInterpretation.scopes(interpretation,scope);
391 Scope.targetTypeInterpretation(scope,typeInterpretation);
392 Scope.maxNewElements(scope,0);
393 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
394 Type.name(type,"InterferometryPayload class");
395}
396
397/**
398 * An element may be an instance of type "InterferometryPayload class".
399 */
400private pattern mayInstanceOfInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
401{
402 find interpretation(problem,interpretation);
403 PartialInterpretation.newElements(interpretation,element);
404 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
405 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
406 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
407 neg find scopeDisallowsNewInterferometryPayload_class(problem, interpretation);
408 neg find isPrimitive(element);
409} or {
410 find interpretation(problem,interpretation);
411 PartialInterpretation.openWorldElements(interpretation,element);
412 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
413 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
414 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
415 neg find scopeDisallowsNewInterferometryPayload_class(problem, interpretation);
416 neg find isPrimitive(element);
417} or
418{ find mustInstanceOfInterferometryPayload_class(problem,interpretation,element); }
419/**
420 * An element must be an instance of type "CubeSat3U class".
421 */
422private pattern mustInstanceOfCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
423 Type.name(type,"CubeSat3U class");
424 find directInstanceOf(problem,interpretation,element,type);
425}
426private pattern scopeDisallowsNewCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation) {
427 find interpretation(problem,interpretation);
428 PartialInterpretation.scopes(interpretation,scope);
429 Scope.targetTypeInterpretation(scope,typeInterpretation);
430 Scope.maxNewElements(scope,0);
431 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
432 Type.name(type,"CubeSat3U class");
433}
434
435/**
436 * An element may be an instance of type "CubeSat3U class".
437 */
438private pattern mayInstanceOfCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
439{
440 find interpretation(problem,interpretation);
441 PartialInterpretation.newElements(interpretation,element);
442 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
443 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
444 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
445 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
446 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
447 neg find mustInstanceOfPayload_class(problem,interpretation,element);
448 neg find scopeDisallowsNewCubeSat3U_class(problem, interpretation);
449 neg find isPrimitive(element);
450} or {
451 find interpretation(problem,interpretation);
452 PartialInterpretation.openWorldElements(interpretation,element);
453 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
454 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
455 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
456 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
457 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
458 neg find mustInstanceOfPayload_class(problem,interpretation,element);
459 neg find scopeDisallowsNewCubeSat3U_class(problem, interpretation);
460 neg find isPrimitive(element);
461} or
462{ find mustInstanceOfCubeSat3U_class(problem,interpretation,element); }
463/**
464 * An element must be an instance of type "CubeSat6U class".
465 */
466private pattern mustInstanceOfCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
467 Type.name(type,"CubeSat6U class");
468 find directInstanceOf(problem,interpretation,element,type);
469}
470private pattern scopeDisallowsNewCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation) {
471 find interpretation(problem,interpretation);
472 PartialInterpretation.scopes(interpretation,scope);
473 Scope.targetTypeInterpretation(scope,typeInterpretation);
474 Scope.maxNewElements(scope,0);
475 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
476 Type.name(type,"CubeSat6U class");
477}
478
479/**
480 * An element may be an instance of type "CubeSat6U class".
481 */
482private pattern mayInstanceOfCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
483{
484 find interpretation(problem,interpretation);
485 PartialInterpretation.newElements(interpretation,element);
486 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
487 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
488 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
489 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
490 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
491 neg find mustInstanceOfPayload_class(problem,interpretation,element);
492 neg find scopeDisallowsNewCubeSat6U_class(problem, interpretation);
493 neg find isPrimitive(element);
494} or {
495 find interpretation(problem,interpretation);
496 PartialInterpretation.openWorldElements(interpretation,element);
497 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
498 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
499 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
500 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
501 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
502 neg find mustInstanceOfPayload_class(problem,interpretation,element);
503 neg find scopeDisallowsNewCubeSat6U_class(problem, interpretation);
504 neg find isPrimitive(element);
505} or
506{ find mustInstanceOfCubeSat6U_class(problem,interpretation,element); }
507/**
508 * An element must be an instance of type "SmallSat class".
509 */
510private pattern mustInstanceOfSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
511 Type.name(type,"SmallSat class");
512 find directInstanceOf(problem,interpretation,element,type);
513}
514private pattern scopeDisallowsNewSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation) {
515 find interpretation(problem,interpretation);
516 PartialInterpretation.scopes(interpretation,scope);
517 Scope.targetTypeInterpretation(scope,typeInterpretation);
518 Scope.maxNewElements(scope,0);
519 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
520 Type.name(type,"SmallSat class");
521}
522
523/**
524 * An element may be an instance of type "SmallSat class".
525 */
526private pattern mayInstanceOfSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
527{
528 find interpretation(problem,interpretation);
529 PartialInterpretation.newElements(interpretation,element);
530 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
531 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
532 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
533 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
534 neg find mustInstanceOfPayload_class(problem,interpretation,element);
535 neg find scopeDisallowsNewSmallSat_class(problem, interpretation);
536 neg find isPrimitive(element);
537} or {
538 find interpretation(problem,interpretation);
539 PartialInterpretation.openWorldElements(interpretation,element);
540 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
541 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
542 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
543 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
544 neg find mustInstanceOfPayload_class(problem,interpretation,element);
545 neg find scopeDisallowsNewSmallSat_class(problem, interpretation);
546 neg find isPrimitive(element);
547} or
548{ find mustInstanceOfSmallSat_class(problem,interpretation,element); }
549/**
550 * An element must be an instance of type "CubeSat class".
551 */
552private pattern mustInstanceOfCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
553 Type.name(type,"CubeSat class");
554 find directInstanceOf(problem,interpretation,element,type);
555}
556private pattern scopeDisallowsNewCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation) {
557 find interpretation(problem,interpretation);
558 PartialInterpretation.scopes(interpretation,scope);
559 Scope.targetTypeInterpretation(scope,typeInterpretation);
560 Scope.maxNewElements(scope,0);
561 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
562 Type.name(type,"CubeSat class");
563}
564
565/**
566 * An element may be an instance of type "CubeSat class".
567 */
568private pattern mayInstanceOfCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
569{
570 find interpretation(problem,interpretation);
571 PartialInterpretation.newElements(interpretation,element);
572 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
573 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
574 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
575 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
576 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
577 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
578 neg find mustInstanceOfPayload_class(problem,interpretation,element);
579 neg find scopeDisallowsNewCubeSat_class(problem, interpretation);
580 neg find isPrimitive(element);
581} or {
582 find interpretation(problem,interpretation);
583 PartialInterpretation.openWorldElements(interpretation,element);
584 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
585 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
586 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
587 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
588 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
589 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
590 neg find mustInstanceOfPayload_class(problem,interpretation,element);
591 neg find scopeDisallowsNewCubeSat_class(problem, interpretation);
592 neg find isPrimitive(element);
593} or
594{ find mustInstanceOfCubeSat_class(problem,interpretation,element); }
595/**
596 * An element must be an instance of type "UHFCommSubsystem class".
597 */
598private pattern mustInstanceOfUHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
599 Type.name(type,"UHFCommSubsystem class");
600 find directInstanceOf(problem,interpretation,element,type);
601}
602private pattern scopeDisallowsNewUHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) {
603 find interpretation(problem,interpretation);
604 PartialInterpretation.scopes(interpretation,scope);
605 Scope.targetTypeInterpretation(scope,typeInterpretation);
606 Scope.maxNewElements(scope,0);
607 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
608 Type.name(type,"UHFCommSubsystem class");
609}
610
611/**
612 * An element may be an instance of type "UHFCommSubsystem class".
613 */
614private pattern mayInstanceOfUHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
615{
616 find interpretation(problem,interpretation);
617 PartialInterpretation.newElements(interpretation,element);
618 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
619 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
620 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
621 neg find mustInstanceOfPayload_class(problem,interpretation,element);
622 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
623 neg find scopeDisallowsNewUHFCommSubsystem_class(problem, interpretation);
624 neg find isPrimitive(element);
625} or {
626 find interpretation(problem,interpretation);
627 PartialInterpretation.openWorldElements(interpretation,element);
628 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
629 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
630 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
631 neg find mustInstanceOfPayload_class(problem,interpretation,element);
632 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
633 neg find scopeDisallowsNewUHFCommSubsystem_class(problem, interpretation);
634 neg find isPrimitive(element);
635} or
636{ find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element); }
637/**
638 * An element must be an instance of type "XCommSubsystem class".
639 */
640private pattern mustInstanceOfXCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
641 Type.name(type,"XCommSubsystem class");
642 find directInstanceOf(problem,interpretation,element,type);
643}
644private pattern scopeDisallowsNewXCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) {
645 find interpretation(problem,interpretation);
646 PartialInterpretation.scopes(interpretation,scope);
647 Scope.targetTypeInterpretation(scope,typeInterpretation);
648 Scope.maxNewElements(scope,0);
649 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
650 Type.name(type,"XCommSubsystem class");
651}
652
653/**
654 * An element may be an instance of type "XCommSubsystem class".
655 */
656private pattern mayInstanceOfXCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
657{
658 find interpretation(problem,interpretation);
659 PartialInterpretation.newElements(interpretation,element);
660 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
661 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
662 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
663 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
664 neg find mustInstanceOfPayload_class(problem,interpretation,element);
665 neg find scopeDisallowsNewXCommSubsystem_class(problem, interpretation);
666 neg find isPrimitive(element);
667} or {
668 find interpretation(problem,interpretation);
669 PartialInterpretation.openWorldElements(interpretation,element);
670 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
671 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
672 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
673 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
674 neg find mustInstanceOfPayload_class(problem,interpretation,element);
675 neg find scopeDisallowsNewXCommSubsystem_class(problem, interpretation);
676 neg find isPrimitive(element);
677} or
678{ find mustInstanceOfXCommSubsystem_class(problem,interpretation,element); }
679/**
680 * An element must be an instance of type "KaCommSubsystem class".
681 */
682private pattern mustInstanceOfKaCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
683 Type.name(type,"KaCommSubsystem class");
684 find directInstanceOf(problem,interpretation,element,type);
685}
686private pattern scopeDisallowsNewKaCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) {
687 find interpretation(problem,interpretation);
688 PartialInterpretation.scopes(interpretation,scope);
689 Scope.targetTypeInterpretation(scope,typeInterpretation);
690 Scope.maxNewElements(scope,0);
691 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
692 Type.name(type,"KaCommSubsystem class");
693}
694
695/**
696 * An element may be an instance of type "KaCommSubsystem class".
697 */
698private pattern mayInstanceOfKaCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
699{
700 find interpretation(problem,interpretation);
701 PartialInterpretation.newElements(interpretation,element);
702 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
703 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
704 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
705 neg find mustInstanceOfPayload_class(problem,interpretation,element);
706 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
707 neg find scopeDisallowsNewKaCommSubsystem_class(problem, interpretation);
708 neg find isPrimitive(element);
709} or {
710 find interpretation(problem,interpretation);
711 PartialInterpretation.openWorldElements(interpretation,element);
712 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
713 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
714 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
715 neg find mustInstanceOfPayload_class(problem,interpretation,element);
716 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
717 neg find scopeDisallowsNewKaCommSubsystem_class(problem, interpretation);
718 neg find isPrimitive(element);
719} or
720{ find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element); }
721/**
722 * An element must be an instance of type "ConstellationMission class DefinedPart".
723 */
724private pattern mustInstanceOfConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
725 Type.name(type,"ConstellationMission class DefinedPart");
726 find directInstanceOf(problem,interpretation,element,type);
727}
728private pattern scopeDisallowsNewConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
729 find interpretation(problem,interpretation);
730 PartialInterpretation.scopes(interpretation,scope);
731 Scope.targetTypeInterpretation(scope,typeInterpretation);
732 Scope.maxNewElements(scope,0);
733 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
734 Type.name(type,"ConstellationMission class DefinedPart");
735}
736
737/**
738 * An element may be an instance of type "ConstellationMission class DefinedPart".
739 */
740private pattern mayInstanceOfConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
741{ find mustInstanceOfConstellationMission_class_DefinedPart(problem,interpretation,element); }
742/**
743 * An element must be an instance of type "ConstellationMission class UndefinedPart".
744 */
745private pattern mustInstanceOfConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
746 Type.name(type,"ConstellationMission class UndefinedPart");
747 find directInstanceOf(problem,interpretation,element,type);
748}
749private pattern scopeDisallowsNewConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
750 find interpretation(problem,interpretation);
751 PartialInterpretation.scopes(interpretation,scope);
752 Scope.targetTypeInterpretation(scope,typeInterpretation);
753 Scope.maxNewElements(scope,0);
754 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
755 Type.name(type,"ConstellationMission class UndefinedPart");
756}
757
758/**
759 * An element may be an instance of type "ConstellationMission class UndefinedPart".
760 */
761private pattern mayInstanceOfConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
762{
763 find interpretation(problem,interpretation);
764 PartialInterpretation.newElements(interpretation,element);
765 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
766 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
767 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
768 neg find mustInstanceOfPayload_class(problem,interpretation,element);
769 neg find scopeDisallowsNewConstellationMission_class_UndefinedPart(problem, interpretation);
770 neg find isPrimitive(element);
771} or {
772 find interpretation(problem,interpretation);
773 PartialInterpretation.openWorldElements(interpretation,element);
774 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
775 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
776 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
777 neg find mustInstanceOfPayload_class(problem,interpretation,element);
778 neg find scopeDisallowsNewConstellationMission_class_UndefinedPart(problem, interpretation);
779 neg find isPrimitive(element);
780} or
781{ find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element); }
782/**
783 * An element must be an instance of type "InterferometryMission class DefinedPart".
784 */
785private pattern mustInstanceOfInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
786 Type.name(type,"InterferometryMission class DefinedPart");
787 find directInstanceOf(problem,interpretation,element,type);
788}
789private pattern scopeDisallowsNewInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
790 find interpretation(problem,interpretation);
791 PartialInterpretation.scopes(interpretation,scope);
792 Scope.targetTypeInterpretation(scope,typeInterpretation);
793 Scope.maxNewElements(scope,0);
794 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
795 Type.name(type,"InterferometryMission class DefinedPart");
796}
797
798/**
799 * An element may be an instance of type "InterferometryMission class DefinedPart".
800 */
801private pattern mayInstanceOfInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
802{ find mustInstanceOfInterferometryMission_class_DefinedPart(problem,interpretation,element); }
803/**
804 * An element must be an instance of type "InterferometryMission class UndefinedPart".
805 */
806private pattern mustInstanceOfInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
807 Type.name(type,"InterferometryMission class UndefinedPart");
808 find directInstanceOf(problem,interpretation,element,type);
809}
810private pattern scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
811 find interpretation(problem,interpretation);
812 PartialInterpretation.scopes(interpretation,scope);
813 Scope.targetTypeInterpretation(scope,typeInterpretation);
814 Scope.maxNewElements(scope,0);
815 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
816 Type.name(type,"InterferometryMission class UndefinedPart");
817}
818
819/**
820 * An element may be an instance of type "InterferometryMission class UndefinedPart".
821 */
822private pattern mayInstanceOfInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
823{
824 find interpretation(problem,interpretation);
825 PartialInterpretation.newElements(interpretation,element);
826 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
827 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
828 neg find mustInstanceOfPayload_class(problem,interpretation,element);
829 neg find scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem, interpretation);
830 neg find isPrimitive(element);
831} or {
832 find interpretation(problem,interpretation);
833 PartialInterpretation.openWorldElements(interpretation,element);
834 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
835 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
836 neg find mustInstanceOfPayload_class(problem,interpretation,element);
837 neg find scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem, interpretation);
838 neg find isPrimitive(element);
839} or
840{ find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element); }
841/**
842 * An element must be an instance of type "CommunicatingElement class DefinedPart".
843 */
844private pattern mustInstanceOfCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
845 Type.name(type,"CommunicatingElement class DefinedPart");
846 find directInstanceOf(problem,interpretation,element,type);
847}
848private pattern scopeDisallowsNewCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
849 find interpretation(problem,interpretation);
850 PartialInterpretation.scopes(interpretation,scope);
851 Scope.targetTypeInterpretation(scope,typeInterpretation);
852 Scope.maxNewElements(scope,0);
853 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
854 Type.name(type,"CommunicatingElement class DefinedPart");
855}
856
857/**
858 * An element may be an instance of type "CommunicatingElement class DefinedPart".
859 */
860private pattern mayInstanceOfCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
861{ find mustInstanceOfCommunicatingElement_class_DefinedPart(problem,interpretation,element); }
862/**
863 * An element must be an instance of type "CommunicatingElement class UndefinedPart".
864 */
865private pattern mustInstanceOfCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
866 Type.name(type,"CommunicatingElement class UndefinedPart");
867 find directInstanceOf(problem,interpretation,element,type);
868}
869private pattern scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
870 find interpretation(problem,interpretation);
871 PartialInterpretation.scopes(interpretation,scope);
872 Scope.targetTypeInterpretation(scope,typeInterpretation);
873 Scope.maxNewElements(scope,0);
874 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
875 Type.name(type,"CommunicatingElement class UndefinedPart");
876}
877
878/**
879 * An element may be an instance of type "CommunicatingElement class UndefinedPart".
880 */
881private pattern mayInstanceOfCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
882{
883 find interpretation(problem,interpretation);
884 PartialInterpretation.newElements(interpretation,element);
885 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
886 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
887 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
888 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
889 neg find mustInstanceOfPayload_class(problem,interpretation,element);
890 neg find scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem, interpretation);
891 neg find isPrimitive(element);
892} or {
893 find interpretation(problem,interpretation);
894 PartialInterpretation.openWorldElements(interpretation,element);
895 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
896 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
897 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
898 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
899 neg find mustInstanceOfPayload_class(problem,interpretation,element);
900 neg find scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem, interpretation);
901 neg find isPrimitive(element);
902} or
903{ find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element); }
904/**
905 * An element must be an instance of type "GroundStationNetwork class DefinedPart".
906 */
907private pattern mustInstanceOfGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
908 Type.name(type,"GroundStationNetwork class DefinedPart");
909 find directInstanceOf(problem,interpretation,element,type);
910}
911private pattern scopeDisallowsNewGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
912 find interpretation(problem,interpretation);
913 PartialInterpretation.scopes(interpretation,scope);
914 Scope.targetTypeInterpretation(scope,typeInterpretation);
915 Scope.maxNewElements(scope,0);
916 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
917 Type.name(type,"GroundStationNetwork class DefinedPart");
918}
919
920/**
921 * An element may be an instance of type "GroundStationNetwork class DefinedPart".
922 */
923private pattern mayInstanceOfGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
924{ find mustInstanceOfGroundStationNetwork_class_DefinedPart(problem,interpretation,element); }
925/**
926 * An element must be an instance of type "GroundStationNetwork class UndefinedPart".
927 */
928private pattern mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
929 Type.name(type,"GroundStationNetwork class UndefinedPart");
930 find directInstanceOf(problem,interpretation,element,type);
931}
932private pattern scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
933 find interpretation(problem,interpretation);
934 PartialInterpretation.scopes(interpretation,scope);
935 Scope.targetTypeInterpretation(scope,typeInterpretation);
936 Scope.maxNewElements(scope,0);
937 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
938 Type.name(type,"GroundStationNetwork class UndefinedPart");
939}
940
941/**
942 * An element may be an instance of type "GroundStationNetwork class UndefinedPart".
943 */
944private pattern mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
945{
946 find interpretation(problem,interpretation);
947 PartialInterpretation.newElements(interpretation,element);
948 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
949 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
950 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
951 neg find mustInstanceOfPayload_class(problem,interpretation,element);
952 neg find scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem, interpretation);
953 neg find isPrimitive(element);
954} or {
955 find interpretation(problem,interpretation);
956 PartialInterpretation.openWorldElements(interpretation,element);
957 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
958 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
959 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
960 neg find mustInstanceOfPayload_class(problem,interpretation,element);
961 neg find scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem, interpretation);
962 neg find isPrimitive(element);
963} or
964{ find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element); }
965/**
966 * An element must be an instance of type "CommSubsystem class DefinedPart".
967 */
968private pattern mustInstanceOfCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
969 Type.name(type,"CommSubsystem class DefinedPart");
970 find directInstanceOf(problem,interpretation,element,type);
971}
972private pattern scopeDisallowsNewCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
973 find interpretation(problem,interpretation);
974 PartialInterpretation.scopes(interpretation,scope);
975 Scope.targetTypeInterpretation(scope,typeInterpretation);
976 Scope.maxNewElements(scope,0);
977 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
978 Type.name(type,"CommSubsystem class DefinedPart");
979}
980
981/**
982 * An element may be an instance of type "CommSubsystem class DefinedPart".
983 */
984private pattern mayInstanceOfCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
985{ find mustInstanceOfCommSubsystem_class_DefinedPart(problem,interpretation,element); }
986/**
987 * An element must be an instance of type "CommSubsystem class UndefinedPart".
988 */
989private pattern mustInstanceOfCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
990 Type.name(type,"CommSubsystem class UndefinedPart");
991 find directInstanceOf(problem,interpretation,element,type);
992}
993private pattern scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
994 find interpretation(problem,interpretation);
995 PartialInterpretation.scopes(interpretation,scope);
996 Scope.targetTypeInterpretation(scope,typeInterpretation);
997 Scope.maxNewElements(scope,0);
998 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
999 Type.name(type,"CommSubsystem class UndefinedPart");
1000}
1001
1002/**
1003 * An element may be an instance of type "CommSubsystem class UndefinedPart".
1004 */
1005private pattern mayInstanceOfCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1006{
1007 find interpretation(problem,interpretation);
1008 PartialInterpretation.newElements(interpretation,element);
1009 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1010 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1011 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1012 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
1013 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1014 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
1015 neg find scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem, interpretation);
1016 neg find isPrimitive(element);
1017} or {
1018 find interpretation(problem,interpretation);
1019 PartialInterpretation.openWorldElements(interpretation,element);
1020 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1021 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1022 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1023 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
1024 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1025 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
1026 neg find scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem, interpretation);
1027 neg find isPrimitive(element);
1028} or
1029{ find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element); }
1030/**
1031 * An element must be an instance of type "XCommSubsystem class DefinedPart".
1032 */
1033private pattern mustInstanceOfXCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
1034 Type.name(type,"XCommSubsystem class DefinedPart");
1035 find directInstanceOf(problem,interpretation,element,type);
1036}
1037private pattern scopeDisallowsNewXCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
1038 find interpretation(problem,interpretation);
1039 PartialInterpretation.scopes(interpretation,scope);
1040 Scope.targetTypeInterpretation(scope,typeInterpretation);
1041 Scope.maxNewElements(scope,0);
1042 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
1043 Type.name(type,"XCommSubsystem class DefinedPart");
1044}
1045
1046/**
1047 * An element may be an instance of type "XCommSubsystem class DefinedPart".
1048 */
1049private pattern mayInstanceOfXCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1050{ find mustInstanceOfXCommSubsystem_class_DefinedPart(problem,interpretation,element); }
1051/**
1052 * An element must be an instance of type "XCommSubsystem class UndefinedPart".
1053 */
1054private pattern mustInstanceOfXCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
1055 Type.name(type,"XCommSubsystem class UndefinedPart");
1056 find directInstanceOf(problem,interpretation,element,type);
1057}
1058private pattern scopeDisallowsNewXCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
1059 find interpretation(problem,interpretation);
1060 PartialInterpretation.scopes(interpretation,scope);
1061 Scope.targetTypeInterpretation(scope,typeInterpretation);
1062 Scope.maxNewElements(scope,0);
1063 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
1064 Type.name(type,"XCommSubsystem class UndefinedPart");
1065}
1066
1067/**
1068 * An element may be an instance of type "XCommSubsystem class UndefinedPart".
1069 */
1070private pattern mayInstanceOfXCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1071{
1072 find interpretation(problem,interpretation);
1073 PartialInterpretation.newElements(interpretation,element);
1074 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1075 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1076 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1077 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
1078 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1079 neg find scopeDisallowsNewXCommSubsystem_class_UndefinedPart(problem, interpretation);
1080 neg find isPrimitive(element);
1081} or {
1082 find interpretation(problem,interpretation);
1083 PartialInterpretation.openWorldElements(interpretation,element);
1084 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1085 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1086 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1087 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
1088 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1089 neg find scopeDisallowsNewXCommSubsystem_class_UndefinedPart(problem, interpretation);
1090 neg find isPrimitive(element);
1091} or
1092{ find mustInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,element); }
1093/**
1094 * An element must be an instance of type "KaCommSubsystem class DefinedPart".
1095 */
1096private pattern mustInstanceOfKaCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
1097 Type.name(type,"KaCommSubsystem class DefinedPart");
1098 find directInstanceOf(problem,interpretation,element,type);
1099}
1100private pattern scopeDisallowsNewKaCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
1101 find interpretation(problem,interpretation);
1102 PartialInterpretation.scopes(interpretation,scope);
1103 Scope.targetTypeInterpretation(scope,typeInterpretation);
1104 Scope.maxNewElements(scope,0);
1105 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
1106 Type.name(type,"KaCommSubsystem class DefinedPart");
1107}
1108
1109/**
1110 * An element may be an instance of type "KaCommSubsystem class DefinedPart".
1111 */
1112private pattern mayInstanceOfKaCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1113{ find mustInstanceOfKaCommSubsystem_class_DefinedPart(problem,interpretation,element); }
1114/**
1115 * An element must be an instance of type "KaCommSubsystem class UndefinedPart".
1116 */
1117private pattern mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
1118 Type.name(type,"KaCommSubsystem class UndefinedPart");
1119 find directInstanceOf(problem,interpretation,element,type);
1120}
1121private pattern scopeDisallowsNewKaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
1122 find interpretation(problem,interpretation);
1123 PartialInterpretation.scopes(interpretation,scope);
1124 Scope.targetTypeInterpretation(scope,typeInterpretation);
1125 Scope.maxNewElements(scope,0);
1126 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
1127 Type.name(type,"KaCommSubsystem class UndefinedPart");
1128}
1129
1130/**
1131 * An element may be an instance of type "KaCommSubsystem class UndefinedPart".
1132 */
1133private pattern mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1134{
1135 find interpretation(problem,interpretation);
1136 PartialInterpretation.newElements(interpretation,element);
1137 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1138 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1139 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1140 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1141 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
1142 neg find scopeDisallowsNewKaCommSubsystem_class_UndefinedPart(problem, interpretation);
1143 neg find isPrimitive(element);
1144} or {
1145 find interpretation(problem,interpretation);
1146 PartialInterpretation.openWorldElements(interpretation,element);
1147 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1148 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1149 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1150 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1151 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
1152 neg find scopeDisallowsNewKaCommSubsystem_class_UndefinedPart(problem, interpretation);
1153 neg find isPrimitive(element);
1154} or
1155{ find mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,element); }
1156
1157//////////
1158// 1.2 Relation Declaration Indexers
1159//////////
1160/**
1161 * Matcher for detecting tuples t where []groundStationNetwork reference ConstellationMission(source,target)
1162 */
1163private pattern mustInRelationgroundStationNetwork_reference_ConstellationMission(
1164 problem:LogicProblem, interpretation:PartialInterpretation,
1165 source: DefinedElement, target:DefinedElement)
1166{
1167 find interpretation(problem,interpretation);
1168 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1169 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"groundStationNetwork reference ConstellationMission");
1170 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1171 BinaryElementRelationLink.param1(link,source);
1172 BinaryElementRelationLink.param2(link,target);
1173}
1174/**
1175 * Matcher for detecting tuples t where <>groundStationNetwork reference ConstellationMission(source,target)
1176 */
1177private pattern mayInRelationgroundStationNetwork_reference_ConstellationMission(
1178 problem:LogicProblem, interpretation:PartialInterpretation,
1179 source: DefinedElement, target:DefinedElement)
1180{
1181 find interpretation(problem,interpretation);
1182 // The two endpoint of the link have to exist
1183 find mayExist(problem, interpretation, source);
1184 find mayExist(problem, interpretation, target);
1185 // Type consistency
1186 find mayInstanceOfConstellationMission_class(problem,interpretation,source);
1187 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,target);
1188 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1189 // the upper bound of the multiplicity should be considered.
1190 numberOfExistingReferences == count find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,_);
1191 check(numberOfExistingReferences < 1);
1192 // The reference is containment, then a new reference cannot be create if:
1193 // 1. Multiple parents
1194 neg find mustContains4(problem,interpretation,_,target);
1195 // 2. Circle in the containment hierarchy
1196 neg find mustTransitiveContains(source,target);
1197} or {
1198 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,target);
1199}
1200/**
1201 * Matcher for detecting tuples t where []spacecraft reference ConstellationMission(source,target)
1202 */
1203private pattern mustInRelationspacecraft_reference_ConstellationMission(
1204 problem:LogicProblem, interpretation:PartialInterpretation,
1205 source: DefinedElement, target:DefinedElement)
1206{
1207 find interpretation(problem,interpretation);
1208 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1209 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"spacecraft reference ConstellationMission");
1210 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1211 BinaryElementRelationLink.param1(link,source);
1212 BinaryElementRelationLink.param2(link,target);
1213}
1214/**
1215 * Matcher for detecting tuples t where <>spacecraft reference ConstellationMission(source,target)
1216 */
1217private pattern mayInRelationspacecraft_reference_ConstellationMission(
1218 problem:LogicProblem, interpretation:PartialInterpretation,
1219 source: DefinedElement, target:DefinedElement)
1220{
1221 find interpretation(problem,interpretation);
1222 // The two endpoint of the link have to exist
1223 find mayExist(problem, interpretation, source);
1224 find mayExist(problem, interpretation, target);
1225 // Type consistency
1226 find mayInstanceOfConstellationMission_class(problem,interpretation,source);
1227 find mayInstanceOfSpacecraft_class(problem,interpretation,target);
1228 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1229 // the upper bound of the multiplicity should be considered.
1230 numberOfExistingReferences == count find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,_);
1231 check(numberOfExistingReferences < 50);
1232 // The reference is containment, then a new reference cannot be create if:
1233 // 1. Multiple parents
1234 neg find mustContains4(problem,interpretation,_,target);
1235 // 2. Circle in the containment hierarchy
1236 neg find mustTransitiveContains(source,target);
1237} or {
1238 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,target);
1239}
1240/**
1241 * Matcher for detecting tuples t where []commSubsystem reference CommunicatingElement(source,target)
1242 */
1243private pattern mustInRelationcommSubsystem_reference_CommunicatingElement(
1244 problem:LogicProblem, interpretation:PartialInterpretation,
1245 source: DefinedElement, target:DefinedElement)
1246{
1247 find interpretation(problem,interpretation);
1248 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1249 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"commSubsystem reference CommunicatingElement");
1250 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1251 BinaryElementRelationLink.param1(link,source);
1252 BinaryElementRelationLink.param2(link,target);
1253}
1254/**
1255 * Matcher for detecting tuples t where <>commSubsystem reference CommunicatingElement(source,target)
1256 */
1257private pattern mayInRelationcommSubsystem_reference_CommunicatingElement(
1258 problem:LogicProblem, interpretation:PartialInterpretation,
1259 source: DefinedElement, target:DefinedElement)
1260{
1261 find interpretation(problem,interpretation);
1262 // The two endpoint of the link have to exist
1263 find mayExist(problem, interpretation, source);
1264 find mayExist(problem, interpretation, target);
1265 // Type consistency
1266 find mayInstanceOfCommunicatingElement_class(problem,interpretation,source);
1267 find mayInstanceOfCommSubsystem_class(problem,interpretation,target);
1268 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1269 // the upper bound of the multiplicity should be considered.
1270 numberOfExistingReferences == count find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,_);
1271 check(numberOfExistingReferences < 2);
1272 // The reference is containment, then a new reference cannot be create if:
1273 // 1. Multiple parents
1274 neg find mustContains4(problem,interpretation,_,target);
1275 // 2. Circle in the containment hierarchy
1276 neg find mustTransitiveContains(source,target);
1277} or {
1278 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,target);
1279}
1280/**
1281 * Matcher for detecting tuples t where []payload reference Spacecraft(source,target)
1282 */
1283private pattern mustInRelationpayload_reference_Spacecraft(
1284 problem:LogicProblem, interpretation:PartialInterpretation,
1285 source: DefinedElement, target:DefinedElement)
1286{
1287 find interpretation(problem,interpretation);
1288 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1289 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"payload reference Spacecraft");
1290 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1291 BinaryElementRelationLink.param1(link,source);
1292 BinaryElementRelationLink.param2(link,target);
1293}
1294/**
1295 * Matcher for detecting tuples t where <>payload reference Spacecraft(source,target)
1296 */
1297private pattern mayInRelationpayload_reference_Spacecraft(
1298 problem:LogicProblem, interpretation:PartialInterpretation,
1299 source: DefinedElement, target:DefinedElement)
1300{
1301 find interpretation(problem,interpretation);
1302 // The two endpoint of the link have to exist
1303 find mayExist(problem, interpretation, source);
1304 find mayExist(problem, interpretation, target);
1305 // Type consistency
1306 find mayInstanceOfSpacecraft_class(problem,interpretation,source);
1307 find mayInstanceOfPayload_class(problem,interpretation,target);
1308 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1309 // the upper bound of the multiplicity should be considered.
1310 numberOfExistingReferences == count find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,_);
1311 check(numberOfExistingReferences < 1);
1312 // The reference is containment, then a new reference cannot be create if:
1313 // 1. Multiple parents
1314 neg find mustContains4(problem,interpretation,_,target);
1315 // 2. Circle in the containment hierarchy
1316 neg find mustTransitiveContains(source,target);
1317} or {
1318 find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,target);
1319}
1320/**
1321 * Matcher for detecting tuples t where []target reference CommSubsystem(source,target)
1322 */
1323private pattern mustInRelationtarget_reference_CommSubsystem(
1324 problem:LogicProblem, interpretation:PartialInterpretation,
1325 source: DefinedElement, target:DefinedElement)
1326{
1327 find interpretation(problem,interpretation);
1328 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1329 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"target reference CommSubsystem");
1330 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1331 BinaryElementRelationLink.param1(link,source);
1332 BinaryElementRelationLink.param2(link,target);
1333}
1334/**
1335 * Matcher for detecting tuples t where <>target reference CommSubsystem(source,target)
1336 */
1337private pattern mayInRelationtarget_reference_CommSubsystem(
1338 problem:LogicProblem, interpretation:PartialInterpretation,
1339 source: DefinedElement, target:DefinedElement)
1340{
1341 find interpretation(problem,interpretation);
1342 // The two endpoint of the link have to exist
1343 find mayExist(problem, interpretation, source);
1344 find mayExist(problem, interpretation, target);
1345 // Type consistency
1346 find mayInstanceOfCommSubsystem_class(problem,interpretation,source);
1347 find mayInstanceOfCommSubsystem_class(problem,interpretation,target);
1348 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1349 // the upper bound of the multiplicity should be considered.
1350 numberOfExistingReferences == count find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,source,_);
1351 check(numberOfExistingReferences < 1);
1352} or {
1353 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,source,target);
1354}
1355
1356//////////
1357// 1.3 Relation Definition Indexers
1358//////////
1359// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries communicationLinkDoesNotStartAtContainingElement
1360private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(
1361 problem:LogicProblem, interpretation:PartialInterpretation,
1362 var_Element)
1363{
1364 find interpretation(problem,interpretation);
1365 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1366 // Element is exported
1367 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm1);
1368 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm2);
1369 neg find mayEquivalent(problem, interpretation, var_Comm1, var_Comm2);
1370}
1371private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(
1372 problem:LogicProblem, interpretation:PartialInterpretation,
1373 var_Element)
1374{
1375 find interpretation(problem,interpretation);
1376 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1377 // Element is exported
1378 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm1);
1379 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm2);
1380 neg find mustEquivalent(problem, interpretation, var_Comm1, var_Comm2);
1381}
1382private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(
1383 problem:LogicProblem, interpretation:PartialInterpretation,
1384 var_Element)
1385{
1386 find interpretation(problem,interpretation);
1387 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1388 // Element is exported
1389 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm1);
1390 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm2);
1391 neg find mustEquivalent(problem, interpretation, var_Comm1, var_Comm2);
1392}
1393// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries transmittingCommSubsystem
1394private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(
1395 problem:LogicProblem, interpretation:PartialInterpretation,
1396 var_Element, var_Comm)
1397{
1398 find interpretation(problem,interpretation);
1399 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1400 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1401 // Element is exported
1402 // Comm is exported
1403 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1404 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0);
1405 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1406 find mustEquivalent(problem, interpretation, var_virtual0, var_Comm);
1407 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1408 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1409 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1410 find mustEquivalent(problem, interpretation, var_virtual1, _var__0);
1411}
1412private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(
1413 problem:LogicProblem, interpretation:PartialInterpretation,
1414 var_Element, var_Comm)
1415{
1416 find interpretation(problem,interpretation);
1417 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1418 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1419 // Element is exported
1420 // Comm is exported
1421 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1422 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0);
1423 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1424 find mayEquivalent(problem, interpretation, var_virtual0, var_Comm);
1425 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1426 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1427 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1428 find mayEquivalent(problem, interpretation, var_virtual1, _var__0);
1429}
1430private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(
1431 problem:LogicProblem, interpretation:PartialInterpretation,
1432 var_Element, var_Comm)
1433{
1434 find interpretation(problem,interpretation);
1435 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1436 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1437 // Element is exported
1438 // Comm is exported
1439 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1440 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0);
1441 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1442 find mustEquivalent(problem, interpretation, var_virtual0, var_Comm);
1443 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1444 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1445 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1446 find mustEquivalent(problem, interpretation, var_virtual1, _var__0);
1447}
1448// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries notEnoughInterferometryPayloads
1449private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(
1450 problem:LogicProblem, interpretation:PartialInterpretation,
1451 var_Mission)
1452{
1453 find interpretation(problem,interpretation);
1454 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1455 // Mission is exported
1456 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1457 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission);
1458}
1459private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(
1460 problem:LogicProblem, interpretation:PartialInterpretation,
1461 var_Mission)
1462{
1463 find interpretation(problem,interpretation);
1464 find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1465 // Mission is exported
1466 find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1467 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission);
1468}
1469private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(
1470 problem:LogicProblem, interpretation:PartialInterpretation,
1471 var_Mission)
1472{
1473 find interpretation(problem,interpretation);
1474 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1475 // Mission is exported
1476 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1477 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission);
1478}
1479// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries atLeastTwoInterferometryPayloads
1480private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(
1481 problem:LogicProblem, interpretation:PartialInterpretation,
1482 var_Mission)
1483{
1484 find interpretation(problem,interpretation);
1485 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1486 // Mission is exported
1487 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1);
1488 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2);
1489 neg find mayEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2);
1490}
1491private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(
1492 problem:LogicProblem, interpretation:PartialInterpretation,
1493 var_Mission)
1494{
1495 find interpretation(problem,interpretation);
1496 find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1497 // Mission is exported
1498 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1);
1499 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2);
1500 neg find mustEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2);
1501}
1502private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(
1503 problem:LogicProblem, interpretation:PartialInterpretation,
1504 var_Mission)
1505{
1506 find interpretation(problem,interpretation);
1507 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1508 // Mission is exported
1509 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1);
1510 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2);
1511 neg find mustEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2);
1512}
1513// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries spacecraftWithInterferometryPayload
1514private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(
1515 problem:LogicProblem, interpretation:PartialInterpretation,
1516 var_Mission, var_Spacecraft)
1517{
1518 find interpretation(problem,interpretation);
1519 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1520 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1521 // Mission is exported
1522 // Spacecraft is exported
1523 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1524 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1525 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual0);
1526 find mustEquivalent(problem, interpretation, var_virtual0, var_Spacecraft);
1527 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1528 find mustInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1);
1529 find mustInstanceOfPayload_class(problem,interpretation,var_virtual1);
1530 find mustEquivalent(problem, interpretation, var_virtual1, var_Payload);
1531 find mustInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload);
1532}
1533private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(
1534 problem:LogicProblem, interpretation:PartialInterpretation,
1535 var_Mission, var_Spacecraft)
1536{
1537 find interpretation(problem,interpretation);
1538 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1539 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1540 // Mission is exported
1541 // Spacecraft is exported
1542 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1543 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1544 find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual0);
1545 find mayEquivalent(problem, interpretation, var_virtual0, var_Spacecraft);
1546 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1547 find mayInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1);
1548 find mayInstanceOfPayload_class(problem,interpretation,var_virtual1);
1549 find mayEquivalent(problem, interpretation, var_virtual1, var_Payload);
1550 find mayInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload);
1551}
1552private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(
1553 problem:LogicProblem, interpretation:PartialInterpretation,
1554 var_Mission, var_Spacecraft)
1555{
1556 find interpretation(problem,interpretation);
1557 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1558 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1559 // Mission is exported
1560 // Spacecraft is exported
1561 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1562 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1563 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual0);
1564 find mustEquivalent(problem, interpretation, var_virtual0, var_Spacecraft);
1565 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1566 find mustInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1);
1567 find mustInstanceOfPayload_class(problem,interpretation,var_virtual1);
1568 find mustEquivalent(problem, interpretation, var_virtual1, var_Payload);
1569 find mustInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload);
1570}
1571// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries noLinkToGroundStation
1572private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(
1573 problem:LogicProblem, interpretation:PartialInterpretation,
1574 var_Spacecraft)
1575{
1576 find interpretation(problem,interpretation);
1577 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1578 // Spacecraft is exported
1579 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1580 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1581 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1582 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1583 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1584 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1585 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1586 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1587 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation);
1588}
1589private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(
1590 problem:LogicProblem, interpretation:PartialInterpretation,
1591 var_Spacecraft)
1592{
1593 find interpretation(problem,interpretation);
1594 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1595 // Spacecraft is exported
1596 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1597 find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1598 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1599 find mayEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1600 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1601 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1602 find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1603 find mayEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1604 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation);
1605}
1606private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(
1607 problem:LogicProblem, interpretation:PartialInterpretation,
1608 var_Spacecraft)
1609{
1610 find interpretation(problem,interpretation);
1611 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1612 // Spacecraft is exported
1613 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1614 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1615 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1616 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1617 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1618 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1619 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1620 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1621 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation);
1622}
1623// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries noPotentialLinkToGroundStation
1624private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(
1625 problem:LogicProblem, interpretation:PartialInterpretation,
1626 var_Spacecraft)
1627{
1628 find interpretation(problem,interpretation);
1629 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1630 // Spacecraft is exported
1631 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1632 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1633 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1634 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1635 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1636 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1637 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1638 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1639 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation);
1640}
1641private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(
1642 problem:LogicProblem, interpretation:PartialInterpretation,
1643 var_Spacecraft)
1644{
1645 find interpretation(problem,interpretation);
1646 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1647 // Spacecraft is exported
1648 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1649 find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1650 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1651 find mayEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1652 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1653 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1654 find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1655 find mayEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1656 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation);
1657}
1658private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(
1659 problem:LogicProblem, interpretation:PartialInterpretation,
1660 var_Spacecraft)
1661{
1662 find interpretation(problem,interpretation);
1663 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1664 // Spacecraft is exported
1665 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1666 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1667 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1668 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1669 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1670 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1671 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1672 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1673 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation);
1674}
1675// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries indirectLinkAllowed
1676private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(
1677 problem:LogicProblem, interpretation:PartialInterpretation,
1678 var_From, var_To)
1679{
1680 find interpretation(problem,interpretation);
1681 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1682 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1683 // From is exported
1684 // To is exported
1685 find twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To);
1686}
1687private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(
1688 problem:LogicProblem, interpretation:PartialInterpretation,
1689 var_From, var_To)
1690{
1691 find interpretation(problem,interpretation);
1692 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1693 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1694 // From is exported
1695 // To is exported
1696 find twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To);
1697}
1698private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(
1699 problem:LogicProblem, interpretation:PartialInterpretation,
1700 var_From, var_To)
1701{
1702 find interpretation(problem,interpretation);
1703 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1704 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1705 // From is exported
1706 // To is exported
1707 find twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To);
1708}
1709// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries linkAllowed
1710private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(
1711 problem:LogicProblem, interpretation:PartialInterpretation,
1712 var_From, var_To)
1713{
1714 find interpretation(problem,interpretation);
1715 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1716 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1717 // From is exported
1718 // To is exported
1719 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1720 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From);
1721}or{
1722 find interpretation(problem,interpretation);
1723 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1724 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1725 // From is exported
1726 // To is exported
1727 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1728 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1729}or{
1730 find interpretation(problem,interpretation);
1731 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1732 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1733 // From is exported
1734 // To is exported
1735 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1736 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1737 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_To);
1738}
1739private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(
1740 problem:LogicProblem, interpretation:PartialInterpretation,
1741 var_From, var_To)
1742{
1743 find interpretation(problem,interpretation);
1744 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1745 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1746 // From is exported
1747 // To is exported
1748 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1749 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From);
1750}or{
1751 find interpretation(problem,interpretation);
1752 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1753 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1754 // From is exported
1755 // To is exported
1756 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1757 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1758}or{
1759 find interpretation(problem,interpretation);
1760 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1761 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1762 // From is exported
1763 // To is exported
1764 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1765 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1766 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_To);
1767}
1768private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(
1769 problem:LogicProblem, interpretation:PartialInterpretation,
1770 var_From, var_To)
1771{
1772 find interpretation(problem,interpretation);
1773 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1774 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1775 // From is exported
1776 // To is exported
1777 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1778 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From);
1779}or{
1780 find interpretation(problem,interpretation);
1781 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1782 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1783 // From is exported
1784 // To is exported
1785 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1786 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1787}or{
1788 find interpretation(problem,interpretation);
1789 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1790 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1791 // From is exported
1792 // To is exported
1793 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1794 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1795 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_To);
1796}
1797private pattern twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) {
1798 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To);
1799}
1800private pattern twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) {
1801 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To);
1802}
1803private pattern twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) {
1804 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To);
1805}
1806// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries matchingAntenna
1807private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(
1808 problem:LogicProblem, interpretation:PartialInterpretation,
1809 var_From, var_To)
1810{
1811 find interpretation(problem,interpretation);
1812 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1813 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1814 // From is exported
1815 // To is exported
1816 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_From);
1817 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0);
1818 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1819 find mustEquivalent(problem, interpretation, var_virtual0, var_FromSys);
1820 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1821 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual1);
1822 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1823 find mustEquivalent(problem, interpretation, var_virtual1, var_ToSys);
1824 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_FromSys,var_ToSys);
1825}
1826private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(
1827 problem:LogicProblem, interpretation:PartialInterpretation,
1828 var_From, var_To)
1829{
1830 find interpretation(problem,interpretation);
1831 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1832 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1833 // From is exported
1834 // To is exported
1835 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_From);
1836 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0);
1837 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1838 find mayEquivalent(problem, interpretation, var_virtual0, var_FromSys);
1839 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1840 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual1);
1841 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1842 find mayEquivalent(problem, interpretation, var_virtual1, var_ToSys);
1843 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_FromSys,var_ToSys);
1844}
1845private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(
1846 problem:LogicProblem, interpretation:PartialInterpretation,
1847 var_From, var_To)
1848{
1849 find interpretation(problem,interpretation);
1850 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1851 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1852 // From is exported
1853 // To is exported
1854 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_From);
1855 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0);
1856 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1857 find mustEquivalent(problem, interpretation, var_virtual0, var_FromSys);
1858 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1859 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual1);
1860 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1861 find mustEquivalent(problem, interpretation, var_virtual1, var_ToSys);
1862 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_FromSys,var_ToSys);
1863}
1864// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries matchingCommSubsystem
1865private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(
1866 problem:LogicProblem, interpretation:PartialInterpretation,
1867 var_From, var_To)
1868{
1869 find interpretation(problem,interpretation);
1870 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1871 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1872 // From is exported
1873 // To is exported
1874 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_From);
1875 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_To);
1876}or{
1877 find interpretation(problem,interpretation);
1878 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1879 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1880 // From is exported
1881 // To is exported
1882 find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_From);
1883 find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_To);
1884}or{
1885 find interpretation(problem,interpretation);
1886 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1887 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1888 // From is exported
1889 // To is exported
1890 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_From);
1891 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_To);
1892}
1893private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(
1894 problem:LogicProblem, interpretation:PartialInterpretation,
1895 var_From, var_To)
1896{
1897 find interpretation(problem,interpretation);
1898 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1899 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1900 // From is exported
1901 // To is exported
1902 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_From);
1903 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_To);
1904}or{
1905 find interpretation(problem,interpretation);
1906 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1907 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1908 // From is exported
1909 // To is exported
1910 find mayInstanceOfXCommSubsystem_class(problem,interpretation,var_From);
1911 find mayInstanceOfXCommSubsystem_class(problem,interpretation,var_To);
1912}or{
1913 find interpretation(problem,interpretation);
1914 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1915 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1916 // From is exported
1917 // To is exported
1918 find mayInstanceOfKaCommSubsystem_class(problem,interpretation,var_From);
1919 find mayInstanceOfKaCommSubsystem_class(problem,interpretation,var_To);
1920}
1921private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(
1922 problem:LogicProblem, interpretation:PartialInterpretation,
1923 var_From, var_To)
1924{
1925 find interpretation(problem,interpretation);
1926 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1927 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1928 // From is exported
1929 // To is exported
1930 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_From);
1931 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_To);
1932}or{
1933 find interpretation(problem,interpretation);
1934 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1935 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1936 // From is exported
1937 // To is exported
1938 find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_From);
1939 find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_To);
1940}or{
1941 find interpretation(problem,interpretation);
1942 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1943 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1944 // From is exported
1945 // To is exported
1946 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_From);
1947 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_To);
1948}
1949// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries cubeSat3U
1950private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(
1951 problem:LogicProblem, interpretation:PartialInterpretation,
1952 var_Sat)
1953{
1954 find interpretation(problem,interpretation);
1955 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1956 // Sat is exported
1957 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1958}
1959private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(
1960 problem:LogicProblem, interpretation:PartialInterpretation,
1961 var_Sat)
1962{
1963 find interpretation(problem,interpretation);
1964 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1965 // Sat is exported
1966 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1967}
1968private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(
1969 problem:LogicProblem, interpretation:PartialInterpretation,
1970 var_Sat)
1971{
1972 find interpretation(problem,interpretation);
1973 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1974 // Sat is exported
1975 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1976}
1977// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries cubeSat6U
1978private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat6U(
1979 problem:LogicProblem, interpretation:PartialInterpretation,
1980 var_Sat)
1981{
1982 find interpretation(problem,interpretation);
1983 find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
1984 // Sat is exported
1985 find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
1986}
1987private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat6U(
1988 problem:LogicProblem, interpretation:PartialInterpretation,
1989 var_Sat)
1990{
1991 find interpretation(problem,interpretation);
1992 find mayInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
1993 // Sat is exported
1994 find mayInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
1995}
1996private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat6U(
1997 problem:LogicProblem, interpretation:PartialInterpretation,
1998 var_Sat)
1999{
2000 find interpretation(problem,interpretation);
2001 find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
2002 // Sat is exported
2003 find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
2004}
2005// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries communicationLoop
2006private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(
2007 problem:LogicProblem, interpretation:PartialInterpretation,
2008 var_Element)
2009{
2010 find interpretation(problem,interpretation);
2011 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
2012 // Element is exported
2013 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element);
2014}
2015private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(
2016 problem:LogicProblem, interpretation:PartialInterpretation,
2017 var_Element)
2018{
2019 find interpretation(problem,interpretation);
2020 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
2021 // Element is exported
2022 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element);
2023}
2024private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(
2025 problem:LogicProblem, interpretation:PartialInterpretation,
2026 var_Element)
2027{
2028 find interpretation(problem,interpretation);
2029 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
2030 // Element is exported
2031 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element);
2032}
2033// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries indirectCommunicationLink
2034private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(
2035 problem:LogicProblem, interpretation:PartialInterpretation,
2036 var_Source, var_Target)
2037{
2038 find interpretation(problem,interpretation);
2039 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2040 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2041 // Source is exported
2042 // Target is exported
2043 find twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target);
2044}
2045private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(
2046 problem:LogicProblem, interpretation:PartialInterpretation,
2047 var_Source, var_Target)
2048{
2049 find interpretation(problem,interpretation);
2050 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2051 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2052 // Source is exported
2053 // Target is exported
2054 find twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target);
2055}
2056private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(
2057 problem:LogicProblem, interpretation:PartialInterpretation,
2058 var_Source, var_Target)
2059{
2060 find interpretation(problem,interpretation);
2061 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2062 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2063 // Source is exported
2064 // Target is exported
2065 find twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target);
2066}
2067// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries directCommunicationLink
2068private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(
2069 problem:LogicProblem, interpretation:PartialInterpretation,
2070 var_Source, var_Target)
2071{
2072 find interpretation(problem,interpretation);
2073 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2074 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2075 // Source is exported
2076 // Target is exported
2077 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2078 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2079 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2080 find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2081 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2082 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual1);
2083 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2084 find mustEquivalent(problem, interpretation, var_virtual1, var_SourceSubsystem);
2085 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2086 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2087 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2088 find mustEquivalent(problem, interpretation, var_virtual2, var_TargetSubsystem);
2089}
2090private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(
2091 problem:LogicProblem, interpretation:PartialInterpretation,
2092 var_Source, var_Target)
2093{
2094 find interpretation(problem,interpretation);
2095 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2096 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2097 // Source is exported
2098 // Target is exported
2099 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2100 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2101 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2102 find mayEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2103 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2104 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual1);
2105 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2106 find mayEquivalent(problem, interpretation, var_virtual1, var_SourceSubsystem);
2107 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2108 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2109 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2110 find mayEquivalent(problem, interpretation, var_virtual2, var_TargetSubsystem);
2111}
2112private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(
2113 problem:LogicProblem, interpretation:PartialInterpretation,
2114 var_Source, var_Target)
2115{
2116 find interpretation(problem,interpretation);
2117 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2118 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2119 // Source is exported
2120 // Target is exported
2121 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2122 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2123 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2124 find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2125 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2126 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual1);
2127 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2128 find mustEquivalent(problem, interpretation, var_virtual1, var_SourceSubsystem);
2129 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2130 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2131 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2132 find mustEquivalent(problem, interpretation, var_virtual2, var_TargetSubsystem);
2133}
2134private pattern twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) {
2135 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target);
2136}
2137private pattern twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) {
2138 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target);
2139}
2140private pattern twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) {
2141 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target);
2142}
2143// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetBand
2144private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(
2145 problem:LogicProblem, interpretation:PartialInterpretation,
2146 var_SourceSubsystem)
2147{
2148 find interpretation(problem,interpretation);
2149 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2150 // SourceSubsystem is exported
2151 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2152 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2153 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2154 find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2155 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_SourceSubsystem,var_TargetSubsystem);
2156}
2157private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(
2158 problem:LogicProblem, interpretation:PartialInterpretation,
2159 var_SourceSubsystem)
2160{
2161 find interpretation(problem,interpretation);
2162 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2163 // SourceSubsystem is exported
2164 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2165 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2166 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2167 find mayEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2168 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_SourceSubsystem,var_TargetSubsystem);
2169}
2170private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(
2171 problem:LogicProblem, interpretation:PartialInterpretation,
2172 var_SourceSubsystem)
2173{
2174 find interpretation(problem,interpretation);
2175 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2176 // SourceSubsystem is exported
2177 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2178 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2179 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2180 find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2181 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_SourceSubsystem,var_TargetSubsystem);
2182}
2183// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries threeUCubeSatWithNonUhfCrossLink
2184private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(
2185 problem:LogicProblem, interpretation:PartialInterpretation,
2186 var_Sat)
2187{
2188 find interpretation(problem,interpretation);
2189 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
2190 // Sat is exported
2191 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat);
2192 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0);
2193 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2194 find mustEquivalent(problem, interpretation, var_virtual0, var_SourceComm);
2195 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm);
2196 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceComm);
2197 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceComm,var_virtual1);
2198 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2199 find mustEquivalent(problem, interpretation, var_virtual1, var_TargetComm);
2200 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2201 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2202 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2203 find mustEquivalent(problem, interpretation, var_virtual2, var_TargetComm);
2204 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target);
2205}
2206private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(
2207 problem:LogicProblem, interpretation:PartialInterpretation,
2208 var_Sat)
2209{
2210 find interpretation(problem,interpretation);
2211 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
2212 // Sat is exported
2213 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat);
2214 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0);
2215 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2216 find mayEquivalent(problem, interpretation, var_virtual0, var_SourceComm);
2217 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm);
2218 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceComm);
2219 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceComm,var_virtual1);
2220 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2221 find mayEquivalent(problem, interpretation, var_virtual1, var_TargetComm);
2222 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2223 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2224 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2225 find mayEquivalent(problem, interpretation, var_virtual2, var_TargetComm);
2226 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target);
2227}
2228private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(
2229 problem:LogicProblem, interpretation:PartialInterpretation,
2230 var_Sat)
2231{
2232 find interpretation(problem,interpretation);
2233 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
2234 // Sat is exported
2235 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat);
2236 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0);
2237 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2238 find mustEquivalent(problem, interpretation, var_virtual0, var_SourceComm);
2239 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm);
2240 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceComm);
2241 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceComm,var_virtual1);
2242 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2243 find mustEquivalent(problem, interpretation, var_virtual1, var_TargetComm);
2244 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2245 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2246 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2247 find mustEquivalent(problem, interpretation, var_virtual2, var_TargetComm);
2248 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target);
2249}
2250// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemBandUhf
2251private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(
2252 problem:LogicProblem, interpretation:PartialInterpretation,
2253 var_Comm)
2254{
2255 find interpretation(problem,interpretation);
2256 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2257 // Comm is exported
2258 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2259}
2260private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(
2261 problem:LogicProblem, interpretation:PartialInterpretation,
2262 var_Comm)
2263{
2264 find interpretation(problem,interpretation);
2265 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2266 // Comm is exported
2267 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2268}
2269private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(
2270 problem:LogicProblem, interpretation:PartialInterpretation,
2271 var_Comm)
2272{
2273 find interpretation(problem,interpretation);
2274 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2275 // Comm is exported
2276 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2277}
2278// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries groundStationNetwork
2279private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(
2280 problem:LogicProblem, interpretation:PartialInterpretation,
2281 var_Network)
2282{
2283 find interpretation(problem,interpretation);
2284 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2285 // Network is exported
2286 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2287}
2288private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(
2289 problem:LogicProblem, interpretation:PartialInterpretation,
2290 var_Network)
2291{
2292 find interpretation(problem,interpretation);
2293 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2294 // Network is exported
2295 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2296}
2297private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(
2298 problem:LogicProblem, interpretation:PartialInterpretation,
2299 var_Network)
2300{
2301 find interpretation(problem,interpretation);
2302 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2303 // Network is exported
2304 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2305}
2306// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries cubeSatWithKaAntenna
2307private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(
2308 problem:LogicProblem, interpretation:PartialInterpretation,
2309 var_Spacecraft)
2310{
2311 find interpretation(problem,interpretation);
2312 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2313 // Spacecraft is exported
2314 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft);
2315 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual0);
2316 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2317 find mustEquivalent(problem, interpretation, var_virtual0, var_Comm);
2318 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_Comm);
2319 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft);
2320}
2321private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(
2322 problem:LogicProblem, interpretation:PartialInterpretation,
2323 var_Spacecraft)
2324{
2325 find interpretation(problem,interpretation);
2326 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2327 // Spacecraft is exported
2328 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft);
2329 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual0);
2330 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2331 find mayEquivalent(problem, interpretation, var_virtual0, var_Comm);
2332 find mayInstanceOfKaCommSubsystem_class(problem,interpretation,var_Comm);
2333 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft);
2334}
2335private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(
2336 problem:LogicProblem, interpretation:PartialInterpretation,
2337 var_Spacecraft)
2338{
2339 find interpretation(problem,interpretation);
2340 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2341 // Spacecraft is exported
2342 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft);
2343 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual0);
2344 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2345 find mustEquivalent(problem, interpretation, var_virtual0, var_Comm);
2346 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_Comm);
2347 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft);
2348}
2349// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries smallSat
2350private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(
2351 problem:LogicProblem, interpretation:PartialInterpretation,
2352 var_Sat)
2353{
2354 find interpretation(problem,interpretation);
2355 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2356 // Sat is exported
2357 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2358}
2359private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(
2360 problem:LogicProblem, interpretation:PartialInterpretation,
2361 var_Sat)
2362{
2363 find interpretation(problem,interpretation);
2364 find mayInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2365 // Sat is exported
2366 find mayInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2367}
2368private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(
2369 problem:LogicProblem, interpretation:PartialInterpretation,
2370 var_Sat)
2371{
2372 find interpretation(problem,interpretation);
2373 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2374 // Sat is exported
2375 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2376}
2377
2378//////////
2379// 1.4 Containment Indexer
2380//////////
2381private pattern mustContains2(source: DefinedElement, target: DefinedElement) {
2382 find mustContains4(_,_,source,target);
2383}
2384
2385private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation,
2386 source: DefinedElement, target: DefinedElement)
2387 { find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,target); }or
2388
2389 { find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,target); }or
2390
2391 { find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,target); }or
2392
2393 { find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,target); }
2394
2395private pattern mustTransitiveContains(source,target) {
2396 find mustContains2+(source,target);
2397}
2398
2399//////////
2400// 2. Invalidation Indexers
2401//////////
2402// 2.1 Invalidated by WF Queries
2403//////////
2404pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem:LogicProblem, interpretation:PartialInterpretation,
2405 var_Element)
2406{
2407 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem,interpretation,var_Element);
2408}
2409pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem:LogicProblem, interpretation:PartialInterpretation,
2410 var_Mission)
2411{
2412 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem,interpretation,var_Mission);
2413}
2414pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2415 var_Spacecraft)
2416{
2417 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem,interpretation,var_Spacecraft);
2418}
2419pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2420 var_Spacecraft)
2421{
2422 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem,interpretation,var_Spacecraft);
2423}
2424pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem:LogicProblem, interpretation:PartialInterpretation,
2425 var_Element)
2426{
2427 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem,interpretation,var_Element);
2428}
2429pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem:LogicProblem, interpretation:PartialInterpretation,
2430 var_SourceSubsystem)
2431{
2432 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem,interpretation,var_SourceSubsystem);
2433}
2434pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem:LogicProblem, interpretation:PartialInterpretation,
2435 var_Sat)
2436{
2437 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem,interpretation,var_Sat);
2438}
2439pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem:LogicProblem, interpretation:PartialInterpretation,
2440 var_Spacecraft)
2441{
2442 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem,interpretation,var_Spacecraft);
2443}
2444
2445//////////
2446// 3. Unfinishedness Indexers
2447//////////
2448// 3.1 Unfinishedness Measured by Multiplicity
2449//////////
2450pattern unfinishedLowerMultiplicity_groundStationNetwork_reference_ConstellationMission(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
2451 find interpretation(problem,interpretation);
2452 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2453 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"groundStationNetwork reference ConstellationMission");
2454 find mustInstanceOfConstellationMission_class(problem,interpretation,object);
2455 numberOfExistingReferences == count find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,object,_);
2456 check(numberOfExistingReferences < 1);
2457 missingMultiplicity == eval(1-numberOfExistingReferences);
2458}
2459pattern unfinishedLowerMultiplicity_spacecraft_reference_ConstellationMission(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
2460 find interpretation(problem,interpretation);
2461 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2462 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"spacecraft reference ConstellationMission");
2463 find mustInstanceOfConstellationMission_class(problem,interpretation,object);
2464 numberOfExistingReferences == count find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,object,_);
2465 check(numberOfExistingReferences < 2);
2466 missingMultiplicity == eval(2-numberOfExistingReferences);
2467}
2468pattern unfinishedLowerMultiplicity_commSubsystem_reference_CommunicatingElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
2469 find interpretation(problem,interpretation);
2470 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2471 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"commSubsystem reference CommunicatingElement");
2472 find mustInstanceOfCommunicatingElement_class(problem,interpretation,object);
2473 numberOfExistingReferences == count find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,object,_);
2474 check(numberOfExistingReferences < 1);
2475 missingMultiplicity == eval(1-numberOfExistingReferences);
2476}
2477
2478//////////
2479// 3.2 Unfinishedness Measured by WF Queries
2480//////////
2481pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem:LogicProblem, interpretation:PartialInterpretation,
2482 var_Element)
2483{
2484 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem,interpretation,var_Element);
2485}
2486pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem:LogicProblem, interpretation:PartialInterpretation,
2487 var_Mission)
2488{
2489 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem,interpretation,var_Mission);
2490}
2491pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2492 var_Spacecraft)
2493{
2494 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem,interpretation,var_Spacecraft);
2495}
2496pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2497 var_Spacecraft)
2498{
2499 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem,interpretation,var_Spacecraft);
2500}
2501pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem:LogicProblem, interpretation:PartialInterpretation,
2502 var_Element)
2503{
2504 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem,interpretation,var_Element);
2505}
2506pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem:LogicProblem, interpretation:PartialInterpretation,
2507 var_SourceSubsystem)
2508{
2509 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem,interpretation,var_SourceSubsystem);
2510}
2511pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem:LogicProblem, interpretation:PartialInterpretation,
2512 var_Sat)
2513{
2514 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem,interpretation,var_Sat);
2515}
2516pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem:LogicProblem, interpretation:PartialInterpretation,
2517 var_Spacecraft)
2518{
2519 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem,interpretation,var_Spacecraft);
2520}
2521
2522//////////
2523// 4. Refinement Indexers
2524//////////
2525// 4.1 Object constructors
2526//////////
2527private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
2528{
2529 find interpretation(problem,interpretation);
2530 find mustInstanceOfCommunicatingElement_class(problem,interpretation,root);
2531 find mustExist(problem, interpretation, root);
2532}or{
2533 find interpretation(problem,interpretation);
2534 find mustInstanceOfConstellationMission_class(problem,interpretation,root);
2535 find mustExist(problem, interpretation, root);
2536}or{
2537 find interpretation(problem,interpretation);
2538 find mustInstanceOfInterferometryPayload_class(problem,interpretation,root);
2539 find mustExist(problem, interpretation, root);
2540}or{
2541 find interpretation(problem,interpretation);
2542 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,root);
2543 find mustExist(problem, interpretation, root);
2544}or{
2545 find interpretation(problem,interpretation);
2546 find mustInstanceOfCommSubsystem_class(problem,interpretation,root);
2547 find mustExist(problem, interpretation, root);
2548}or{
2549 find interpretation(problem,interpretation);
2550 find mustInstanceOfPayload_class(problem,interpretation,root);
2551 find mustExist(problem, interpretation, root);
2552}or{
2553 find interpretation(problem,interpretation);
2554 find mustInstanceOfCubeSat6U_class(problem,interpretation,root);
2555 find mustExist(problem, interpretation, root);
2556}or{
2557 find interpretation(problem,interpretation);
2558 find mustInstanceOfXCommSubsystem_class(problem,interpretation,root);
2559 find mustExist(problem, interpretation, root);
2560}or{
2561 find interpretation(problem,interpretation);
2562 find mustInstanceOfCubeSat3U_class(problem,interpretation,root);
2563 find mustExist(problem, interpretation, root);
2564}or{
2565 find interpretation(problem,interpretation);
2566 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,root);
2567 find mustExist(problem, interpretation, root);
2568}or{
2569 find interpretation(problem,interpretation);
2570 find mustInstanceOfSpacecraft_class(problem,interpretation,root);
2571 find mustExist(problem, interpretation, root);
2572}or{
2573 find interpretation(problem,interpretation);
2574 find mustInstanceOfInterferometryMission_class(problem,interpretation,root);
2575 find mustExist(problem, interpretation, root);
2576}or{
2577 find interpretation(problem,interpretation);
2578 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,root);
2579 find mustExist(problem, interpretation, root);
2580}or{
2581 find interpretation(problem,interpretation);
2582 find mustInstanceOfSmallSat_class(problem,interpretation,root);
2583 find mustExist(problem, interpretation, root);
2584}or{
2585 find interpretation(problem,interpretation);
2586 find mustInstanceOfCubeSat_class(problem,interpretation,root);
2587 find mustExist(problem, interpretation, root);
2588}or{
2589 find interpretation(problem,interpretation);
2590 find mustInstanceOfConstellationMission_class_DefinedPart(problem,interpretation,root);
2591 find mustExist(problem, interpretation, root);
2592}or{
2593 find interpretation(problem,interpretation);
2594 find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,root);
2595 find mustExist(problem, interpretation, root);
2596}or{
2597 find interpretation(problem,interpretation);
2598 find mustInstanceOfInterferometryMission_class_DefinedPart(problem,interpretation,root);
2599 find mustExist(problem, interpretation, root);
2600}or{
2601 find interpretation(problem,interpretation);
2602 find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,root);
2603 find mustExist(problem, interpretation, root);
2604}or{
2605 find interpretation(problem,interpretation);
2606 find mustInstanceOfCommunicatingElement_class_DefinedPart(problem,interpretation,root);
2607 find mustExist(problem, interpretation, root);
2608}or{
2609 find interpretation(problem,interpretation);
2610 find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,root);
2611 find mustExist(problem, interpretation, root);
2612}or{
2613 find interpretation(problem,interpretation);
2614 find mustInstanceOfGroundStationNetwork_class_DefinedPart(problem,interpretation,root);
2615 find mustExist(problem, interpretation, root);
2616}or{
2617 find interpretation(problem,interpretation);
2618 find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,root);
2619 find mustExist(problem, interpretation, root);
2620}or{
2621 find interpretation(problem,interpretation);
2622 find mustInstanceOfCommSubsystem_class_DefinedPart(problem,interpretation,root);
2623 find mustExist(problem, interpretation, root);
2624}or{
2625 find interpretation(problem,interpretation);
2626 find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,root);
2627 find mustExist(problem, interpretation, root);
2628}or{
2629 find interpretation(problem,interpretation);
2630 find mustInstanceOfXCommSubsystem_class_DefinedPart(problem,interpretation,root);
2631 find mustExist(problem, interpretation, root);
2632}or{
2633 find interpretation(problem,interpretation);
2634 find mustInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,root);
2635 find mustExist(problem, interpretation, root);
2636}or{
2637 find interpretation(problem,interpretation);
2638 find mustInstanceOfKaCommSubsystem_class_DefinedPart(problem,interpretation,root);
2639 find mustExist(problem, interpretation, root);
2640}or{
2641 find interpretation(problem,interpretation);
2642 find mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,root);
2643 find mustExist(problem, interpretation, root);
2644}
2645pattern createObject_InterferometryPayload_class_by_payload_reference_Spacecraft(
2646 problem:LogicProblem, interpretation:PartialInterpretation,
2647 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2648 container:DefinedElement)
2649{
2650 find interpretation(problem,interpretation);
2651 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2652 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryPayload class");
2653 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2654 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"payload reference Spacecraft");
2655 find mustInstanceOfSpacecraft_class(problem,interpretation,container);
2656 find mayInstanceOfInterferometryPayload_class(problem,interpretation,newObject);
2657 find mayInRelationpayload_reference_Spacecraft(problem,interpretation,container,newObject);
2658 find mustExist(problem, interpretation, container);
2659 neg find mustExist(problem, interpretation, newObject);
2660}
2661pattern createObject_InterferometryPayload_class(
2662 problem:LogicProblem, interpretation:PartialInterpretation,
2663 typeInterpretation:PartialComplexTypeInterpretation)
2664{
2665 find interpretation(problem,interpretation);
2666 neg find hasElementInContainment(problem,interpretation);
2667 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2668 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryPayload class");
2669 find mayInstanceOfInterferometryPayload_class(problem,interpretation,newObject);
2670 find mayExist(problem, interpretation, newObject);
2671 neg find mustExist(problem, interpretation, newObject);
2672}
2673pattern createObject_CubeSat6U_class_by_spacecraft_reference_ConstellationMission(
2674 problem:LogicProblem, interpretation:PartialInterpretation,
2675 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2676 container:DefinedElement)
2677{
2678 find interpretation(problem,interpretation);
2679 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2680 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat6U class");
2681 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2682 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission");
2683 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2684 find mayInstanceOfCubeSat6U_class(problem,interpretation,newObject);
2685 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject);
2686 find mustExist(problem, interpretation, container);
2687 neg find mustExist(problem, interpretation, newObject);
2688}
2689pattern createObject_CubeSat6U_class(
2690 problem:LogicProblem, interpretation:PartialInterpretation,
2691 typeInterpretation:PartialComplexTypeInterpretation)
2692{
2693 find interpretation(problem,interpretation);
2694 neg find hasElementInContainment(problem,interpretation);
2695 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2696 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat6U class");
2697 find mayInstanceOfCubeSat6U_class(problem,interpretation,newObject);
2698 find mayExist(problem, interpretation, newObject);
2699 neg find mustExist(problem, interpretation, newObject);
2700}
2701pattern createObject_GroundStationNetwork_class_UndefinedPart_by_groundStationNetwork_reference_ConstellationMission(
2702 problem:LogicProblem, interpretation:PartialInterpretation,
2703 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2704 container:DefinedElement)
2705{
2706 find interpretation(problem,interpretation);
2707 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2708 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"GroundStationNetwork class UndefinedPart");
2709 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2710 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"groundStationNetwork reference ConstellationMission");
2711 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2712 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,newObject);
2713 find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,container,newObject);
2714 find mustExist(problem, interpretation, container);
2715 neg find mustExist(problem, interpretation, newObject);
2716}
2717pattern createObject_GroundStationNetwork_class_UndefinedPart(
2718 problem:LogicProblem, interpretation:PartialInterpretation,
2719 typeInterpretation:PartialComplexTypeInterpretation)
2720{
2721 find interpretation(problem,interpretation);
2722 neg find hasElementInContainment(problem,interpretation);
2723 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2724 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"GroundStationNetwork class UndefinedPart");
2725 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,newObject);
2726 find mayExist(problem, interpretation, newObject);
2727 neg find mustExist(problem, interpretation, newObject);
2728}
2729pattern createObject_UHFCommSubsystem_class_by_commSubsystem_reference_CommunicatingElement(
2730 problem:LogicProblem, interpretation:PartialInterpretation,
2731 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2732 container:DefinedElement)
2733{
2734 find interpretation(problem,interpretation);
2735 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2736 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"UHFCommSubsystem class");
2737 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2738 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"commSubsystem reference CommunicatingElement");
2739 find mustInstanceOfCommunicatingElement_class(problem,interpretation,container);
2740 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,newObject);
2741 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,container,newObject);
2742 find mustExist(problem, interpretation, container);
2743 neg find mustExist(problem, interpretation, newObject);
2744}
2745pattern createObject_UHFCommSubsystem_class(
2746 problem:LogicProblem, interpretation:PartialInterpretation,
2747 typeInterpretation:PartialComplexTypeInterpretation)
2748{
2749 find interpretation(problem,interpretation);
2750 neg find hasElementInContainment(problem,interpretation);
2751 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2752 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"UHFCommSubsystem class");
2753 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,newObject);
2754 find mayExist(problem, interpretation, newObject);
2755 neg find mustExist(problem, interpretation, newObject);
2756}
2757pattern createObject_SmallSat_class_by_spacecraft_reference_ConstellationMission(
2758 problem:LogicProblem, interpretation:PartialInterpretation,
2759 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2760 container:DefinedElement)
2761{
2762 find interpretation(problem,interpretation);
2763 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2764 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"SmallSat class");
2765 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2766 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission");
2767 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2768 find mayInstanceOfSmallSat_class(problem,interpretation,newObject);
2769 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject);
2770 find mustExist(problem, interpretation, container);
2771 neg find mustExist(problem, interpretation, newObject);
2772}
2773pattern createObject_SmallSat_class(
2774 problem:LogicProblem, interpretation:PartialInterpretation,
2775 typeInterpretation:PartialComplexTypeInterpretation)
2776{
2777 find interpretation(problem,interpretation);
2778 neg find hasElementInContainment(problem,interpretation);
2779 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2780 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"SmallSat class");
2781 find mayInstanceOfSmallSat_class(problem,interpretation,newObject);
2782 find mayExist(problem, interpretation, newObject);
2783 neg find mustExist(problem, interpretation, newObject);
2784}
2785pattern createObject_KaCommSubsystem_class_UndefinedPart_by_commSubsystem_reference_CommunicatingElement(
2786 problem:LogicProblem, interpretation:PartialInterpretation,
2787 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2788 container:DefinedElement)
2789{
2790 find interpretation(problem,interpretation);
2791 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2792 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"KaCommSubsystem class UndefinedPart");
2793 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2794 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"commSubsystem reference CommunicatingElement");
2795 find mustInstanceOfCommunicatingElement_class(problem,interpretation,container);
2796 find mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2797 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,container,newObject);
2798 find mustExist(problem, interpretation, container);
2799 neg find mustExist(problem, interpretation, newObject);
2800}
2801pattern createObject_KaCommSubsystem_class_UndefinedPart(
2802 problem:LogicProblem, interpretation:PartialInterpretation,
2803 typeInterpretation:PartialComplexTypeInterpretation)
2804{
2805 find interpretation(problem,interpretation);
2806 neg find hasElementInContainment(problem,interpretation);
2807 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2808 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"KaCommSubsystem class UndefinedPart");
2809 find mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2810 find mayExist(problem, interpretation, newObject);
2811 neg find mustExist(problem, interpretation, newObject);
2812}
2813pattern createObject_CubeSat3U_class_by_spacecraft_reference_ConstellationMission(
2814 problem:LogicProblem, interpretation:PartialInterpretation,
2815 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2816 container:DefinedElement)
2817{
2818 find interpretation(problem,interpretation);
2819 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2820 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat3U class");
2821 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2822 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission");
2823 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2824 find mayInstanceOfCubeSat3U_class(problem,interpretation,newObject);
2825 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject);
2826 find mustExist(problem, interpretation, container);
2827 neg find mustExist(problem, interpretation, newObject);
2828}
2829pattern createObject_CubeSat3U_class(
2830 problem:LogicProblem, interpretation:PartialInterpretation,
2831 typeInterpretation:PartialComplexTypeInterpretation)
2832{
2833 find interpretation(problem,interpretation);
2834 neg find hasElementInContainment(problem,interpretation);
2835 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2836 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat3U class");
2837 find mayInstanceOfCubeSat3U_class(problem,interpretation,newObject);
2838 find mayExist(problem, interpretation, newObject);
2839 neg find mustExist(problem, interpretation, newObject);
2840}
2841pattern createObject_XCommSubsystem_class_UndefinedPart_by_commSubsystem_reference_CommunicatingElement(
2842 problem:LogicProblem, interpretation:PartialInterpretation,
2843 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2844 container:DefinedElement)
2845{
2846 find interpretation(problem,interpretation);
2847 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2848 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"XCommSubsystem class UndefinedPart");
2849 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2850 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"commSubsystem reference CommunicatingElement");
2851 find mustInstanceOfCommunicatingElement_class(problem,interpretation,container);
2852 find mayInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2853 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,container,newObject);
2854 find mustExist(problem, interpretation, container);
2855 neg find mustExist(problem, interpretation, newObject);
2856}
2857pattern createObject_XCommSubsystem_class_UndefinedPart(
2858 problem:LogicProblem, interpretation:PartialInterpretation,
2859 typeInterpretation:PartialComplexTypeInterpretation)
2860{
2861 find interpretation(problem,interpretation);
2862 neg find hasElementInContainment(problem,interpretation);
2863 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2864 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"XCommSubsystem class UndefinedPart");
2865 find mayInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2866 find mayExist(problem, interpretation, newObject);
2867 neg find mustExist(problem, interpretation, newObject);
2868}
2869pattern createObject_InterferometryMission_class_UndefinedPart(
2870 problem:LogicProblem, interpretation:PartialInterpretation,
2871 typeInterpretation:PartialComplexTypeInterpretation)
2872{
2873 find interpretation(problem,interpretation);
2874 neg find hasElementInContainment(problem,interpretation);
2875 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2876 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryMission class UndefinedPart");
2877 find mayInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,newObject);
2878 find mayExist(problem, interpretation, newObject);
2879 neg find mustExist(problem, interpretation, newObject);
2880}
2881
2882//////////
2883// 4.2 Type refinement
2884//////////
2885pattern refineTypeTo_InterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2886 find interpretation(problem,interpretation);
2887 PartialInterpretation.newElements(interpretation,element);
2888 find mayInstanceOfInterferometryPayload_class(problem,interpretation,element);
2889 neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element);
2890 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2891 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2892 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2893}
2894pattern refineTypeTo_CubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2895 find interpretation(problem,interpretation);
2896 PartialInterpretation.newElements(interpretation,element);
2897 find mayInstanceOfCubeSat6U_class(problem,interpretation,element);
2898 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2899 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
2900 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
2901 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
2902 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2903 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
2904 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2905}
2906pattern refineTypeTo_GroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2907 find interpretation(problem,interpretation);
2908 PartialInterpretation.newElements(interpretation,element);
2909 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element);
2910 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2911 neg find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element);
2912 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2913 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
2914 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2915}
2916pattern refineTypeTo_UHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2917 find interpretation(problem,interpretation);
2918 PartialInterpretation.newElements(interpretation,element);
2919 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
2920 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2921 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2922 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
2923 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
2924 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2925 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
2926}
2927pattern refineTypeTo_SmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2928 find interpretation(problem,interpretation);
2929 PartialInterpretation.newElements(interpretation,element);
2930 find mayInstanceOfSmallSat_class(problem,interpretation,element);
2931 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2932 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
2933 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
2934 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2935 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
2936 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2937}
2938pattern refineTypeTo_KaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2939 find interpretation(problem,interpretation);
2940 PartialInterpretation.newElements(interpretation,element);
2941 find mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2942 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2943 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2944 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
2945 neg find mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2946 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2947 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
2948}
2949pattern refineTypeTo_CubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2950 find interpretation(problem,interpretation);
2951 PartialInterpretation.newElements(interpretation,element);
2952 find mayInstanceOfCubeSat3U_class(problem,interpretation,element);
2953 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2954 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
2955 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
2956 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
2957 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2958 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
2959 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2960}
2961pattern refineTypeTo_XCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2962 find interpretation(problem,interpretation);
2963 PartialInterpretation.newElements(interpretation,element);
2964 find mayInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2965 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2966 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2967 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
2968 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
2969 neg find mustInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2970 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2971}
2972pattern refineTypeTo_InterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2973 find interpretation(problem,interpretation);
2974 PartialInterpretation.newElements(interpretation,element);
2975 find mayInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element);
2976 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2977 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2978 neg find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element);
2979 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2980}
2981
2982//////////
2983// 4.3 Relation refinement
2984//////////
2985pattern refineRelation_target_reference_CommSubsystem(
2986 problem:LogicProblem, interpretation:PartialInterpretation,
2987 relationIterpretation:PartialRelationInterpretation,
2988 from: DefinedElement, to: DefinedElement)
2989{
2990 find interpretation(problem,interpretation);
2991 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2992 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"target reference CommSubsystem");
2993 find mustExist(problem, interpretation, from);
2994 find mustExist(problem, interpretation, to);
2995 find mustInstanceOfCommSubsystem_class(problem,interpretation,from);
2996 find mustInstanceOfCommSubsystem_class(problem,interpretation,to);
2997 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,from,to);
2998 neg find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,from,to);
2999}
3000
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run2/init.partialmodel b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run2/init.partialmodel
deleted file mode 100644
index 01b90968..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run2/init.partialmodel
+++ /dev/null
@@ -1,147 +0,0 @@
1<?xml version="1.0" encoding="ASCII"?>
2<partialinterpretation:PartialInterpretation xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" xmlns:partialinterpretation="http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" minNewElements="32" maxNewElements="64">
3 <problem href="dummy.dummyext#//@problemConainer"/>
4 <partialrelationinterpretation>
5 <interpretationOf href="dummy.dummyext#//@problemConainer/@relations.0"/>
6 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
7 <param1 href="dummy.dummyext#//@problemConainer/@elements.0"/>
8 <param2 href="dummy.dummyext#//@problemConainer/@elements.1"/>
9 </relationlinks>
10 <param1 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.0/@parameters.0"/>
11 <param2 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.0/@parameters.1"/>
12 </partialrelationinterpretation>
13 <partialrelationinterpretation>
14 <interpretationOf href="dummy.dummyext#//@problemConainer/@relations.1"/>
15 <param1 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.1/@parameters.0"/>
16 <param2 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.1/@parameters.1"/>
17 </partialrelationinterpretation>
18 <partialrelationinterpretation>
19 <interpretationOf href="dummy.dummyext#//@problemConainer/@relations.2"/>
20 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
21 <param1 href="dummy.dummyext#//@problemConainer/@elements.1"/>
22 <param2 href="dummy.dummyext#//@problemConainer/@elements.2"/>
23 </relationlinks>
24 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
25 <param1 href="dummy.dummyext#//@problemConainer/@elements.1"/>
26 <param2 href="dummy.dummyext#//@problemConainer/@elements.3"/>
27 </relationlinks>
28 <param1 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.2/@parameters.0"/>
29 <param2 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.2/@parameters.1"/>
30 </partialrelationinterpretation>
31 <partialrelationinterpretation>
32 <interpretationOf href="dummy.dummyext#//@problemConainer/@relations.3"/>
33 <param1 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.3/@parameters.0"/>
34 <param2 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.3/@parameters.1"/>
35 </partialrelationinterpretation>
36 <partialrelationinterpretation>
37 <interpretationOf href="dummy.dummyext#//@problemConainer/@relations.4"/>
38 <param1 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.4/@parameters.0"/>
39 <param2 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.4/@parameters.1"/>
40 </partialrelationinterpretation>
41 <newElements xsi:type="partialinterpretation:BooleanElement" name="true" valueSet="true" value="true"/>
42 <newElements xsi:type="partialinterpretation:BooleanElement" name="false" valueSet="true"/>
43 <partialtypeinterpratation xsi:type="partialinterpretation:PartialBooleanInterpretation" elements="//@newElements.0 //@newElements.1"/>
44 <partialtypeinterpratation xsi:type="partialinterpretation:PartialIntegerInterpretation" elements="//@openWorldElements.0"/>
45 <partialtypeinterpratation xsi:type="partialinterpretation:PartialRealInterpretation" elements="//@openWorldElements.1"/>
46 <partialtypeinterpratation xsi:type="partialinterpretation:PartialStringInterpretation" elements="//@openWorldElements.2"/>
47 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.0">
48 <elements href="dummy.dummyext#//@problemConainer/@elements.0"/>
49 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.0"/>
50 </partialtypeinterpratation>
51 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.1" supertypeInterpretation="//@partialtypeinterpratation.4">
52 <elements href="dummy.dummyext#//@problemConainer/@elements.0"/>
53 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.1"/>
54 </partialtypeinterpratation>
55 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.2">
56 <elements href="dummy.dummyext#//@problemConainer/@elements.1"/>
57 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.2"/>
58 </partialtypeinterpratation>
59 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.3" supertypeInterpretation="//@partialtypeinterpratation.6">
60 <elements href="dummy.dummyext#//@problemConainer/@elements.1"/>
61 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.3"/>
62 </partialtypeinterpratation>
63 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.4" supertypeInterpretation="//@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
64 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.4"/>
65 </partialtypeinterpratation>
66 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.5">
67 <elements href="dummy.dummyext#//@problemConainer/@elements.2"/>
68 <elements href="dummy.dummyext#//@problemConainer/@elements.3"/>
69 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.5"/>
70 </partialtypeinterpratation>
71 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.6">
72 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.6"/>
73 </partialtypeinterpratation>
74 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.7" supertypeInterpretation="//@partialtypeinterpratation.10">
75 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.7"/>
76 </partialtypeinterpratation>
77 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.8" supertypeInterpretation="//@partialtypeinterpratation.15 //@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
78 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.8"/>
79 </partialtypeinterpratation>
80 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.9" supertypeInterpretation="//@partialtypeinterpratation.15 //@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
81 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.9"/>
82 </partialtypeinterpratation>
83 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.10" supertypeInterpretation="//@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
84 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.10"/>
85 </partialtypeinterpratation>
86 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.11" supertypeInterpretation="//@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
87 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.11"/>
88 </partialtypeinterpratation>
89 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.12" supertypeInterpretation="//@partialtypeinterpratation.9 //@partialtypeinterpratation.23">
90 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.12"/>
91 </partialtypeinterpratation>
92 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.13" supertypeInterpretation="//@partialtypeinterpratation.9">
93 <elements href="dummy.dummyext#//@problemConainer/@elements.2"/>
94 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.13"/>
95 </partialtypeinterpratation>
96 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.14" supertypeInterpretation="//@partialtypeinterpratation.9">
97 <elements href="dummy.dummyext#//@problemConainer/@elements.3"/>
98 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.14"/>
99 </partialtypeinterpratation>
100 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.15" supertypeInterpretation="//@partialtypeinterpratation.4">
101 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.16"/>
102 </partialtypeinterpratation>
103 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.16" supertypeInterpretation="//@partialtypeinterpratation.5 //@partialtypeinterpratation.4 //@partialtypeinterpratation.19">
104 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.18"/>
105 </partialtypeinterpratation>
106 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.17" supertypeInterpretation="//@partialtypeinterpratation.6">
107 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.20"/>
108 </partialtypeinterpratation>
109 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.18" supertypeInterpretation="//@partialtypeinterpratation.7 //@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
110 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.22"/>
111 </partialtypeinterpratation>
112 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.19" supertypeInterpretation="//@partialtypeinterpratation.9">
113 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.24"/>
114 </partialtypeinterpratation>
115 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.20" supertypeInterpretation="//@partialtypeinterpratation.17 //@partialtypeinterpratation.9 //@partialtypeinterpratation.23">
116 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.26"/>
117 </partialtypeinterpratation>
118 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.21" supertypeInterpretation="//@partialtypeinterpratation.18 //@partialtypeinterpratation.9 //@partialtypeinterpratation.23">
119 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.28"/>
120 </partialtypeinterpratation>
121 <openWorldElements xsi:type="partialinterpretation:IntegerElement" name="New Integers"/>
122 <openWorldElements xsi:type="partialinterpretation:RealElement" name="New Reals"/>
123 <openWorldElements xsi:type="partialinterpretation:StringElement" name="New Strings"/>
124 <openWorldElements name="New Objects"/>
125 <scopes targetTypeInterpretation="//@partialtypeinterpratation.4"/>
126 <scopes targetTypeInterpretation="//@partialtypeinterpratation.5"/>
127 <scopes targetTypeInterpretation="//@partialtypeinterpratation.6"/>
128 <scopes targetTypeInterpretation="//@partialtypeinterpratation.7"/>
129 <scopes targetTypeInterpretation="//@partialtypeinterpratation.8"/>
130 <scopes targetTypeInterpretation="//@partialtypeinterpratation.9"/>
131 <scopes targetTypeInterpretation="//@partialtypeinterpratation.10"/>
132 <scopes targetTypeInterpretation="//@partialtypeinterpratation.11"/>
133 <scopes targetTypeInterpretation="//@partialtypeinterpratation.12"/>
134 <scopes targetTypeInterpretation="//@partialtypeinterpratation.13"/>
135 <scopes targetTypeInterpretation="//@partialtypeinterpratation.14"/>
136 <scopes targetTypeInterpretation="//@partialtypeinterpratation.15"/>
137 <scopes targetTypeInterpretation="//@partialtypeinterpratation.16"/>
138 <scopes targetTypeInterpretation="//@partialtypeinterpratation.17"/>
139 <scopes targetTypeInterpretation="//@partialtypeinterpratation.18"/>
140 <scopes targetTypeInterpretation="//@partialtypeinterpratation.19"/>
141 <scopes targetTypeInterpretation="//@partialtypeinterpratation.20"/>
142 <scopes targetTypeInterpretation="//@partialtypeinterpratation.21"/>
143 <scopes targetTypeInterpretation="//@partialtypeinterpratation.22"/>
144 <scopes targetTypeInterpretation="//@partialtypeinterpratation.23"/>
145 <scopes targetTypeInterpretation="//@partialtypeinterpratation.24"/>
146 <scopes targetTypeInterpretation="//@partialtypeinterpratation.25"/>
147</partialinterpretation:PartialInterpretation>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run3/generated3valued.vql_deactivated b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run3/generated3valued.vql_deactivated
deleted file mode 100644
index c96a951c..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run3/generated3valued.vql_deactivated
+++ /dev/null
@@ -1,3000 +0,0 @@
1import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage"
2import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem"
3import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language"
4
5//////////
6// 0. Util
7//////////
8private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) {
9 PartialInterpretation.problem(interpretation,problem);
10}
11
12/////////////////////////
13// 0.1 Existence
14/////////////////////////
15private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
16 find interpretation(problem,interpretation);
17 LogicProblem.elements(problem,element);
18} or {
19 find interpretation(problem,interpretation);
20 PartialInterpretation.newElements(interpretation,element);
21}
22
23private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
24 find mustExist(problem,interpretation,element);
25} or {
26 find interpretation(problem,interpretation);
27 neg find elementCloseWorld(element);
28 PartialInterpretation.openWorldElements(interpretation,element);
29}
30
31private pattern elementCloseWorld(element:DefinedElement) {
32 PartialInterpretation.openWorldElements(i,element);
33 PartialInterpretation.maxNewElements(i,0);
34} or {
35 Scope.targetTypeInterpretation(scope,interpretation);
36 PartialTypeInterpratation.elements(interpretation,element);
37 Scope.maxNewElements(scope,0);
38}
39
40////////////////////////
41// 0.2 Equivalence
42////////////////////////
43pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) {
44 find mayExist(problem,interpretation,a);
45 find mayExist(problem,interpretation,b);
46 a == b;
47}
48pattern mustEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) {
49 find mustExist(problem,interpretation,a);
50 find mustExist(problem,interpretation,b);
51 a == b;
52}
53
54////////////////////////
55// 0.3 Required Patterns by TypeIndexer
56////////////////////////
57private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) {
58 find interpretation(problem,interpretation);
59 LogicProblem.types(problem,type);
60 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
61 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
62}
63
64private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) {
65 find interpretation(problem,interpretation);
66 LogicProblem.types(problem,type);
67 TypeDefinition.elements(type,element);
68} or {
69 find interpretation(problem,interpretation);
70 find typeInterpretation(problem,interpretation,type,typeInterpretation);
71 PartialComplexTypeInterpretation.elements(typeInterpretation,element);
72}
73
74private pattern isPrimitive(element: PrimitiveElement) {
75 PrimitiveElement(element);
76}
77
78//////////
79// 1. Problem-Specific Base Indexers
80//////////
81// 1.1 Type Indexers
82//////////
83// 1.1.1 primitive Type Indexers
84//////////
85
86//////////
87// 1.1.2 domain-specific Type Indexers
88//////////
89/**
90 * An element must be an instance of type "ConstellationMission class".
91 */
92private pattern mustInstanceOfConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
93 Type.name(type,"ConstellationMission class");
94 find directInstanceOf(problem,interpretation,element,type);
95}
96private pattern scopeDisallowsNewConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation) {
97 find interpretation(problem,interpretation);
98 PartialInterpretation.scopes(interpretation,scope);
99 Scope.targetTypeInterpretation(scope,typeInterpretation);
100 Scope.maxNewElements(scope,0);
101 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
102 Type.name(type,"ConstellationMission class");
103}
104
105/**
106 * An element may be an instance of type "ConstellationMission class".
107 */
108private pattern mayInstanceOfConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
109{
110 find interpretation(problem,interpretation);
111 PartialInterpretation.newElements(interpretation,element);
112 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
113 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
114 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
115 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
116 neg find mustInstanceOfPayload_class(problem,interpretation,element);
117 neg find scopeDisallowsNewConstellationMission_class(problem, interpretation);
118 neg find isPrimitive(element);
119} or {
120 find interpretation(problem,interpretation);
121 PartialInterpretation.openWorldElements(interpretation,element);
122 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
123 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
124 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
125 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
126 neg find mustInstanceOfPayload_class(problem,interpretation,element);
127 neg find scopeDisallowsNewConstellationMission_class(problem, interpretation);
128 neg find isPrimitive(element);
129} or
130{ find mustInstanceOfConstellationMission_class(problem,interpretation,element); }
131/**
132 * An element must be an instance of type "InterferometryMission class".
133 */
134private pattern mustInstanceOfInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
135 Type.name(type,"InterferometryMission class");
136 find directInstanceOf(problem,interpretation,element,type);
137}
138private pattern scopeDisallowsNewInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation) {
139 find interpretation(problem,interpretation);
140 PartialInterpretation.scopes(interpretation,scope);
141 Scope.targetTypeInterpretation(scope,typeInterpretation);
142 Scope.maxNewElements(scope,0);
143 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
144 Type.name(type,"InterferometryMission class");
145}
146
147/**
148 * An element may be an instance of type "InterferometryMission class".
149 */
150private pattern mayInstanceOfInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
151{
152 find interpretation(problem,interpretation);
153 PartialInterpretation.newElements(interpretation,element);
154 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
155 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
156 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
157 neg find mustInstanceOfPayload_class(problem,interpretation,element);
158 neg find scopeDisallowsNewInterferometryMission_class(problem, interpretation);
159 neg find isPrimitive(element);
160} or {
161 find interpretation(problem,interpretation);
162 PartialInterpretation.openWorldElements(interpretation,element);
163 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
164 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
165 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
166 neg find mustInstanceOfPayload_class(problem,interpretation,element);
167 neg find scopeDisallowsNewInterferometryMission_class(problem, interpretation);
168 neg find isPrimitive(element);
169} or
170{ find mustInstanceOfInterferometryMission_class(problem,interpretation,element); }
171/**
172 * An element must be an instance of type "CommunicatingElement class".
173 */
174private pattern mustInstanceOfCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
175 Type.name(type,"CommunicatingElement class");
176 find directInstanceOf(problem,interpretation,element,type);
177}
178private pattern scopeDisallowsNewCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
179 find interpretation(problem,interpretation);
180 PartialInterpretation.scopes(interpretation,scope);
181 Scope.targetTypeInterpretation(scope,typeInterpretation);
182 Scope.maxNewElements(scope,0);
183 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
184 Type.name(type,"CommunicatingElement class");
185}
186
187/**
188 * An element may be an instance of type "CommunicatingElement class".
189 */
190private pattern mayInstanceOfCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
191{
192 find interpretation(problem,interpretation);
193 PartialInterpretation.newElements(interpretation,element);
194 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
195 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
196 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
197 neg find mustInstanceOfPayload_class(problem,interpretation,element);
198 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
199 neg find scopeDisallowsNewCommunicatingElement_class(problem, interpretation);
200 neg find isPrimitive(element);
201} or {
202 find interpretation(problem,interpretation);
203 PartialInterpretation.openWorldElements(interpretation,element);
204 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
205 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
206 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
207 neg find mustInstanceOfPayload_class(problem,interpretation,element);
208 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
209 neg find scopeDisallowsNewCommunicatingElement_class(problem, interpretation);
210 neg find isPrimitive(element);
211} or
212{ find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); }
213/**
214 * An element must be an instance of type "GroundStationNetwork class".
215 */
216private pattern mustInstanceOfGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
217 Type.name(type,"GroundStationNetwork class");
218 find directInstanceOf(problem,interpretation,element,type);
219}
220private pattern scopeDisallowsNewGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation) {
221 find interpretation(problem,interpretation);
222 PartialInterpretation.scopes(interpretation,scope);
223 Scope.targetTypeInterpretation(scope,typeInterpretation);
224 Scope.maxNewElements(scope,0);
225 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
226 Type.name(type,"GroundStationNetwork class");
227}
228
229/**
230 * An element may be an instance of type "GroundStationNetwork class".
231 */
232private pattern mayInstanceOfGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
233{
234 find interpretation(problem,interpretation);
235 PartialInterpretation.newElements(interpretation,element);
236 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
237 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
238 neg find mustInstanceOfPayload_class(problem,interpretation,element);
239 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
240 neg find scopeDisallowsNewGroundStationNetwork_class(problem, interpretation);
241 neg find isPrimitive(element);
242} or {
243 find interpretation(problem,interpretation);
244 PartialInterpretation.openWorldElements(interpretation,element);
245 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
246 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
247 neg find mustInstanceOfPayload_class(problem,interpretation,element);
248 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
249 neg find scopeDisallowsNewGroundStationNetwork_class(problem, interpretation);
250 neg find isPrimitive(element);
251} or
252{ find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); }
253/**
254 * An element must be an instance of type "Spacecraft class".
255 */
256private pattern mustInstanceOfSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
257 Type.name(type,"Spacecraft class");
258 find directInstanceOf(problem,interpretation,element,type);
259}
260private pattern scopeDisallowsNewSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation) {
261 find interpretation(problem,interpretation);
262 PartialInterpretation.scopes(interpretation,scope);
263 Scope.targetTypeInterpretation(scope,typeInterpretation);
264 Scope.maxNewElements(scope,0);
265 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
266 Type.name(type,"Spacecraft class");
267}
268
269/**
270 * An element may be an instance of type "Spacecraft class".
271 */
272private pattern mayInstanceOfSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
273{
274 find interpretation(problem,interpretation);
275 PartialInterpretation.newElements(interpretation,element);
276 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
277 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
278 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
279 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
280 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
281 neg find mustInstanceOfPayload_class(problem,interpretation,element);
282 neg find scopeDisallowsNewSpacecraft_class(problem, interpretation);
283 neg find isPrimitive(element);
284} or {
285 find interpretation(problem,interpretation);
286 PartialInterpretation.openWorldElements(interpretation,element);
287 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
288 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
289 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
290 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
291 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
292 neg find mustInstanceOfPayload_class(problem,interpretation,element);
293 neg find scopeDisallowsNewSpacecraft_class(problem, interpretation);
294 neg find isPrimitive(element);
295} or
296{ find mustInstanceOfSpacecraft_class(problem,interpretation,element); }
297/**
298 * An element must be an instance of type "CommSubsystem class".
299 */
300private pattern mustInstanceOfCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
301 Type.name(type,"CommSubsystem class");
302 find directInstanceOf(problem,interpretation,element,type);
303}
304private pattern scopeDisallowsNewCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) {
305 find interpretation(problem,interpretation);
306 PartialInterpretation.scopes(interpretation,scope);
307 Scope.targetTypeInterpretation(scope,typeInterpretation);
308 Scope.maxNewElements(scope,0);
309 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
310 Type.name(type,"CommSubsystem class");
311}
312
313/**
314 * An element may be an instance of type "CommSubsystem class".
315 */
316private pattern mayInstanceOfCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
317{
318 find interpretation(problem,interpretation);
319 PartialInterpretation.newElements(interpretation,element);
320 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
321 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
322 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
323 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
324 neg find mustInstanceOfPayload_class(problem,interpretation,element);
325 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
326 neg find scopeDisallowsNewCommSubsystem_class(problem, interpretation);
327 neg find isPrimitive(element);
328} or {
329 find interpretation(problem,interpretation);
330 PartialInterpretation.openWorldElements(interpretation,element);
331 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
332 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
333 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
334 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
335 neg find mustInstanceOfPayload_class(problem,interpretation,element);
336 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
337 neg find scopeDisallowsNewCommSubsystem_class(problem, interpretation);
338 neg find isPrimitive(element);
339} or
340{ find mustInstanceOfCommSubsystem_class(problem,interpretation,element); }
341/**
342 * An element must be an instance of type "Payload class".
343 */
344private pattern mustInstanceOfPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
345 Type.name(type,"Payload class");
346 find directInstanceOf(problem,interpretation,element,type);
347}
348private pattern scopeDisallowsNewPayload_class(problem:LogicProblem, interpretation:PartialInterpretation) {
349 find interpretation(problem,interpretation);
350 PartialInterpretation.scopes(interpretation,scope);
351 Scope.targetTypeInterpretation(scope,typeInterpretation);
352 Scope.maxNewElements(scope,0);
353 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
354 Type.name(type,"Payload class");
355}
356
357/**
358 * An element may be an instance of type "Payload class".
359 */
360private pattern mayInstanceOfPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
361{
362 find interpretation(problem,interpretation);
363 PartialInterpretation.newElements(interpretation,element);
364 neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element);
365 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
366 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
367 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
368 neg find scopeDisallowsNewPayload_class(problem, interpretation);
369 neg find isPrimitive(element);
370} or {
371 find interpretation(problem,interpretation);
372 PartialInterpretation.openWorldElements(interpretation,element);
373 neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element);
374 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
375 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
376 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
377 neg find scopeDisallowsNewPayload_class(problem, interpretation);
378 neg find isPrimitive(element);
379} or
380{ find mustInstanceOfPayload_class(problem,interpretation,element); }
381/**
382 * An element must be an instance of type "InterferometryPayload class".
383 */
384private pattern mustInstanceOfInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
385 Type.name(type,"InterferometryPayload class");
386 find directInstanceOf(problem,interpretation,element,type);
387}
388private pattern scopeDisallowsNewInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation) {
389 find interpretation(problem,interpretation);
390 PartialInterpretation.scopes(interpretation,scope);
391 Scope.targetTypeInterpretation(scope,typeInterpretation);
392 Scope.maxNewElements(scope,0);
393 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
394 Type.name(type,"InterferometryPayload class");
395}
396
397/**
398 * An element may be an instance of type "InterferometryPayload class".
399 */
400private pattern mayInstanceOfInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
401{
402 find interpretation(problem,interpretation);
403 PartialInterpretation.newElements(interpretation,element);
404 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
405 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
406 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
407 neg find scopeDisallowsNewInterferometryPayload_class(problem, interpretation);
408 neg find isPrimitive(element);
409} or {
410 find interpretation(problem,interpretation);
411 PartialInterpretation.openWorldElements(interpretation,element);
412 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
413 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
414 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
415 neg find scopeDisallowsNewInterferometryPayload_class(problem, interpretation);
416 neg find isPrimitive(element);
417} or
418{ find mustInstanceOfInterferometryPayload_class(problem,interpretation,element); }
419/**
420 * An element must be an instance of type "CubeSat3U class".
421 */
422private pattern mustInstanceOfCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
423 Type.name(type,"CubeSat3U class");
424 find directInstanceOf(problem,interpretation,element,type);
425}
426private pattern scopeDisallowsNewCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation) {
427 find interpretation(problem,interpretation);
428 PartialInterpretation.scopes(interpretation,scope);
429 Scope.targetTypeInterpretation(scope,typeInterpretation);
430 Scope.maxNewElements(scope,0);
431 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
432 Type.name(type,"CubeSat3U class");
433}
434
435/**
436 * An element may be an instance of type "CubeSat3U class".
437 */
438private pattern mayInstanceOfCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
439{
440 find interpretation(problem,interpretation);
441 PartialInterpretation.newElements(interpretation,element);
442 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
443 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
444 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
445 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
446 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
447 neg find mustInstanceOfPayload_class(problem,interpretation,element);
448 neg find scopeDisallowsNewCubeSat3U_class(problem, interpretation);
449 neg find isPrimitive(element);
450} or {
451 find interpretation(problem,interpretation);
452 PartialInterpretation.openWorldElements(interpretation,element);
453 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
454 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
455 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
456 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
457 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
458 neg find mustInstanceOfPayload_class(problem,interpretation,element);
459 neg find scopeDisallowsNewCubeSat3U_class(problem, interpretation);
460 neg find isPrimitive(element);
461} or
462{ find mustInstanceOfCubeSat3U_class(problem,interpretation,element); }
463/**
464 * An element must be an instance of type "CubeSat6U class".
465 */
466private pattern mustInstanceOfCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
467 Type.name(type,"CubeSat6U class");
468 find directInstanceOf(problem,interpretation,element,type);
469}
470private pattern scopeDisallowsNewCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation) {
471 find interpretation(problem,interpretation);
472 PartialInterpretation.scopes(interpretation,scope);
473 Scope.targetTypeInterpretation(scope,typeInterpretation);
474 Scope.maxNewElements(scope,0);
475 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
476 Type.name(type,"CubeSat6U class");
477}
478
479/**
480 * An element may be an instance of type "CubeSat6U class".
481 */
482private pattern mayInstanceOfCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
483{
484 find interpretation(problem,interpretation);
485 PartialInterpretation.newElements(interpretation,element);
486 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
487 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
488 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
489 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
490 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
491 neg find mustInstanceOfPayload_class(problem,interpretation,element);
492 neg find scopeDisallowsNewCubeSat6U_class(problem, interpretation);
493 neg find isPrimitive(element);
494} or {
495 find interpretation(problem,interpretation);
496 PartialInterpretation.openWorldElements(interpretation,element);
497 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
498 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
499 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
500 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
501 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
502 neg find mustInstanceOfPayload_class(problem,interpretation,element);
503 neg find scopeDisallowsNewCubeSat6U_class(problem, interpretation);
504 neg find isPrimitive(element);
505} or
506{ find mustInstanceOfCubeSat6U_class(problem,interpretation,element); }
507/**
508 * An element must be an instance of type "SmallSat class".
509 */
510private pattern mustInstanceOfSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
511 Type.name(type,"SmallSat class");
512 find directInstanceOf(problem,interpretation,element,type);
513}
514private pattern scopeDisallowsNewSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation) {
515 find interpretation(problem,interpretation);
516 PartialInterpretation.scopes(interpretation,scope);
517 Scope.targetTypeInterpretation(scope,typeInterpretation);
518 Scope.maxNewElements(scope,0);
519 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
520 Type.name(type,"SmallSat class");
521}
522
523/**
524 * An element may be an instance of type "SmallSat class".
525 */
526private pattern mayInstanceOfSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
527{
528 find interpretation(problem,interpretation);
529 PartialInterpretation.newElements(interpretation,element);
530 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
531 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
532 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
533 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
534 neg find mustInstanceOfPayload_class(problem,interpretation,element);
535 neg find scopeDisallowsNewSmallSat_class(problem, interpretation);
536 neg find isPrimitive(element);
537} or {
538 find interpretation(problem,interpretation);
539 PartialInterpretation.openWorldElements(interpretation,element);
540 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
541 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
542 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
543 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
544 neg find mustInstanceOfPayload_class(problem,interpretation,element);
545 neg find scopeDisallowsNewSmallSat_class(problem, interpretation);
546 neg find isPrimitive(element);
547} or
548{ find mustInstanceOfSmallSat_class(problem,interpretation,element); }
549/**
550 * An element must be an instance of type "CubeSat class".
551 */
552private pattern mustInstanceOfCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
553 Type.name(type,"CubeSat class");
554 find directInstanceOf(problem,interpretation,element,type);
555}
556private pattern scopeDisallowsNewCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation) {
557 find interpretation(problem,interpretation);
558 PartialInterpretation.scopes(interpretation,scope);
559 Scope.targetTypeInterpretation(scope,typeInterpretation);
560 Scope.maxNewElements(scope,0);
561 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
562 Type.name(type,"CubeSat class");
563}
564
565/**
566 * An element may be an instance of type "CubeSat class".
567 */
568private pattern mayInstanceOfCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
569{
570 find interpretation(problem,interpretation);
571 PartialInterpretation.newElements(interpretation,element);
572 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
573 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
574 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
575 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
576 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
577 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
578 neg find mustInstanceOfPayload_class(problem,interpretation,element);
579 neg find scopeDisallowsNewCubeSat_class(problem, interpretation);
580 neg find isPrimitive(element);
581} or {
582 find interpretation(problem,interpretation);
583 PartialInterpretation.openWorldElements(interpretation,element);
584 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
585 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
586 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
587 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
588 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
589 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
590 neg find mustInstanceOfPayload_class(problem,interpretation,element);
591 neg find scopeDisallowsNewCubeSat_class(problem, interpretation);
592 neg find isPrimitive(element);
593} or
594{ find mustInstanceOfCubeSat_class(problem,interpretation,element); }
595/**
596 * An element must be an instance of type "UHFCommSubsystem class".
597 */
598private pattern mustInstanceOfUHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
599 Type.name(type,"UHFCommSubsystem class");
600 find directInstanceOf(problem,interpretation,element,type);
601}
602private pattern scopeDisallowsNewUHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) {
603 find interpretation(problem,interpretation);
604 PartialInterpretation.scopes(interpretation,scope);
605 Scope.targetTypeInterpretation(scope,typeInterpretation);
606 Scope.maxNewElements(scope,0);
607 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
608 Type.name(type,"UHFCommSubsystem class");
609}
610
611/**
612 * An element may be an instance of type "UHFCommSubsystem class".
613 */
614private pattern mayInstanceOfUHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
615{
616 find interpretation(problem,interpretation);
617 PartialInterpretation.newElements(interpretation,element);
618 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
619 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
620 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
621 neg find mustInstanceOfPayload_class(problem,interpretation,element);
622 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
623 neg find scopeDisallowsNewUHFCommSubsystem_class(problem, interpretation);
624 neg find isPrimitive(element);
625} or {
626 find interpretation(problem,interpretation);
627 PartialInterpretation.openWorldElements(interpretation,element);
628 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
629 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
630 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
631 neg find mustInstanceOfPayload_class(problem,interpretation,element);
632 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
633 neg find scopeDisallowsNewUHFCommSubsystem_class(problem, interpretation);
634 neg find isPrimitive(element);
635} or
636{ find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element); }
637/**
638 * An element must be an instance of type "XCommSubsystem class".
639 */
640private pattern mustInstanceOfXCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
641 Type.name(type,"XCommSubsystem class");
642 find directInstanceOf(problem,interpretation,element,type);
643}
644private pattern scopeDisallowsNewXCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) {
645 find interpretation(problem,interpretation);
646 PartialInterpretation.scopes(interpretation,scope);
647 Scope.targetTypeInterpretation(scope,typeInterpretation);
648 Scope.maxNewElements(scope,0);
649 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
650 Type.name(type,"XCommSubsystem class");
651}
652
653/**
654 * An element may be an instance of type "XCommSubsystem class".
655 */
656private pattern mayInstanceOfXCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
657{
658 find interpretation(problem,interpretation);
659 PartialInterpretation.newElements(interpretation,element);
660 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
661 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
662 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
663 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
664 neg find mustInstanceOfPayload_class(problem,interpretation,element);
665 neg find scopeDisallowsNewXCommSubsystem_class(problem, interpretation);
666 neg find isPrimitive(element);
667} or {
668 find interpretation(problem,interpretation);
669 PartialInterpretation.openWorldElements(interpretation,element);
670 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
671 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
672 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
673 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
674 neg find mustInstanceOfPayload_class(problem,interpretation,element);
675 neg find scopeDisallowsNewXCommSubsystem_class(problem, interpretation);
676 neg find isPrimitive(element);
677} or
678{ find mustInstanceOfXCommSubsystem_class(problem,interpretation,element); }
679/**
680 * An element must be an instance of type "KaCommSubsystem class".
681 */
682private pattern mustInstanceOfKaCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
683 Type.name(type,"KaCommSubsystem class");
684 find directInstanceOf(problem,interpretation,element,type);
685}
686private pattern scopeDisallowsNewKaCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) {
687 find interpretation(problem,interpretation);
688 PartialInterpretation.scopes(interpretation,scope);
689 Scope.targetTypeInterpretation(scope,typeInterpretation);
690 Scope.maxNewElements(scope,0);
691 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
692 Type.name(type,"KaCommSubsystem class");
693}
694
695/**
696 * An element may be an instance of type "KaCommSubsystem class".
697 */
698private pattern mayInstanceOfKaCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
699{
700 find interpretation(problem,interpretation);
701 PartialInterpretation.newElements(interpretation,element);
702 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
703 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
704 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
705 neg find mustInstanceOfPayload_class(problem,interpretation,element);
706 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
707 neg find scopeDisallowsNewKaCommSubsystem_class(problem, interpretation);
708 neg find isPrimitive(element);
709} or {
710 find interpretation(problem,interpretation);
711 PartialInterpretation.openWorldElements(interpretation,element);
712 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
713 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
714 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
715 neg find mustInstanceOfPayload_class(problem,interpretation,element);
716 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
717 neg find scopeDisallowsNewKaCommSubsystem_class(problem, interpretation);
718 neg find isPrimitive(element);
719} or
720{ find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element); }
721/**
722 * An element must be an instance of type "ConstellationMission class DefinedPart".
723 */
724private pattern mustInstanceOfConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
725 Type.name(type,"ConstellationMission class DefinedPart");
726 find directInstanceOf(problem,interpretation,element,type);
727}
728private pattern scopeDisallowsNewConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
729 find interpretation(problem,interpretation);
730 PartialInterpretation.scopes(interpretation,scope);
731 Scope.targetTypeInterpretation(scope,typeInterpretation);
732 Scope.maxNewElements(scope,0);
733 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
734 Type.name(type,"ConstellationMission class DefinedPart");
735}
736
737/**
738 * An element may be an instance of type "ConstellationMission class DefinedPart".
739 */
740private pattern mayInstanceOfConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
741{ find mustInstanceOfConstellationMission_class_DefinedPart(problem,interpretation,element); }
742/**
743 * An element must be an instance of type "ConstellationMission class UndefinedPart".
744 */
745private pattern mustInstanceOfConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
746 Type.name(type,"ConstellationMission class UndefinedPart");
747 find directInstanceOf(problem,interpretation,element,type);
748}
749private pattern scopeDisallowsNewConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
750 find interpretation(problem,interpretation);
751 PartialInterpretation.scopes(interpretation,scope);
752 Scope.targetTypeInterpretation(scope,typeInterpretation);
753 Scope.maxNewElements(scope,0);
754 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
755 Type.name(type,"ConstellationMission class UndefinedPart");
756}
757
758/**
759 * An element may be an instance of type "ConstellationMission class UndefinedPart".
760 */
761private pattern mayInstanceOfConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
762{
763 find interpretation(problem,interpretation);
764 PartialInterpretation.newElements(interpretation,element);
765 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
766 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
767 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
768 neg find mustInstanceOfPayload_class(problem,interpretation,element);
769 neg find scopeDisallowsNewConstellationMission_class_UndefinedPart(problem, interpretation);
770 neg find isPrimitive(element);
771} or {
772 find interpretation(problem,interpretation);
773 PartialInterpretation.openWorldElements(interpretation,element);
774 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
775 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
776 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
777 neg find mustInstanceOfPayload_class(problem,interpretation,element);
778 neg find scopeDisallowsNewConstellationMission_class_UndefinedPart(problem, interpretation);
779 neg find isPrimitive(element);
780} or
781{ find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element); }
782/**
783 * An element must be an instance of type "InterferometryMission class DefinedPart".
784 */
785private pattern mustInstanceOfInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
786 Type.name(type,"InterferometryMission class DefinedPart");
787 find directInstanceOf(problem,interpretation,element,type);
788}
789private pattern scopeDisallowsNewInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
790 find interpretation(problem,interpretation);
791 PartialInterpretation.scopes(interpretation,scope);
792 Scope.targetTypeInterpretation(scope,typeInterpretation);
793 Scope.maxNewElements(scope,0);
794 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
795 Type.name(type,"InterferometryMission class DefinedPart");
796}
797
798/**
799 * An element may be an instance of type "InterferometryMission class DefinedPart".
800 */
801private pattern mayInstanceOfInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
802{ find mustInstanceOfInterferometryMission_class_DefinedPart(problem,interpretation,element); }
803/**
804 * An element must be an instance of type "InterferometryMission class UndefinedPart".
805 */
806private pattern mustInstanceOfInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
807 Type.name(type,"InterferometryMission class UndefinedPart");
808 find directInstanceOf(problem,interpretation,element,type);
809}
810private pattern scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
811 find interpretation(problem,interpretation);
812 PartialInterpretation.scopes(interpretation,scope);
813 Scope.targetTypeInterpretation(scope,typeInterpretation);
814 Scope.maxNewElements(scope,0);
815 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
816 Type.name(type,"InterferometryMission class UndefinedPart");
817}
818
819/**
820 * An element may be an instance of type "InterferometryMission class UndefinedPart".
821 */
822private pattern mayInstanceOfInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
823{
824 find interpretation(problem,interpretation);
825 PartialInterpretation.newElements(interpretation,element);
826 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
827 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
828 neg find mustInstanceOfPayload_class(problem,interpretation,element);
829 neg find scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem, interpretation);
830 neg find isPrimitive(element);
831} or {
832 find interpretation(problem,interpretation);
833 PartialInterpretation.openWorldElements(interpretation,element);
834 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
835 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
836 neg find mustInstanceOfPayload_class(problem,interpretation,element);
837 neg find scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem, interpretation);
838 neg find isPrimitive(element);
839} or
840{ find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element); }
841/**
842 * An element must be an instance of type "CommunicatingElement class DefinedPart".
843 */
844private pattern mustInstanceOfCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
845 Type.name(type,"CommunicatingElement class DefinedPart");
846 find directInstanceOf(problem,interpretation,element,type);
847}
848private pattern scopeDisallowsNewCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
849 find interpretation(problem,interpretation);
850 PartialInterpretation.scopes(interpretation,scope);
851 Scope.targetTypeInterpretation(scope,typeInterpretation);
852 Scope.maxNewElements(scope,0);
853 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
854 Type.name(type,"CommunicatingElement class DefinedPart");
855}
856
857/**
858 * An element may be an instance of type "CommunicatingElement class DefinedPart".
859 */
860private pattern mayInstanceOfCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
861{ find mustInstanceOfCommunicatingElement_class_DefinedPart(problem,interpretation,element); }
862/**
863 * An element must be an instance of type "CommunicatingElement class UndefinedPart".
864 */
865private pattern mustInstanceOfCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
866 Type.name(type,"CommunicatingElement class UndefinedPart");
867 find directInstanceOf(problem,interpretation,element,type);
868}
869private pattern scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
870 find interpretation(problem,interpretation);
871 PartialInterpretation.scopes(interpretation,scope);
872 Scope.targetTypeInterpretation(scope,typeInterpretation);
873 Scope.maxNewElements(scope,0);
874 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
875 Type.name(type,"CommunicatingElement class UndefinedPart");
876}
877
878/**
879 * An element may be an instance of type "CommunicatingElement class UndefinedPart".
880 */
881private pattern mayInstanceOfCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
882{
883 find interpretation(problem,interpretation);
884 PartialInterpretation.newElements(interpretation,element);
885 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
886 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
887 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
888 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
889 neg find mustInstanceOfPayload_class(problem,interpretation,element);
890 neg find scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem, interpretation);
891 neg find isPrimitive(element);
892} or {
893 find interpretation(problem,interpretation);
894 PartialInterpretation.openWorldElements(interpretation,element);
895 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
896 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
897 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
898 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
899 neg find mustInstanceOfPayload_class(problem,interpretation,element);
900 neg find scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem, interpretation);
901 neg find isPrimitive(element);
902} or
903{ find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element); }
904/**
905 * An element must be an instance of type "GroundStationNetwork class DefinedPart".
906 */
907private pattern mustInstanceOfGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
908 Type.name(type,"GroundStationNetwork class DefinedPart");
909 find directInstanceOf(problem,interpretation,element,type);
910}
911private pattern scopeDisallowsNewGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
912 find interpretation(problem,interpretation);
913 PartialInterpretation.scopes(interpretation,scope);
914 Scope.targetTypeInterpretation(scope,typeInterpretation);
915 Scope.maxNewElements(scope,0);
916 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
917 Type.name(type,"GroundStationNetwork class DefinedPart");
918}
919
920/**
921 * An element may be an instance of type "GroundStationNetwork class DefinedPart".
922 */
923private pattern mayInstanceOfGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
924{ find mustInstanceOfGroundStationNetwork_class_DefinedPart(problem,interpretation,element); }
925/**
926 * An element must be an instance of type "GroundStationNetwork class UndefinedPart".
927 */
928private pattern mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
929 Type.name(type,"GroundStationNetwork class UndefinedPart");
930 find directInstanceOf(problem,interpretation,element,type);
931}
932private pattern scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
933 find interpretation(problem,interpretation);
934 PartialInterpretation.scopes(interpretation,scope);
935 Scope.targetTypeInterpretation(scope,typeInterpretation);
936 Scope.maxNewElements(scope,0);
937 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
938 Type.name(type,"GroundStationNetwork class UndefinedPart");
939}
940
941/**
942 * An element may be an instance of type "GroundStationNetwork class UndefinedPart".
943 */
944private pattern mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
945{
946 find interpretation(problem,interpretation);
947 PartialInterpretation.newElements(interpretation,element);
948 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
949 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
950 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
951 neg find mustInstanceOfPayload_class(problem,interpretation,element);
952 neg find scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem, interpretation);
953 neg find isPrimitive(element);
954} or {
955 find interpretation(problem,interpretation);
956 PartialInterpretation.openWorldElements(interpretation,element);
957 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
958 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
959 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
960 neg find mustInstanceOfPayload_class(problem,interpretation,element);
961 neg find scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem, interpretation);
962 neg find isPrimitive(element);
963} or
964{ find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element); }
965/**
966 * An element must be an instance of type "CommSubsystem class DefinedPart".
967 */
968private pattern mustInstanceOfCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
969 Type.name(type,"CommSubsystem class DefinedPart");
970 find directInstanceOf(problem,interpretation,element,type);
971}
972private pattern scopeDisallowsNewCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
973 find interpretation(problem,interpretation);
974 PartialInterpretation.scopes(interpretation,scope);
975 Scope.targetTypeInterpretation(scope,typeInterpretation);
976 Scope.maxNewElements(scope,0);
977 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
978 Type.name(type,"CommSubsystem class DefinedPart");
979}
980
981/**
982 * An element may be an instance of type "CommSubsystem class DefinedPart".
983 */
984private pattern mayInstanceOfCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
985{ find mustInstanceOfCommSubsystem_class_DefinedPart(problem,interpretation,element); }
986/**
987 * An element must be an instance of type "CommSubsystem class UndefinedPart".
988 */
989private pattern mustInstanceOfCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
990 Type.name(type,"CommSubsystem class UndefinedPart");
991 find directInstanceOf(problem,interpretation,element,type);
992}
993private pattern scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
994 find interpretation(problem,interpretation);
995 PartialInterpretation.scopes(interpretation,scope);
996 Scope.targetTypeInterpretation(scope,typeInterpretation);
997 Scope.maxNewElements(scope,0);
998 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
999 Type.name(type,"CommSubsystem class UndefinedPart");
1000}
1001
1002/**
1003 * An element may be an instance of type "CommSubsystem class UndefinedPart".
1004 */
1005private pattern mayInstanceOfCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1006{
1007 find interpretation(problem,interpretation);
1008 PartialInterpretation.newElements(interpretation,element);
1009 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1010 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1011 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1012 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
1013 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1014 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
1015 neg find scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem, interpretation);
1016 neg find isPrimitive(element);
1017} or {
1018 find interpretation(problem,interpretation);
1019 PartialInterpretation.openWorldElements(interpretation,element);
1020 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1021 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1022 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1023 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
1024 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1025 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
1026 neg find scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem, interpretation);
1027 neg find isPrimitive(element);
1028} or
1029{ find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element); }
1030/**
1031 * An element must be an instance of type "XCommSubsystem class DefinedPart".
1032 */
1033private pattern mustInstanceOfXCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
1034 Type.name(type,"XCommSubsystem class DefinedPart");
1035 find directInstanceOf(problem,interpretation,element,type);
1036}
1037private pattern scopeDisallowsNewXCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
1038 find interpretation(problem,interpretation);
1039 PartialInterpretation.scopes(interpretation,scope);
1040 Scope.targetTypeInterpretation(scope,typeInterpretation);
1041 Scope.maxNewElements(scope,0);
1042 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
1043 Type.name(type,"XCommSubsystem class DefinedPart");
1044}
1045
1046/**
1047 * An element may be an instance of type "XCommSubsystem class DefinedPart".
1048 */
1049private pattern mayInstanceOfXCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1050{ find mustInstanceOfXCommSubsystem_class_DefinedPart(problem,interpretation,element); }
1051/**
1052 * An element must be an instance of type "XCommSubsystem class UndefinedPart".
1053 */
1054private pattern mustInstanceOfXCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
1055 Type.name(type,"XCommSubsystem class UndefinedPart");
1056 find directInstanceOf(problem,interpretation,element,type);
1057}
1058private pattern scopeDisallowsNewXCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
1059 find interpretation(problem,interpretation);
1060 PartialInterpretation.scopes(interpretation,scope);
1061 Scope.targetTypeInterpretation(scope,typeInterpretation);
1062 Scope.maxNewElements(scope,0);
1063 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
1064 Type.name(type,"XCommSubsystem class UndefinedPart");
1065}
1066
1067/**
1068 * An element may be an instance of type "XCommSubsystem class UndefinedPart".
1069 */
1070private pattern mayInstanceOfXCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1071{
1072 find interpretation(problem,interpretation);
1073 PartialInterpretation.newElements(interpretation,element);
1074 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1075 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1076 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1077 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
1078 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1079 neg find scopeDisallowsNewXCommSubsystem_class_UndefinedPart(problem, interpretation);
1080 neg find isPrimitive(element);
1081} or {
1082 find interpretation(problem,interpretation);
1083 PartialInterpretation.openWorldElements(interpretation,element);
1084 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1085 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1086 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1087 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
1088 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1089 neg find scopeDisallowsNewXCommSubsystem_class_UndefinedPart(problem, interpretation);
1090 neg find isPrimitive(element);
1091} or
1092{ find mustInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,element); }
1093/**
1094 * An element must be an instance of type "KaCommSubsystem class DefinedPart".
1095 */
1096private pattern mustInstanceOfKaCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
1097 Type.name(type,"KaCommSubsystem class DefinedPart");
1098 find directInstanceOf(problem,interpretation,element,type);
1099}
1100private pattern scopeDisallowsNewKaCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
1101 find interpretation(problem,interpretation);
1102 PartialInterpretation.scopes(interpretation,scope);
1103 Scope.targetTypeInterpretation(scope,typeInterpretation);
1104 Scope.maxNewElements(scope,0);
1105 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
1106 Type.name(type,"KaCommSubsystem class DefinedPart");
1107}
1108
1109/**
1110 * An element may be an instance of type "KaCommSubsystem class DefinedPart".
1111 */
1112private pattern mayInstanceOfKaCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1113{ find mustInstanceOfKaCommSubsystem_class_DefinedPart(problem,interpretation,element); }
1114/**
1115 * An element must be an instance of type "KaCommSubsystem class UndefinedPart".
1116 */
1117private pattern mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
1118 Type.name(type,"KaCommSubsystem class UndefinedPart");
1119 find directInstanceOf(problem,interpretation,element,type);
1120}
1121private pattern scopeDisallowsNewKaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
1122 find interpretation(problem,interpretation);
1123 PartialInterpretation.scopes(interpretation,scope);
1124 Scope.targetTypeInterpretation(scope,typeInterpretation);
1125 Scope.maxNewElements(scope,0);
1126 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
1127 Type.name(type,"KaCommSubsystem class UndefinedPart");
1128}
1129
1130/**
1131 * An element may be an instance of type "KaCommSubsystem class UndefinedPart".
1132 */
1133private pattern mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1134{
1135 find interpretation(problem,interpretation);
1136 PartialInterpretation.newElements(interpretation,element);
1137 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1138 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1139 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1140 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1141 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
1142 neg find scopeDisallowsNewKaCommSubsystem_class_UndefinedPart(problem, interpretation);
1143 neg find isPrimitive(element);
1144} or {
1145 find interpretation(problem,interpretation);
1146 PartialInterpretation.openWorldElements(interpretation,element);
1147 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1148 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1149 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1150 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1151 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
1152 neg find scopeDisallowsNewKaCommSubsystem_class_UndefinedPart(problem, interpretation);
1153 neg find isPrimitive(element);
1154} or
1155{ find mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,element); }
1156
1157//////////
1158// 1.2 Relation Declaration Indexers
1159//////////
1160/**
1161 * Matcher for detecting tuples t where []groundStationNetwork reference ConstellationMission(source,target)
1162 */
1163private pattern mustInRelationgroundStationNetwork_reference_ConstellationMission(
1164 problem:LogicProblem, interpretation:PartialInterpretation,
1165 source: DefinedElement, target:DefinedElement)
1166{
1167 find interpretation(problem,interpretation);
1168 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1169 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"groundStationNetwork reference ConstellationMission");
1170 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1171 BinaryElementRelationLink.param1(link,source);
1172 BinaryElementRelationLink.param2(link,target);
1173}
1174/**
1175 * Matcher for detecting tuples t where <>groundStationNetwork reference ConstellationMission(source,target)
1176 */
1177private pattern mayInRelationgroundStationNetwork_reference_ConstellationMission(
1178 problem:LogicProblem, interpretation:PartialInterpretation,
1179 source: DefinedElement, target:DefinedElement)
1180{
1181 find interpretation(problem,interpretation);
1182 // The two endpoint of the link have to exist
1183 find mayExist(problem, interpretation, source);
1184 find mayExist(problem, interpretation, target);
1185 // Type consistency
1186 find mayInstanceOfConstellationMission_class(problem,interpretation,source);
1187 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,target);
1188 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1189 // the upper bound of the multiplicity should be considered.
1190 numberOfExistingReferences == count find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,_);
1191 check(numberOfExistingReferences < 1);
1192 // The reference is containment, then a new reference cannot be create if:
1193 // 1. Multiple parents
1194 neg find mustContains4(problem,interpretation,_,target);
1195 // 2. Circle in the containment hierarchy
1196 neg find mustTransitiveContains(source,target);
1197} or {
1198 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,target);
1199}
1200/**
1201 * Matcher for detecting tuples t where []spacecraft reference ConstellationMission(source,target)
1202 */
1203private pattern mustInRelationspacecraft_reference_ConstellationMission(
1204 problem:LogicProblem, interpretation:PartialInterpretation,
1205 source: DefinedElement, target:DefinedElement)
1206{
1207 find interpretation(problem,interpretation);
1208 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1209 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"spacecraft reference ConstellationMission");
1210 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1211 BinaryElementRelationLink.param1(link,source);
1212 BinaryElementRelationLink.param2(link,target);
1213}
1214/**
1215 * Matcher for detecting tuples t where <>spacecraft reference ConstellationMission(source,target)
1216 */
1217private pattern mayInRelationspacecraft_reference_ConstellationMission(
1218 problem:LogicProblem, interpretation:PartialInterpretation,
1219 source: DefinedElement, target:DefinedElement)
1220{
1221 find interpretation(problem,interpretation);
1222 // The two endpoint of the link have to exist
1223 find mayExist(problem, interpretation, source);
1224 find mayExist(problem, interpretation, target);
1225 // Type consistency
1226 find mayInstanceOfConstellationMission_class(problem,interpretation,source);
1227 find mayInstanceOfSpacecraft_class(problem,interpretation,target);
1228 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1229 // the upper bound of the multiplicity should be considered.
1230 numberOfExistingReferences == count find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,_);
1231 check(numberOfExistingReferences < 50);
1232 // The reference is containment, then a new reference cannot be create if:
1233 // 1. Multiple parents
1234 neg find mustContains4(problem,interpretation,_,target);
1235 // 2. Circle in the containment hierarchy
1236 neg find mustTransitiveContains(source,target);
1237} or {
1238 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,target);
1239}
1240/**
1241 * Matcher for detecting tuples t where []commSubsystem reference CommunicatingElement(source,target)
1242 */
1243private pattern mustInRelationcommSubsystem_reference_CommunicatingElement(
1244 problem:LogicProblem, interpretation:PartialInterpretation,
1245 source: DefinedElement, target:DefinedElement)
1246{
1247 find interpretation(problem,interpretation);
1248 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1249 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"commSubsystem reference CommunicatingElement");
1250 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1251 BinaryElementRelationLink.param1(link,source);
1252 BinaryElementRelationLink.param2(link,target);
1253}
1254/**
1255 * Matcher for detecting tuples t where <>commSubsystem reference CommunicatingElement(source,target)
1256 */
1257private pattern mayInRelationcommSubsystem_reference_CommunicatingElement(
1258 problem:LogicProblem, interpretation:PartialInterpretation,
1259 source: DefinedElement, target:DefinedElement)
1260{
1261 find interpretation(problem,interpretation);
1262 // The two endpoint of the link have to exist
1263 find mayExist(problem, interpretation, source);
1264 find mayExist(problem, interpretation, target);
1265 // Type consistency
1266 find mayInstanceOfCommunicatingElement_class(problem,interpretation,source);
1267 find mayInstanceOfCommSubsystem_class(problem,interpretation,target);
1268 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1269 // the upper bound of the multiplicity should be considered.
1270 numberOfExistingReferences == count find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,_);
1271 check(numberOfExistingReferences < 2);
1272 // The reference is containment, then a new reference cannot be create if:
1273 // 1. Multiple parents
1274 neg find mustContains4(problem,interpretation,_,target);
1275 // 2. Circle in the containment hierarchy
1276 neg find mustTransitiveContains(source,target);
1277} or {
1278 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,target);
1279}
1280/**
1281 * Matcher for detecting tuples t where []payload reference Spacecraft(source,target)
1282 */
1283private pattern mustInRelationpayload_reference_Spacecraft(
1284 problem:LogicProblem, interpretation:PartialInterpretation,
1285 source: DefinedElement, target:DefinedElement)
1286{
1287 find interpretation(problem,interpretation);
1288 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1289 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"payload reference Spacecraft");
1290 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1291 BinaryElementRelationLink.param1(link,source);
1292 BinaryElementRelationLink.param2(link,target);
1293}
1294/**
1295 * Matcher for detecting tuples t where <>payload reference Spacecraft(source,target)
1296 */
1297private pattern mayInRelationpayload_reference_Spacecraft(
1298 problem:LogicProblem, interpretation:PartialInterpretation,
1299 source: DefinedElement, target:DefinedElement)
1300{
1301 find interpretation(problem,interpretation);
1302 // The two endpoint of the link have to exist
1303 find mayExist(problem, interpretation, source);
1304 find mayExist(problem, interpretation, target);
1305 // Type consistency
1306 find mayInstanceOfSpacecraft_class(problem,interpretation,source);
1307 find mayInstanceOfPayload_class(problem,interpretation,target);
1308 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1309 // the upper bound of the multiplicity should be considered.
1310 numberOfExistingReferences == count find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,_);
1311 check(numberOfExistingReferences < 1);
1312 // The reference is containment, then a new reference cannot be create if:
1313 // 1. Multiple parents
1314 neg find mustContains4(problem,interpretation,_,target);
1315 // 2. Circle in the containment hierarchy
1316 neg find mustTransitiveContains(source,target);
1317} or {
1318 find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,target);
1319}
1320/**
1321 * Matcher for detecting tuples t where []target reference CommSubsystem(source,target)
1322 */
1323private pattern mustInRelationtarget_reference_CommSubsystem(
1324 problem:LogicProblem, interpretation:PartialInterpretation,
1325 source: DefinedElement, target:DefinedElement)
1326{
1327 find interpretation(problem,interpretation);
1328 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1329 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"target reference CommSubsystem");
1330 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1331 BinaryElementRelationLink.param1(link,source);
1332 BinaryElementRelationLink.param2(link,target);
1333}
1334/**
1335 * Matcher for detecting tuples t where <>target reference CommSubsystem(source,target)
1336 */
1337private pattern mayInRelationtarget_reference_CommSubsystem(
1338 problem:LogicProblem, interpretation:PartialInterpretation,
1339 source: DefinedElement, target:DefinedElement)
1340{
1341 find interpretation(problem,interpretation);
1342 // The two endpoint of the link have to exist
1343 find mayExist(problem, interpretation, source);
1344 find mayExist(problem, interpretation, target);
1345 // Type consistency
1346 find mayInstanceOfCommSubsystem_class(problem,interpretation,source);
1347 find mayInstanceOfCommSubsystem_class(problem,interpretation,target);
1348 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1349 // the upper bound of the multiplicity should be considered.
1350 numberOfExistingReferences == count find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,source,_);
1351 check(numberOfExistingReferences < 1);
1352} or {
1353 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,source,target);
1354}
1355
1356//////////
1357// 1.3 Relation Definition Indexers
1358//////////
1359// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries communicationLinkDoesNotStartAtContainingElement
1360private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(
1361 problem:LogicProblem, interpretation:PartialInterpretation,
1362 var_Element)
1363{
1364 find interpretation(problem,interpretation);
1365 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1366 // Element is exported
1367 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm1);
1368 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm2);
1369 neg find mayEquivalent(problem, interpretation, var_Comm1, var_Comm2);
1370}
1371private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(
1372 problem:LogicProblem, interpretation:PartialInterpretation,
1373 var_Element)
1374{
1375 find interpretation(problem,interpretation);
1376 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1377 // Element is exported
1378 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm1);
1379 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm2);
1380 neg find mustEquivalent(problem, interpretation, var_Comm1, var_Comm2);
1381}
1382private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(
1383 problem:LogicProblem, interpretation:PartialInterpretation,
1384 var_Element)
1385{
1386 find interpretation(problem,interpretation);
1387 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1388 // Element is exported
1389 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm1);
1390 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm2);
1391 neg find mustEquivalent(problem, interpretation, var_Comm1, var_Comm2);
1392}
1393// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries transmittingCommSubsystem
1394private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(
1395 problem:LogicProblem, interpretation:PartialInterpretation,
1396 var_Element, var_Comm)
1397{
1398 find interpretation(problem,interpretation);
1399 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1400 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1401 // Element is exported
1402 // Comm is exported
1403 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1404 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0);
1405 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1406 find mustEquivalent(problem, interpretation, var_virtual0, var_Comm);
1407 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1408 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1409 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1410 find mustEquivalent(problem, interpretation, var_virtual1, _var__0);
1411}
1412private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(
1413 problem:LogicProblem, interpretation:PartialInterpretation,
1414 var_Element, var_Comm)
1415{
1416 find interpretation(problem,interpretation);
1417 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1418 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1419 // Element is exported
1420 // Comm is exported
1421 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1422 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0);
1423 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1424 find mayEquivalent(problem, interpretation, var_virtual0, var_Comm);
1425 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1426 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1427 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1428 find mayEquivalent(problem, interpretation, var_virtual1, _var__0);
1429}
1430private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(
1431 problem:LogicProblem, interpretation:PartialInterpretation,
1432 var_Element, var_Comm)
1433{
1434 find interpretation(problem,interpretation);
1435 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1436 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1437 // Element is exported
1438 // Comm is exported
1439 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1440 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0);
1441 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1442 find mustEquivalent(problem, interpretation, var_virtual0, var_Comm);
1443 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1444 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1445 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1446 find mustEquivalent(problem, interpretation, var_virtual1, _var__0);
1447}
1448// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries notEnoughInterferometryPayloads
1449private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(
1450 problem:LogicProblem, interpretation:PartialInterpretation,
1451 var_Mission)
1452{
1453 find interpretation(problem,interpretation);
1454 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1455 // Mission is exported
1456 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1457 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission);
1458}
1459private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(
1460 problem:LogicProblem, interpretation:PartialInterpretation,
1461 var_Mission)
1462{
1463 find interpretation(problem,interpretation);
1464 find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1465 // Mission is exported
1466 find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1467 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission);
1468}
1469private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(
1470 problem:LogicProblem, interpretation:PartialInterpretation,
1471 var_Mission)
1472{
1473 find interpretation(problem,interpretation);
1474 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1475 // Mission is exported
1476 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1477 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission);
1478}
1479// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries atLeastTwoInterferometryPayloads
1480private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(
1481 problem:LogicProblem, interpretation:PartialInterpretation,
1482 var_Mission)
1483{
1484 find interpretation(problem,interpretation);
1485 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1486 // Mission is exported
1487 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1);
1488 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2);
1489 neg find mayEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2);
1490}
1491private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(
1492 problem:LogicProblem, interpretation:PartialInterpretation,
1493 var_Mission)
1494{
1495 find interpretation(problem,interpretation);
1496 find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1497 // Mission is exported
1498 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1);
1499 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2);
1500 neg find mustEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2);
1501}
1502private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(
1503 problem:LogicProblem, interpretation:PartialInterpretation,
1504 var_Mission)
1505{
1506 find interpretation(problem,interpretation);
1507 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1508 // Mission is exported
1509 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1);
1510 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2);
1511 neg find mustEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2);
1512}
1513// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries spacecraftWithInterferometryPayload
1514private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(
1515 problem:LogicProblem, interpretation:PartialInterpretation,
1516 var_Mission, var_Spacecraft)
1517{
1518 find interpretation(problem,interpretation);
1519 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1520 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1521 // Mission is exported
1522 // Spacecraft is exported
1523 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1524 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1525 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual0);
1526 find mustEquivalent(problem, interpretation, var_virtual0, var_Spacecraft);
1527 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1528 find mustInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1);
1529 find mustInstanceOfPayload_class(problem,interpretation,var_virtual1);
1530 find mustEquivalent(problem, interpretation, var_virtual1, var_Payload);
1531 find mustInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload);
1532}
1533private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(
1534 problem:LogicProblem, interpretation:PartialInterpretation,
1535 var_Mission, var_Spacecraft)
1536{
1537 find interpretation(problem,interpretation);
1538 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1539 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1540 // Mission is exported
1541 // Spacecraft is exported
1542 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1543 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1544 find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual0);
1545 find mayEquivalent(problem, interpretation, var_virtual0, var_Spacecraft);
1546 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1547 find mayInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1);
1548 find mayInstanceOfPayload_class(problem,interpretation,var_virtual1);
1549 find mayEquivalent(problem, interpretation, var_virtual1, var_Payload);
1550 find mayInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload);
1551}
1552private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(
1553 problem:LogicProblem, interpretation:PartialInterpretation,
1554 var_Mission, var_Spacecraft)
1555{
1556 find interpretation(problem,interpretation);
1557 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1558 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1559 // Mission is exported
1560 // Spacecraft is exported
1561 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1562 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1563 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual0);
1564 find mustEquivalent(problem, interpretation, var_virtual0, var_Spacecraft);
1565 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1566 find mustInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1);
1567 find mustInstanceOfPayload_class(problem,interpretation,var_virtual1);
1568 find mustEquivalent(problem, interpretation, var_virtual1, var_Payload);
1569 find mustInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload);
1570}
1571// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries noLinkToGroundStation
1572private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(
1573 problem:LogicProblem, interpretation:PartialInterpretation,
1574 var_Spacecraft)
1575{
1576 find interpretation(problem,interpretation);
1577 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1578 // Spacecraft is exported
1579 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1580 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1581 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1582 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1583 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1584 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1585 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1586 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1587 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation);
1588}
1589private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(
1590 problem:LogicProblem, interpretation:PartialInterpretation,
1591 var_Spacecraft)
1592{
1593 find interpretation(problem,interpretation);
1594 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1595 // Spacecraft is exported
1596 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1597 find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1598 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1599 find mayEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1600 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1601 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1602 find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1603 find mayEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1604 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation);
1605}
1606private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(
1607 problem:LogicProblem, interpretation:PartialInterpretation,
1608 var_Spacecraft)
1609{
1610 find interpretation(problem,interpretation);
1611 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1612 // Spacecraft is exported
1613 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1614 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1615 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1616 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1617 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1618 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1619 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1620 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1621 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation);
1622}
1623// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries noPotentialLinkToGroundStation
1624private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(
1625 problem:LogicProblem, interpretation:PartialInterpretation,
1626 var_Spacecraft)
1627{
1628 find interpretation(problem,interpretation);
1629 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1630 // Spacecraft is exported
1631 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1632 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1633 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1634 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1635 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1636 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1637 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1638 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1639 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation);
1640}
1641private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(
1642 problem:LogicProblem, interpretation:PartialInterpretation,
1643 var_Spacecraft)
1644{
1645 find interpretation(problem,interpretation);
1646 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1647 // Spacecraft is exported
1648 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1649 find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1650 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1651 find mayEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1652 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1653 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1654 find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1655 find mayEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1656 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation);
1657}
1658private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(
1659 problem:LogicProblem, interpretation:PartialInterpretation,
1660 var_Spacecraft)
1661{
1662 find interpretation(problem,interpretation);
1663 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1664 // Spacecraft is exported
1665 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1666 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1667 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1668 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1669 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1670 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1671 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1672 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1673 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation);
1674}
1675// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries indirectLinkAllowed
1676private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(
1677 problem:LogicProblem, interpretation:PartialInterpretation,
1678 var_From, var_To)
1679{
1680 find interpretation(problem,interpretation);
1681 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1682 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1683 // From is exported
1684 // To is exported
1685 find twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To);
1686}
1687private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(
1688 problem:LogicProblem, interpretation:PartialInterpretation,
1689 var_From, var_To)
1690{
1691 find interpretation(problem,interpretation);
1692 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1693 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1694 // From is exported
1695 // To is exported
1696 find twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To);
1697}
1698private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(
1699 problem:LogicProblem, interpretation:PartialInterpretation,
1700 var_From, var_To)
1701{
1702 find interpretation(problem,interpretation);
1703 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1704 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1705 // From is exported
1706 // To is exported
1707 find twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To);
1708}
1709// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries linkAllowed
1710private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(
1711 problem:LogicProblem, interpretation:PartialInterpretation,
1712 var_From, var_To)
1713{
1714 find interpretation(problem,interpretation);
1715 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1716 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1717 // From is exported
1718 // To is exported
1719 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1720 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From);
1721}or{
1722 find interpretation(problem,interpretation);
1723 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1724 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1725 // From is exported
1726 // To is exported
1727 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1728 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1729}or{
1730 find interpretation(problem,interpretation);
1731 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1732 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1733 // From is exported
1734 // To is exported
1735 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1736 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1737 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_To);
1738}
1739private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(
1740 problem:LogicProblem, interpretation:PartialInterpretation,
1741 var_From, var_To)
1742{
1743 find interpretation(problem,interpretation);
1744 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1745 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1746 // From is exported
1747 // To is exported
1748 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1749 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From);
1750}or{
1751 find interpretation(problem,interpretation);
1752 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1753 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1754 // From is exported
1755 // To is exported
1756 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1757 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1758}or{
1759 find interpretation(problem,interpretation);
1760 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1761 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1762 // From is exported
1763 // To is exported
1764 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1765 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1766 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_To);
1767}
1768private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(
1769 problem:LogicProblem, interpretation:PartialInterpretation,
1770 var_From, var_To)
1771{
1772 find interpretation(problem,interpretation);
1773 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1774 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1775 // From is exported
1776 // To is exported
1777 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1778 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From);
1779}or{
1780 find interpretation(problem,interpretation);
1781 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1782 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1783 // From is exported
1784 // To is exported
1785 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1786 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1787}or{
1788 find interpretation(problem,interpretation);
1789 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1790 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1791 // From is exported
1792 // To is exported
1793 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1794 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1795 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_To);
1796}
1797private pattern twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) {
1798 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To);
1799}
1800private pattern twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) {
1801 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To);
1802}
1803private pattern twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) {
1804 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To);
1805}
1806// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries matchingAntenna
1807private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(
1808 problem:LogicProblem, interpretation:PartialInterpretation,
1809 var_From, var_To)
1810{
1811 find interpretation(problem,interpretation);
1812 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1813 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1814 // From is exported
1815 // To is exported
1816 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_From);
1817 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0);
1818 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1819 find mustEquivalent(problem, interpretation, var_virtual0, var_FromSys);
1820 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1821 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual1);
1822 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1823 find mustEquivalent(problem, interpretation, var_virtual1, var_ToSys);
1824 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_FromSys,var_ToSys);
1825}
1826private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(
1827 problem:LogicProblem, interpretation:PartialInterpretation,
1828 var_From, var_To)
1829{
1830 find interpretation(problem,interpretation);
1831 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1832 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1833 // From is exported
1834 // To is exported
1835 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_From);
1836 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0);
1837 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1838 find mayEquivalent(problem, interpretation, var_virtual0, var_FromSys);
1839 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1840 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual1);
1841 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1842 find mayEquivalent(problem, interpretation, var_virtual1, var_ToSys);
1843 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_FromSys,var_ToSys);
1844}
1845private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(
1846 problem:LogicProblem, interpretation:PartialInterpretation,
1847 var_From, var_To)
1848{
1849 find interpretation(problem,interpretation);
1850 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1851 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1852 // From is exported
1853 // To is exported
1854 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_From);
1855 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0);
1856 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1857 find mustEquivalent(problem, interpretation, var_virtual0, var_FromSys);
1858 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1859 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual1);
1860 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1861 find mustEquivalent(problem, interpretation, var_virtual1, var_ToSys);
1862 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_FromSys,var_ToSys);
1863}
1864// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries matchingCommSubsystem
1865private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(
1866 problem:LogicProblem, interpretation:PartialInterpretation,
1867 var_From, var_To)
1868{
1869 find interpretation(problem,interpretation);
1870 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1871 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1872 // From is exported
1873 // To is exported
1874 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_From);
1875 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_To);
1876}or{
1877 find interpretation(problem,interpretation);
1878 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1879 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1880 // From is exported
1881 // To is exported
1882 find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_From);
1883 find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_To);
1884}or{
1885 find interpretation(problem,interpretation);
1886 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1887 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1888 // From is exported
1889 // To is exported
1890 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_From);
1891 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_To);
1892}
1893private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(
1894 problem:LogicProblem, interpretation:PartialInterpretation,
1895 var_From, var_To)
1896{
1897 find interpretation(problem,interpretation);
1898 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1899 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1900 // From is exported
1901 // To is exported
1902 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_From);
1903 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_To);
1904}or{
1905 find interpretation(problem,interpretation);
1906 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1907 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1908 // From is exported
1909 // To is exported
1910 find mayInstanceOfXCommSubsystem_class(problem,interpretation,var_From);
1911 find mayInstanceOfXCommSubsystem_class(problem,interpretation,var_To);
1912}or{
1913 find interpretation(problem,interpretation);
1914 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1915 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1916 // From is exported
1917 // To is exported
1918 find mayInstanceOfKaCommSubsystem_class(problem,interpretation,var_From);
1919 find mayInstanceOfKaCommSubsystem_class(problem,interpretation,var_To);
1920}
1921private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(
1922 problem:LogicProblem, interpretation:PartialInterpretation,
1923 var_From, var_To)
1924{
1925 find interpretation(problem,interpretation);
1926 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1927 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1928 // From is exported
1929 // To is exported
1930 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_From);
1931 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_To);
1932}or{
1933 find interpretation(problem,interpretation);
1934 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1935 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1936 // From is exported
1937 // To is exported
1938 find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_From);
1939 find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_To);
1940}or{
1941 find interpretation(problem,interpretation);
1942 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1943 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1944 // From is exported
1945 // To is exported
1946 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_From);
1947 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_To);
1948}
1949// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries cubeSat3U
1950private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(
1951 problem:LogicProblem, interpretation:PartialInterpretation,
1952 var_Sat)
1953{
1954 find interpretation(problem,interpretation);
1955 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1956 // Sat is exported
1957 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1958}
1959private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(
1960 problem:LogicProblem, interpretation:PartialInterpretation,
1961 var_Sat)
1962{
1963 find interpretation(problem,interpretation);
1964 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1965 // Sat is exported
1966 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1967}
1968private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(
1969 problem:LogicProblem, interpretation:PartialInterpretation,
1970 var_Sat)
1971{
1972 find interpretation(problem,interpretation);
1973 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1974 // Sat is exported
1975 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1976}
1977// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries cubeSat6U
1978private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat6U(
1979 problem:LogicProblem, interpretation:PartialInterpretation,
1980 var_Sat)
1981{
1982 find interpretation(problem,interpretation);
1983 find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
1984 // Sat is exported
1985 find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
1986}
1987private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat6U(
1988 problem:LogicProblem, interpretation:PartialInterpretation,
1989 var_Sat)
1990{
1991 find interpretation(problem,interpretation);
1992 find mayInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
1993 // Sat is exported
1994 find mayInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
1995}
1996private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat6U(
1997 problem:LogicProblem, interpretation:PartialInterpretation,
1998 var_Sat)
1999{
2000 find interpretation(problem,interpretation);
2001 find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
2002 // Sat is exported
2003 find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
2004}
2005// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries communicationLoop
2006private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(
2007 problem:LogicProblem, interpretation:PartialInterpretation,
2008 var_Element)
2009{
2010 find interpretation(problem,interpretation);
2011 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
2012 // Element is exported
2013 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element);
2014}
2015private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(
2016 problem:LogicProblem, interpretation:PartialInterpretation,
2017 var_Element)
2018{
2019 find interpretation(problem,interpretation);
2020 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
2021 // Element is exported
2022 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element);
2023}
2024private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(
2025 problem:LogicProblem, interpretation:PartialInterpretation,
2026 var_Element)
2027{
2028 find interpretation(problem,interpretation);
2029 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
2030 // Element is exported
2031 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element);
2032}
2033// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries indirectCommunicationLink
2034private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(
2035 problem:LogicProblem, interpretation:PartialInterpretation,
2036 var_Source, var_Target)
2037{
2038 find interpretation(problem,interpretation);
2039 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2040 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2041 // Source is exported
2042 // Target is exported
2043 find twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target);
2044}
2045private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(
2046 problem:LogicProblem, interpretation:PartialInterpretation,
2047 var_Source, var_Target)
2048{
2049 find interpretation(problem,interpretation);
2050 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2051 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2052 // Source is exported
2053 // Target is exported
2054 find twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target);
2055}
2056private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(
2057 problem:LogicProblem, interpretation:PartialInterpretation,
2058 var_Source, var_Target)
2059{
2060 find interpretation(problem,interpretation);
2061 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2062 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2063 // Source is exported
2064 // Target is exported
2065 find twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target);
2066}
2067// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries directCommunicationLink
2068private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(
2069 problem:LogicProblem, interpretation:PartialInterpretation,
2070 var_Source, var_Target)
2071{
2072 find interpretation(problem,interpretation);
2073 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2074 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2075 // Source is exported
2076 // Target is exported
2077 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2078 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2079 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2080 find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2081 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2082 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual1);
2083 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2084 find mustEquivalent(problem, interpretation, var_virtual1, var_SourceSubsystem);
2085 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2086 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2087 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2088 find mustEquivalent(problem, interpretation, var_virtual2, var_TargetSubsystem);
2089}
2090private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(
2091 problem:LogicProblem, interpretation:PartialInterpretation,
2092 var_Source, var_Target)
2093{
2094 find interpretation(problem,interpretation);
2095 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2096 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2097 // Source is exported
2098 // Target is exported
2099 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2100 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2101 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2102 find mayEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2103 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2104 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual1);
2105 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2106 find mayEquivalent(problem, interpretation, var_virtual1, var_SourceSubsystem);
2107 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2108 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2109 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2110 find mayEquivalent(problem, interpretation, var_virtual2, var_TargetSubsystem);
2111}
2112private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(
2113 problem:LogicProblem, interpretation:PartialInterpretation,
2114 var_Source, var_Target)
2115{
2116 find interpretation(problem,interpretation);
2117 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2118 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2119 // Source is exported
2120 // Target is exported
2121 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2122 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2123 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2124 find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2125 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2126 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual1);
2127 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2128 find mustEquivalent(problem, interpretation, var_virtual1, var_SourceSubsystem);
2129 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2130 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2131 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2132 find mustEquivalent(problem, interpretation, var_virtual2, var_TargetSubsystem);
2133}
2134private pattern twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) {
2135 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target);
2136}
2137private pattern twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) {
2138 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target);
2139}
2140private pattern twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) {
2141 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target);
2142}
2143// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetBand
2144private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(
2145 problem:LogicProblem, interpretation:PartialInterpretation,
2146 var_SourceSubsystem)
2147{
2148 find interpretation(problem,interpretation);
2149 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2150 // SourceSubsystem is exported
2151 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2152 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2153 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2154 find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2155 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_SourceSubsystem,var_TargetSubsystem);
2156}
2157private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(
2158 problem:LogicProblem, interpretation:PartialInterpretation,
2159 var_SourceSubsystem)
2160{
2161 find interpretation(problem,interpretation);
2162 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2163 // SourceSubsystem is exported
2164 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2165 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2166 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2167 find mayEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2168 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_SourceSubsystem,var_TargetSubsystem);
2169}
2170private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(
2171 problem:LogicProblem, interpretation:PartialInterpretation,
2172 var_SourceSubsystem)
2173{
2174 find interpretation(problem,interpretation);
2175 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2176 // SourceSubsystem is exported
2177 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2178 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2179 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2180 find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2181 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_SourceSubsystem,var_TargetSubsystem);
2182}
2183// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries threeUCubeSatWithNonUhfCrossLink
2184private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(
2185 problem:LogicProblem, interpretation:PartialInterpretation,
2186 var_Sat)
2187{
2188 find interpretation(problem,interpretation);
2189 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
2190 // Sat is exported
2191 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat);
2192 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0);
2193 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2194 find mustEquivalent(problem, interpretation, var_virtual0, var_SourceComm);
2195 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm);
2196 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceComm);
2197 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceComm,var_virtual1);
2198 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2199 find mustEquivalent(problem, interpretation, var_virtual1, var_TargetComm);
2200 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2201 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2202 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2203 find mustEquivalent(problem, interpretation, var_virtual2, var_TargetComm);
2204 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target);
2205}
2206private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(
2207 problem:LogicProblem, interpretation:PartialInterpretation,
2208 var_Sat)
2209{
2210 find interpretation(problem,interpretation);
2211 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
2212 // Sat is exported
2213 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat);
2214 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0);
2215 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2216 find mayEquivalent(problem, interpretation, var_virtual0, var_SourceComm);
2217 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm);
2218 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceComm);
2219 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceComm,var_virtual1);
2220 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2221 find mayEquivalent(problem, interpretation, var_virtual1, var_TargetComm);
2222 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2223 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2224 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2225 find mayEquivalent(problem, interpretation, var_virtual2, var_TargetComm);
2226 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target);
2227}
2228private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(
2229 problem:LogicProblem, interpretation:PartialInterpretation,
2230 var_Sat)
2231{
2232 find interpretation(problem,interpretation);
2233 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
2234 // Sat is exported
2235 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat);
2236 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0);
2237 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2238 find mustEquivalent(problem, interpretation, var_virtual0, var_SourceComm);
2239 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm);
2240 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceComm);
2241 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceComm,var_virtual1);
2242 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2243 find mustEquivalent(problem, interpretation, var_virtual1, var_TargetComm);
2244 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2245 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2246 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2247 find mustEquivalent(problem, interpretation, var_virtual2, var_TargetComm);
2248 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target);
2249}
2250// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemBandUhf
2251private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(
2252 problem:LogicProblem, interpretation:PartialInterpretation,
2253 var_Comm)
2254{
2255 find interpretation(problem,interpretation);
2256 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2257 // Comm is exported
2258 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2259}
2260private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(
2261 problem:LogicProblem, interpretation:PartialInterpretation,
2262 var_Comm)
2263{
2264 find interpretation(problem,interpretation);
2265 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2266 // Comm is exported
2267 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2268}
2269private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(
2270 problem:LogicProblem, interpretation:PartialInterpretation,
2271 var_Comm)
2272{
2273 find interpretation(problem,interpretation);
2274 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2275 // Comm is exported
2276 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2277}
2278// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries groundStationNetwork
2279private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(
2280 problem:LogicProblem, interpretation:PartialInterpretation,
2281 var_Network)
2282{
2283 find interpretation(problem,interpretation);
2284 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2285 // Network is exported
2286 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2287}
2288private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(
2289 problem:LogicProblem, interpretation:PartialInterpretation,
2290 var_Network)
2291{
2292 find interpretation(problem,interpretation);
2293 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2294 // Network is exported
2295 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2296}
2297private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(
2298 problem:LogicProblem, interpretation:PartialInterpretation,
2299 var_Network)
2300{
2301 find interpretation(problem,interpretation);
2302 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2303 // Network is exported
2304 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2305}
2306// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries cubeSatWithKaAntenna
2307private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(
2308 problem:LogicProblem, interpretation:PartialInterpretation,
2309 var_Spacecraft)
2310{
2311 find interpretation(problem,interpretation);
2312 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2313 // Spacecraft is exported
2314 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft);
2315 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual0);
2316 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2317 find mustEquivalent(problem, interpretation, var_virtual0, var_Comm);
2318 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_Comm);
2319 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft);
2320}
2321private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(
2322 problem:LogicProblem, interpretation:PartialInterpretation,
2323 var_Spacecraft)
2324{
2325 find interpretation(problem,interpretation);
2326 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2327 // Spacecraft is exported
2328 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft);
2329 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual0);
2330 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2331 find mayEquivalent(problem, interpretation, var_virtual0, var_Comm);
2332 find mayInstanceOfKaCommSubsystem_class(problem,interpretation,var_Comm);
2333 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft);
2334}
2335private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(
2336 problem:LogicProblem, interpretation:PartialInterpretation,
2337 var_Spacecraft)
2338{
2339 find interpretation(problem,interpretation);
2340 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2341 // Spacecraft is exported
2342 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft);
2343 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual0);
2344 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2345 find mustEquivalent(problem, interpretation, var_virtual0, var_Comm);
2346 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_Comm);
2347 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft);
2348}
2349// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries smallSat
2350private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(
2351 problem:LogicProblem, interpretation:PartialInterpretation,
2352 var_Sat)
2353{
2354 find interpretation(problem,interpretation);
2355 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2356 // Sat is exported
2357 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2358}
2359private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(
2360 problem:LogicProblem, interpretation:PartialInterpretation,
2361 var_Sat)
2362{
2363 find interpretation(problem,interpretation);
2364 find mayInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2365 // Sat is exported
2366 find mayInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2367}
2368private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(
2369 problem:LogicProblem, interpretation:PartialInterpretation,
2370 var_Sat)
2371{
2372 find interpretation(problem,interpretation);
2373 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2374 // Sat is exported
2375 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2376}
2377
2378//////////
2379// 1.4 Containment Indexer
2380//////////
2381private pattern mustContains2(source: DefinedElement, target: DefinedElement) {
2382 find mustContains4(_,_,source,target);
2383}
2384
2385private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation,
2386 source: DefinedElement, target: DefinedElement)
2387 { find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,target); }or
2388
2389 { find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,target); }or
2390
2391 { find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,target); }or
2392
2393 { find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,target); }
2394
2395private pattern mustTransitiveContains(source,target) {
2396 find mustContains2+(source,target);
2397}
2398
2399//////////
2400// 2. Invalidation Indexers
2401//////////
2402// 2.1 Invalidated by WF Queries
2403//////////
2404pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem:LogicProblem, interpretation:PartialInterpretation,
2405 var_Element)
2406{
2407 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem,interpretation,var_Element);
2408}
2409pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem:LogicProblem, interpretation:PartialInterpretation,
2410 var_Mission)
2411{
2412 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem,interpretation,var_Mission);
2413}
2414pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2415 var_Spacecraft)
2416{
2417 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem,interpretation,var_Spacecraft);
2418}
2419pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2420 var_Spacecraft)
2421{
2422 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem,interpretation,var_Spacecraft);
2423}
2424pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem:LogicProblem, interpretation:PartialInterpretation,
2425 var_Element)
2426{
2427 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem,interpretation,var_Element);
2428}
2429pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem:LogicProblem, interpretation:PartialInterpretation,
2430 var_SourceSubsystem)
2431{
2432 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem,interpretation,var_SourceSubsystem);
2433}
2434pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem:LogicProblem, interpretation:PartialInterpretation,
2435 var_Sat)
2436{
2437 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem,interpretation,var_Sat);
2438}
2439pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem:LogicProblem, interpretation:PartialInterpretation,
2440 var_Spacecraft)
2441{
2442 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem,interpretation,var_Spacecraft);
2443}
2444
2445//////////
2446// 3. Unfinishedness Indexers
2447//////////
2448// 3.1 Unfinishedness Measured by Multiplicity
2449//////////
2450pattern unfinishedLowerMultiplicity_groundStationNetwork_reference_ConstellationMission(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
2451 find interpretation(problem,interpretation);
2452 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2453 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"groundStationNetwork reference ConstellationMission");
2454 find mustInstanceOfConstellationMission_class(problem,interpretation,object);
2455 numberOfExistingReferences == count find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,object,_);
2456 check(numberOfExistingReferences < 1);
2457 missingMultiplicity == eval(1-numberOfExistingReferences);
2458}
2459pattern unfinishedLowerMultiplicity_spacecraft_reference_ConstellationMission(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
2460 find interpretation(problem,interpretation);
2461 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2462 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"spacecraft reference ConstellationMission");
2463 find mustInstanceOfConstellationMission_class(problem,interpretation,object);
2464 numberOfExistingReferences == count find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,object,_);
2465 check(numberOfExistingReferences < 2);
2466 missingMultiplicity == eval(2-numberOfExistingReferences);
2467}
2468pattern unfinishedLowerMultiplicity_commSubsystem_reference_CommunicatingElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
2469 find interpretation(problem,interpretation);
2470 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2471 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"commSubsystem reference CommunicatingElement");
2472 find mustInstanceOfCommunicatingElement_class(problem,interpretation,object);
2473 numberOfExistingReferences == count find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,object,_);
2474 check(numberOfExistingReferences < 1);
2475 missingMultiplicity == eval(1-numberOfExistingReferences);
2476}
2477
2478//////////
2479// 3.2 Unfinishedness Measured by WF Queries
2480//////////
2481pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem:LogicProblem, interpretation:PartialInterpretation,
2482 var_Element)
2483{
2484 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem,interpretation,var_Element);
2485}
2486pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem:LogicProblem, interpretation:PartialInterpretation,
2487 var_Mission)
2488{
2489 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem,interpretation,var_Mission);
2490}
2491pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2492 var_Spacecraft)
2493{
2494 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem,interpretation,var_Spacecraft);
2495}
2496pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2497 var_Spacecraft)
2498{
2499 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem,interpretation,var_Spacecraft);
2500}
2501pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem:LogicProblem, interpretation:PartialInterpretation,
2502 var_Element)
2503{
2504 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem,interpretation,var_Element);
2505}
2506pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem:LogicProblem, interpretation:PartialInterpretation,
2507 var_SourceSubsystem)
2508{
2509 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem,interpretation,var_SourceSubsystem);
2510}
2511pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem:LogicProblem, interpretation:PartialInterpretation,
2512 var_Sat)
2513{
2514 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem,interpretation,var_Sat);
2515}
2516pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem:LogicProblem, interpretation:PartialInterpretation,
2517 var_Spacecraft)
2518{
2519 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem,interpretation,var_Spacecraft);
2520}
2521
2522//////////
2523// 4. Refinement Indexers
2524//////////
2525// 4.1 Object constructors
2526//////////
2527private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
2528{
2529 find interpretation(problem,interpretation);
2530 find mustInstanceOfCommunicatingElement_class(problem,interpretation,root);
2531 find mustExist(problem, interpretation, root);
2532}or{
2533 find interpretation(problem,interpretation);
2534 find mustInstanceOfConstellationMission_class(problem,interpretation,root);
2535 find mustExist(problem, interpretation, root);
2536}or{
2537 find interpretation(problem,interpretation);
2538 find mustInstanceOfInterferometryPayload_class(problem,interpretation,root);
2539 find mustExist(problem, interpretation, root);
2540}or{
2541 find interpretation(problem,interpretation);
2542 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,root);
2543 find mustExist(problem, interpretation, root);
2544}or{
2545 find interpretation(problem,interpretation);
2546 find mustInstanceOfCommSubsystem_class(problem,interpretation,root);
2547 find mustExist(problem, interpretation, root);
2548}or{
2549 find interpretation(problem,interpretation);
2550 find mustInstanceOfPayload_class(problem,interpretation,root);
2551 find mustExist(problem, interpretation, root);
2552}or{
2553 find interpretation(problem,interpretation);
2554 find mustInstanceOfCubeSat6U_class(problem,interpretation,root);
2555 find mustExist(problem, interpretation, root);
2556}or{
2557 find interpretation(problem,interpretation);
2558 find mustInstanceOfXCommSubsystem_class(problem,interpretation,root);
2559 find mustExist(problem, interpretation, root);
2560}or{
2561 find interpretation(problem,interpretation);
2562 find mustInstanceOfCubeSat3U_class(problem,interpretation,root);
2563 find mustExist(problem, interpretation, root);
2564}or{
2565 find interpretation(problem,interpretation);
2566 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,root);
2567 find mustExist(problem, interpretation, root);
2568}or{
2569 find interpretation(problem,interpretation);
2570 find mustInstanceOfSpacecraft_class(problem,interpretation,root);
2571 find mustExist(problem, interpretation, root);
2572}or{
2573 find interpretation(problem,interpretation);
2574 find mustInstanceOfInterferometryMission_class(problem,interpretation,root);
2575 find mustExist(problem, interpretation, root);
2576}or{
2577 find interpretation(problem,interpretation);
2578 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,root);
2579 find mustExist(problem, interpretation, root);
2580}or{
2581 find interpretation(problem,interpretation);
2582 find mustInstanceOfSmallSat_class(problem,interpretation,root);
2583 find mustExist(problem, interpretation, root);
2584}or{
2585 find interpretation(problem,interpretation);
2586 find mustInstanceOfCubeSat_class(problem,interpretation,root);
2587 find mustExist(problem, interpretation, root);
2588}or{
2589 find interpretation(problem,interpretation);
2590 find mustInstanceOfConstellationMission_class_DefinedPart(problem,interpretation,root);
2591 find mustExist(problem, interpretation, root);
2592}or{
2593 find interpretation(problem,interpretation);
2594 find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,root);
2595 find mustExist(problem, interpretation, root);
2596}or{
2597 find interpretation(problem,interpretation);
2598 find mustInstanceOfInterferometryMission_class_DefinedPart(problem,interpretation,root);
2599 find mustExist(problem, interpretation, root);
2600}or{
2601 find interpretation(problem,interpretation);
2602 find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,root);
2603 find mustExist(problem, interpretation, root);
2604}or{
2605 find interpretation(problem,interpretation);
2606 find mustInstanceOfCommunicatingElement_class_DefinedPart(problem,interpretation,root);
2607 find mustExist(problem, interpretation, root);
2608}or{
2609 find interpretation(problem,interpretation);
2610 find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,root);
2611 find mustExist(problem, interpretation, root);
2612}or{
2613 find interpretation(problem,interpretation);
2614 find mustInstanceOfGroundStationNetwork_class_DefinedPart(problem,interpretation,root);
2615 find mustExist(problem, interpretation, root);
2616}or{
2617 find interpretation(problem,interpretation);
2618 find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,root);
2619 find mustExist(problem, interpretation, root);
2620}or{
2621 find interpretation(problem,interpretation);
2622 find mustInstanceOfCommSubsystem_class_DefinedPart(problem,interpretation,root);
2623 find mustExist(problem, interpretation, root);
2624}or{
2625 find interpretation(problem,interpretation);
2626 find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,root);
2627 find mustExist(problem, interpretation, root);
2628}or{
2629 find interpretation(problem,interpretation);
2630 find mustInstanceOfXCommSubsystem_class_DefinedPart(problem,interpretation,root);
2631 find mustExist(problem, interpretation, root);
2632}or{
2633 find interpretation(problem,interpretation);
2634 find mustInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,root);
2635 find mustExist(problem, interpretation, root);
2636}or{
2637 find interpretation(problem,interpretation);
2638 find mustInstanceOfKaCommSubsystem_class_DefinedPart(problem,interpretation,root);
2639 find mustExist(problem, interpretation, root);
2640}or{
2641 find interpretation(problem,interpretation);
2642 find mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,root);
2643 find mustExist(problem, interpretation, root);
2644}
2645pattern createObject_InterferometryPayload_class_by_payload_reference_Spacecraft(
2646 problem:LogicProblem, interpretation:PartialInterpretation,
2647 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2648 container:DefinedElement)
2649{
2650 find interpretation(problem,interpretation);
2651 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2652 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryPayload class");
2653 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2654 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"payload reference Spacecraft");
2655 find mustInstanceOfSpacecraft_class(problem,interpretation,container);
2656 find mayInstanceOfInterferometryPayload_class(problem,interpretation,newObject);
2657 find mayInRelationpayload_reference_Spacecraft(problem,interpretation,container,newObject);
2658 find mustExist(problem, interpretation, container);
2659 neg find mustExist(problem, interpretation, newObject);
2660}
2661pattern createObject_InterferometryPayload_class(
2662 problem:LogicProblem, interpretation:PartialInterpretation,
2663 typeInterpretation:PartialComplexTypeInterpretation)
2664{
2665 find interpretation(problem,interpretation);
2666 neg find hasElementInContainment(problem,interpretation);
2667 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2668 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryPayload class");
2669 find mayInstanceOfInterferometryPayload_class(problem,interpretation,newObject);
2670 find mayExist(problem, interpretation, newObject);
2671 neg find mustExist(problem, interpretation, newObject);
2672}
2673pattern createObject_CubeSat6U_class_by_spacecraft_reference_ConstellationMission(
2674 problem:LogicProblem, interpretation:PartialInterpretation,
2675 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2676 container:DefinedElement)
2677{
2678 find interpretation(problem,interpretation);
2679 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2680 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat6U class");
2681 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2682 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission");
2683 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2684 find mayInstanceOfCubeSat6U_class(problem,interpretation,newObject);
2685 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject);
2686 find mustExist(problem, interpretation, container);
2687 neg find mustExist(problem, interpretation, newObject);
2688}
2689pattern createObject_CubeSat6U_class(
2690 problem:LogicProblem, interpretation:PartialInterpretation,
2691 typeInterpretation:PartialComplexTypeInterpretation)
2692{
2693 find interpretation(problem,interpretation);
2694 neg find hasElementInContainment(problem,interpretation);
2695 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2696 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat6U class");
2697 find mayInstanceOfCubeSat6U_class(problem,interpretation,newObject);
2698 find mayExist(problem, interpretation, newObject);
2699 neg find mustExist(problem, interpretation, newObject);
2700}
2701pattern createObject_GroundStationNetwork_class_UndefinedPart_by_groundStationNetwork_reference_ConstellationMission(
2702 problem:LogicProblem, interpretation:PartialInterpretation,
2703 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2704 container:DefinedElement)
2705{
2706 find interpretation(problem,interpretation);
2707 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2708 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"GroundStationNetwork class UndefinedPart");
2709 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2710 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"groundStationNetwork reference ConstellationMission");
2711 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2712 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,newObject);
2713 find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,container,newObject);
2714 find mustExist(problem, interpretation, container);
2715 neg find mustExist(problem, interpretation, newObject);
2716}
2717pattern createObject_GroundStationNetwork_class_UndefinedPart(
2718 problem:LogicProblem, interpretation:PartialInterpretation,
2719 typeInterpretation:PartialComplexTypeInterpretation)
2720{
2721 find interpretation(problem,interpretation);
2722 neg find hasElementInContainment(problem,interpretation);
2723 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2724 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"GroundStationNetwork class UndefinedPart");
2725 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,newObject);
2726 find mayExist(problem, interpretation, newObject);
2727 neg find mustExist(problem, interpretation, newObject);
2728}
2729pattern createObject_UHFCommSubsystem_class_by_commSubsystem_reference_CommunicatingElement(
2730 problem:LogicProblem, interpretation:PartialInterpretation,
2731 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2732 container:DefinedElement)
2733{
2734 find interpretation(problem,interpretation);
2735 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2736 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"UHFCommSubsystem class");
2737 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2738 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"commSubsystem reference CommunicatingElement");
2739 find mustInstanceOfCommunicatingElement_class(problem,interpretation,container);
2740 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,newObject);
2741 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,container,newObject);
2742 find mustExist(problem, interpretation, container);
2743 neg find mustExist(problem, interpretation, newObject);
2744}
2745pattern createObject_UHFCommSubsystem_class(
2746 problem:LogicProblem, interpretation:PartialInterpretation,
2747 typeInterpretation:PartialComplexTypeInterpretation)
2748{
2749 find interpretation(problem,interpretation);
2750 neg find hasElementInContainment(problem,interpretation);
2751 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2752 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"UHFCommSubsystem class");
2753 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,newObject);
2754 find mayExist(problem, interpretation, newObject);
2755 neg find mustExist(problem, interpretation, newObject);
2756}
2757pattern createObject_SmallSat_class_by_spacecraft_reference_ConstellationMission(
2758 problem:LogicProblem, interpretation:PartialInterpretation,
2759 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2760 container:DefinedElement)
2761{
2762 find interpretation(problem,interpretation);
2763 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2764 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"SmallSat class");
2765 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2766 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission");
2767 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2768 find mayInstanceOfSmallSat_class(problem,interpretation,newObject);
2769 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject);
2770 find mustExist(problem, interpretation, container);
2771 neg find mustExist(problem, interpretation, newObject);
2772}
2773pattern createObject_SmallSat_class(
2774 problem:LogicProblem, interpretation:PartialInterpretation,
2775 typeInterpretation:PartialComplexTypeInterpretation)
2776{
2777 find interpretation(problem,interpretation);
2778 neg find hasElementInContainment(problem,interpretation);
2779 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2780 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"SmallSat class");
2781 find mayInstanceOfSmallSat_class(problem,interpretation,newObject);
2782 find mayExist(problem, interpretation, newObject);
2783 neg find mustExist(problem, interpretation, newObject);
2784}
2785pattern createObject_KaCommSubsystem_class_UndefinedPart_by_commSubsystem_reference_CommunicatingElement(
2786 problem:LogicProblem, interpretation:PartialInterpretation,
2787 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2788 container:DefinedElement)
2789{
2790 find interpretation(problem,interpretation);
2791 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2792 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"KaCommSubsystem class UndefinedPart");
2793 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2794 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"commSubsystem reference CommunicatingElement");
2795 find mustInstanceOfCommunicatingElement_class(problem,interpretation,container);
2796 find mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2797 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,container,newObject);
2798 find mustExist(problem, interpretation, container);
2799 neg find mustExist(problem, interpretation, newObject);
2800}
2801pattern createObject_KaCommSubsystem_class_UndefinedPart(
2802 problem:LogicProblem, interpretation:PartialInterpretation,
2803 typeInterpretation:PartialComplexTypeInterpretation)
2804{
2805 find interpretation(problem,interpretation);
2806 neg find hasElementInContainment(problem,interpretation);
2807 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2808 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"KaCommSubsystem class UndefinedPart");
2809 find mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2810 find mayExist(problem, interpretation, newObject);
2811 neg find mustExist(problem, interpretation, newObject);
2812}
2813pattern createObject_CubeSat3U_class_by_spacecraft_reference_ConstellationMission(
2814 problem:LogicProblem, interpretation:PartialInterpretation,
2815 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2816 container:DefinedElement)
2817{
2818 find interpretation(problem,interpretation);
2819 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2820 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat3U class");
2821 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2822 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission");
2823 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2824 find mayInstanceOfCubeSat3U_class(problem,interpretation,newObject);
2825 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject);
2826 find mustExist(problem, interpretation, container);
2827 neg find mustExist(problem, interpretation, newObject);
2828}
2829pattern createObject_CubeSat3U_class(
2830 problem:LogicProblem, interpretation:PartialInterpretation,
2831 typeInterpretation:PartialComplexTypeInterpretation)
2832{
2833 find interpretation(problem,interpretation);
2834 neg find hasElementInContainment(problem,interpretation);
2835 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2836 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat3U class");
2837 find mayInstanceOfCubeSat3U_class(problem,interpretation,newObject);
2838 find mayExist(problem, interpretation, newObject);
2839 neg find mustExist(problem, interpretation, newObject);
2840}
2841pattern createObject_XCommSubsystem_class_UndefinedPart_by_commSubsystem_reference_CommunicatingElement(
2842 problem:LogicProblem, interpretation:PartialInterpretation,
2843 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2844 container:DefinedElement)
2845{
2846 find interpretation(problem,interpretation);
2847 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2848 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"XCommSubsystem class UndefinedPart");
2849 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2850 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"commSubsystem reference CommunicatingElement");
2851 find mustInstanceOfCommunicatingElement_class(problem,interpretation,container);
2852 find mayInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2853 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,container,newObject);
2854 find mustExist(problem, interpretation, container);
2855 neg find mustExist(problem, interpretation, newObject);
2856}
2857pattern createObject_XCommSubsystem_class_UndefinedPart(
2858 problem:LogicProblem, interpretation:PartialInterpretation,
2859 typeInterpretation:PartialComplexTypeInterpretation)
2860{
2861 find interpretation(problem,interpretation);
2862 neg find hasElementInContainment(problem,interpretation);
2863 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2864 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"XCommSubsystem class UndefinedPart");
2865 find mayInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2866 find mayExist(problem, interpretation, newObject);
2867 neg find mustExist(problem, interpretation, newObject);
2868}
2869pattern createObject_InterferometryMission_class_UndefinedPart(
2870 problem:LogicProblem, interpretation:PartialInterpretation,
2871 typeInterpretation:PartialComplexTypeInterpretation)
2872{
2873 find interpretation(problem,interpretation);
2874 neg find hasElementInContainment(problem,interpretation);
2875 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2876 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryMission class UndefinedPart");
2877 find mayInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,newObject);
2878 find mayExist(problem, interpretation, newObject);
2879 neg find mustExist(problem, interpretation, newObject);
2880}
2881
2882//////////
2883// 4.2 Type refinement
2884//////////
2885pattern refineTypeTo_InterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2886 find interpretation(problem,interpretation);
2887 PartialInterpretation.newElements(interpretation,element);
2888 find mayInstanceOfInterferometryPayload_class(problem,interpretation,element);
2889 neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element);
2890 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2891 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2892 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2893}
2894pattern refineTypeTo_CubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2895 find interpretation(problem,interpretation);
2896 PartialInterpretation.newElements(interpretation,element);
2897 find mayInstanceOfCubeSat6U_class(problem,interpretation,element);
2898 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2899 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
2900 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
2901 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
2902 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2903 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
2904 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2905}
2906pattern refineTypeTo_GroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2907 find interpretation(problem,interpretation);
2908 PartialInterpretation.newElements(interpretation,element);
2909 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element);
2910 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2911 neg find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element);
2912 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2913 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
2914 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2915}
2916pattern refineTypeTo_UHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2917 find interpretation(problem,interpretation);
2918 PartialInterpretation.newElements(interpretation,element);
2919 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
2920 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2921 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2922 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
2923 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
2924 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2925 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
2926}
2927pattern refineTypeTo_SmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2928 find interpretation(problem,interpretation);
2929 PartialInterpretation.newElements(interpretation,element);
2930 find mayInstanceOfSmallSat_class(problem,interpretation,element);
2931 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2932 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
2933 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
2934 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2935 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
2936 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2937}
2938pattern refineTypeTo_KaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2939 find interpretation(problem,interpretation);
2940 PartialInterpretation.newElements(interpretation,element);
2941 find mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2942 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2943 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2944 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
2945 neg find mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2946 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2947 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
2948}
2949pattern refineTypeTo_CubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2950 find interpretation(problem,interpretation);
2951 PartialInterpretation.newElements(interpretation,element);
2952 find mayInstanceOfCubeSat3U_class(problem,interpretation,element);
2953 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2954 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
2955 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
2956 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
2957 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2958 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
2959 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2960}
2961pattern refineTypeTo_XCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2962 find interpretation(problem,interpretation);
2963 PartialInterpretation.newElements(interpretation,element);
2964 find mayInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2965 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2966 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2967 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
2968 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
2969 neg find mustInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2970 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2971}
2972pattern refineTypeTo_InterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2973 find interpretation(problem,interpretation);
2974 PartialInterpretation.newElements(interpretation,element);
2975 find mayInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element);
2976 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2977 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2978 neg find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element);
2979 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2980}
2981
2982//////////
2983// 4.3 Relation refinement
2984//////////
2985pattern refineRelation_target_reference_CommSubsystem(
2986 problem:LogicProblem, interpretation:PartialInterpretation,
2987 relationIterpretation:PartialRelationInterpretation,
2988 from: DefinedElement, to: DefinedElement)
2989{
2990 find interpretation(problem,interpretation);
2991 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2992 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"target reference CommSubsystem");
2993 find mustExist(problem, interpretation, from);
2994 find mustExist(problem, interpretation, to);
2995 find mustInstanceOfCommSubsystem_class(problem,interpretation,from);
2996 find mustInstanceOfCommSubsystem_class(problem,interpretation,to);
2997 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,from,to);
2998 neg find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,from,to);
2999}
3000
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run3/init.partialmodel b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run3/init.partialmodel
deleted file mode 100644
index 01b90968..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run3/init.partialmodel
+++ /dev/null
@@ -1,147 +0,0 @@
1<?xml version="1.0" encoding="ASCII"?>
2<partialinterpretation:PartialInterpretation xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" xmlns:partialinterpretation="http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" minNewElements="32" maxNewElements="64">
3 <problem href="dummy.dummyext#//@problemConainer"/>
4 <partialrelationinterpretation>
5 <interpretationOf href="dummy.dummyext#//@problemConainer/@relations.0"/>
6 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
7 <param1 href="dummy.dummyext#//@problemConainer/@elements.0"/>
8 <param2 href="dummy.dummyext#//@problemConainer/@elements.1"/>
9 </relationlinks>
10 <param1 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.0/@parameters.0"/>
11 <param2 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.0/@parameters.1"/>
12 </partialrelationinterpretation>
13 <partialrelationinterpretation>
14 <interpretationOf href="dummy.dummyext#//@problemConainer/@relations.1"/>
15 <param1 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.1/@parameters.0"/>
16 <param2 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.1/@parameters.1"/>
17 </partialrelationinterpretation>
18 <partialrelationinterpretation>
19 <interpretationOf href="dummy.dummyext#//@problemConainer/@relations.2"/>
20 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
21 <param1 href="dummy.dummyext#//@problemConainer/@elements.1"/>
22 <param2 href="dummy.dummyext#//@problemConainer/@elements.2"/>
23 </relationlinks>
24 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
25 <param1 href="dummy.dummyext#//@problemConainer/@elements.1"/>
26 <param2 href="dummy.dummyext#//@problemConainer/@elements.3"/>
27 </relationlinks>
28 <param1 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.2/@parameters.0"/>
29 <param2 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.2/@parameters.1"/>
30 </partialrelationinterpretation>
31 <partialrelationinterpretation>
32 <interpretationOf href="dummy.dummyext#//@problemConainer/@relations.3"/>
33 <param1 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.3/@parameters.0"/>
34 <param2 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.3/@parameters.1"/>
35 </partialrelationinterpretation>
36 <partialrelationinterpretation>
37 <interpretationOf href="dummy.dummyext#//@problemConainer/@relations.4"/>
38 <param1 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.4/@parameters.0"/>
39 <param2 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.4/@parameters.1"/>
40 </partialrelationinterpretation>
41 <newElements xsi:type="partialinterpretation:BooleanElement" name="true" valueSet="true" value="true"/>
42 <newElements xsi:type="partialinterpretation:BooleanElement" name="false" valueSet="true"/>
43 <partialtypeinterpratation xsi:type="partialinterpretation:PartialBooleanInterpretation" elements="//@newElements.0 //@newElements.1"/>
44 <partialtypeinterpratation xsi:type="partialinterpretation:PartialIntegerInterpretation" elements="//@openWorldElements.0"/>
45 <partialtypeinterpratation xsi:type="partialinterpretation:PartialRealInterpretation" elements="//@openWorldElements.1"/>
46 <partialtypeinterpratation xsi:type="partialinterpretation:PartialStringInterpretation" elements="//@openWorldElements.2"/>
47 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.0">
48 <elements href="dummy.dummyext#//@problemConainer/@elements.0"/>
49 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.0"/>
50 </partialtypeinterpratation>
51 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.1" supertypeInterpretation="//@partialtypeinterpratation.4">
52 <elements href="dummy.dummyext#//@problemConainer/@elements.0"/>
53 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.1"/>
54 </partialtypeinterpratation>
55 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.2">
56 <elements href="dummy.dummyext#//@problemConainer/@elements.1"/>
57 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.2"/>
58 </partialtypeinterpratation>
59 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.3" supertypeInterpretation="//@partialtypeinterpratation.6">
60 <elements href="dummy.dummyext#//@problemConainer/@elements.1"/>
61 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.3"/>
62 </partialtypeinterpratation>
63 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.4" supertypeInterpretation="//@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
64 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.4"/>
65 </partialtypeinterpratation>
66 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.5">
67 <elements href="dummy.dummyext#//@problemConainer/@elements.2"/>
68 <elements href="dummy.dummyext#//@problemConainer/@elements.3"/>
69 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.5"/>
70 </partialtypeinterpratation>
71 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.6">
72 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.6"/>
73 </partialtypeinterpratation>
74 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.7" supertypeInterpretation="//@partialtypeinterpratation.10">
75 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.7"/>
76 </partialtypeinterpratation>
77 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.8" supertypeInterpretation="//@partialtypeinterpratation.15 //@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
78 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.8"/>
79 </partialtypeinterpratation>
80 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.9" supertypeInterpretation="//@partialtypeinterpratation.15 //@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
81 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.9"/>
82 </partialtypeinterpratation>
83 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.10" supertypeInterpretation="//@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
84 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.10"/>
85 </partialtypeinterpratation>
86 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.11" supertypeInterpretation="//@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
87 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.11"/>
88 </partialtypeinterpratation>
89 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.12" supertypeInterpretation="//@partialtypeinterpratation.9 //@partialtypeinterpratation.23">
90 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.12"/>
91 </partialtypeinterpratation>
92 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.13" supertypeInterpretation="//@partialtypeinterpratation.9">
93 <elements href="dummy.dummyext#//@problemConainer/@elements.2"/>
94 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.13"/>
95 </partialtypeinterpratation>
96 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.14" supertypeInterpretation="//@partialtypeinterpratation.9">
97 <elements href="dummy.dummyext#//@problemConainer/@elements.3"/>
98 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.14"/>
99 </partialtypeinterpratation>
100 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.15" supertypeInterpretation="//@partialtypeinterpratation.4">
101 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.16"/>
102 </partialtypeinterpratation>
103 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.16" supertypeInterpretation="//@partialtypeinterpratation.5 //@partialtypeinterpratation.4 //@partialtypeinterpratation.19">
104 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.18"/>
105 </partialtypeinterpratation>
106 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.17" supertypeInterpretation="//@partialtypeinterpratation.6">
107 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.20"/>
108 </partialtypeinterpratation>
109 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.18" supertypeInterpretation="//@partialtypeinterpratation.7 //@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
110 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.22"/>
111 </partialtypeinterpratation>
112 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.19" supertypeInterpretation="//@partialtypeinterpratation.9">
113 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.24"/>
114 </partialtypeinterpratation>
115 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.20" supertypeInterpretation="//@partialtypeinterpratation.17 //@partialtypeinterpratation.9 //@partialtypeinterpratation.23">
116 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.26"/>
117 </partialtypeinterpratation>
118 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.21" supertypeInterpretation="//@partialtypeinterpratation.18 //@partialtypeinterpratation.9 //@partialtypeinterpratation.23">
119 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.28"/>
120 </partialtypeinterpratation>
121 <openWorldElements xsi:type="partialinterpretation:IntegerElement" name="New Integers"/>
122 <openWorldElements xsi:type="partialinterpretation:RealElement" name="New Reals"/>
123 <openWorldElements xsi:type="partialinterpretation:StringElement" name="New Strings"/>
124 <openWorldElements name="New Objects"/>
125 <scopes targetTypeInterpretation="//@partialtypeinterpratation.4"/>
126 <scopes targetTypeInterpretation="//@partialtypeinterpratation.5"/>
127 <scopes targetTypeInterpretation="//@partialtypeinterpratation.6"/>
128 <scopes targetTypeInterpretation="//@partialtypeinterpratation.7"/>
129 <scopes targetTypeInterpretation="//@partialtypeinterpratation.8"/>
130 <scopes targetTypeInterpretation="//@partialtypeinterpratation.9"/>
131 <scopes targetTypeInterpretation="//@partialtypeinterpratation.10"/>
132 <scopes targetTypeInterpretation="//@partialtypeinterpratation.11"/>
133 <scopes targetTypeInterpretation="//@partialtypeinterpratation.12"/>
134 <scopes targetTypeInterpretation="//@partialtypeinterpratation.13"/>
135 <scopes targetTypeInterpretation="//@partialtypeinterpratation.14"/>
136 <scopes targetTypeInterpretation="//@partialtypeinterpratation.15"/>
137 <scopes targetTypeInterpretation="//@partialtypeinterpratation.16"/>
138 <scopes targetTypeInterpretation="//@partialtypeinterpratation.17"/>
139 <scopes targetTypeInterpretation="//@partialtypeinterpratation.18"/>
140 <scopes targetTypeInterpretation="//@partialtypeinterpratation.19"/>
141 <scopes targetTypeInterpretation="//@partialtypeinterpratation.20"/>
142 <scopes targetTypeInterpretation="//@partialtypeinterpratation.21"/>
143 <scopes targetTypeInterpretation="//@partialtypeinterpratation.22"/>
144 <scopes targetTypeInterpretation="//@partialtypeinterpratation.23"/>
145 <scopes targetTypeInterpretation="//@partialtypeinterpratation.24"/>
146 <scopes targetTypeInterpretation="//@partialtypeinterpratation.25"/>
147</partialinterpretation:PartialInterpretation>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run4/generated3valued.vql_deactivated b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run4/generated3valued.vql_deactivated
deleted file mode 100644
index c96a951c..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run4/generated3valued.vql_deactivated
+++ /dev/null
@@ -1,3000 +0,0 @@
1import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage"
2import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem"
3import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language"
4
5//////////
6// 0. Util
7//////////
8private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) {
9 PartialInterpretation.problem(interpretation,problem);
10}
11
12/////////////////////////
13// 0.1 Existence
14/////////////////////////
15private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
16 find interpretation(problem,interpretation);
17 LogicProblem.elements(problem,element);
18} or {
19 find interpretation(problem,interpretation);
20 PartialInterpretation.newElements(interpretation,element);
21}
22
23private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
24 find mustExist(problem,interpretation,element);
25} or {
26 find interpretation(problem,interpretation);
27 neg find elementCloseWorld(element);
28 PartialInterpretation.openWorldElements(interpretation,element);
29}
30
31private pattern elementCloseWorld(element:DefinedElement) {
32 PartialInterpretation.openWorldElements(i,element);
33 PartialInterpretation.maxNewElements(i,0);
34} or {
35 Scope.targetTypeInterpretation(scope,interpretation);
36 PartialTypeInterpratation.elements(interpretation,element);
37 Scope.maxNewElements(scope,0);
38}
39
40////////////////////////
41// 0.2 Equivalence
42////////////////////////
43pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) {
44 find mayExist(problem,interpretation,a);
45 find mayExist(problem,interpretation,b);
46 a == b;
47}
48pattern mustEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) {
49 find mustExist(problem,interpretation,a);
50 find mustExist(problem,interpretation,b);
51 a == b;
52}
53
54////////////////////////
55// 0.3 Required Patterns by TypeIndexer
56////////////////////////
57private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) {
58 find interpretation(problem,interpretation);
59 LogicProblem.types(problem,type);
60 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
61 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
62}
63
64private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) {
65 find interpretation(problem,interpretation);
66 LogicProblem.types(problem,type);
67 TypeDefinition.elements(type,element);
68} or {
69 find interpretation(problem,interpretation);
70 find typeInterpretation(problem,interpretation,type,typeInterpretation);
71 PartialComplexTypeInterpretation.elements(typeInterpretation,element);
72}
73
74private pattern isPrimitive(element: PrimitiveElement) {
75 PrimitiveElement(element);
76}
77
78//////////
79// 1. Problem-Specific Base Indexers
80//////////
81// 1.1 Type Indexers
82//////////
83// 1.1.1 primitive Type Indexers
84//////////
85
86//////////
87// 1.1.2 domain-specific Type Indexers
88//////////
89/**
90 * An element must be an instance of type "ConstellationMission class".
91 */
92private pattern mustInstanceOfConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
93 Type.name(type,"ConstellationMission class");
94 find directInstanceOf(problem,interpretation,element,type);
95}
96private pattern scopeDisallowsNewConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation) {
97 find interpretation(problem,interpretation);
98 PartialInterpretation.scopes(interpretation,scope);
99 Scope.targetTypeInterpretation(scope,typeInterpretation);
100 Scope.maxNewElements(scope,0);
101 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
102 Type.name(type,"ConstellationMission class");
103}
104
105/**
106 * An element may be an instance of type "ConstellationMission class".
107 */
108private pattern mayInstanceOfConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
109{
110 find interpretation(problem,interpretation);
111 PartialInterpretation.newElements(interpretation,element);
112 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
113 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
114 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
115 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
116 neg find mustInstanceOfPayload_class(problem,interpretation,element);
117 neg find scopeDisallowsNewConstellationMission_class(problem, interpretation);
118 neg find isPrimitive(element);
119} or {
120 find interpretation(problem,interpretation);
121 PartialInterpretation.openWorldElements(interpretation,element);
122 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
123 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
124 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
125 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
126 neg find mustInstanceOfPayload_class(problem,interpretation,element);
127 neg find scopeDisallowsNewConstellationMission_class(problem, interpretation);
128 neg find isPrimitive(element);
129} or
130{ find mustInstanceOfConstellationMission_class(problem,interpretation,element); }
131/**
132 * An element must be an instance of type "InterferometryMission class".
133 */
134private pattern mustInstanceOfInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
135 Type.name(type,"InterferometryMission class");
136 find directInstanceOf(problem,interpretation,element,type);
137}
138private pattern scopeDisallowsNewInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation) {
139 find interpretation(problem,interpretation);
140 PartialInterpretation.scopes(interpretation,scope);
141 Scope.targetTypeInterpretation(scope,typeInterpretation);
142 Scope.maxNewElements(scope,0);
143 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
144 Type.name(type,"InterferometryMission class");
145}
146
147/**
148 * An element may be an instance of type "InterferometryMission class".
149 */
150private pattern mayInstanceOfInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
151{
152 find interpretation(problem,interpretation);
153 PartialInterpretation.newElements(interpretation,element);
154 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
155 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
156 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
157 neg find mustInstanceOfPayload_class(problem,interpretation,element);
158 neg find scopeDisallowsNewInterferometryMission_class(problem, interpretation);
159 neg find isPrimitive(element);
160} or {
161 find interpretation(problem,interpretation);
162 PartialInterpretation.openWorldElements(interpretation,element);
163 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
164 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
165 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
166 neg find mustInstanceOfPayload_class(problem,interpretation,element);
167 neg find scopeDisallowsNewInterferometryMission_class(problem, interpretation);
168 neg find isPrimitive(element);
169} or
170{ find mustInstanceOfInterferometryMission_class(problem,interpretation,element); }
171/**
172 * An element must be an instance of type "CommunicatingElement class".
173 */
174private pattern mustInstanceOfCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
175 Type.name(type,"CommunicatingElement class");
176 find directInstanceOf(problem,interpretation,element,type);
177}
178private pattern scopeDisallowsNewCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
179 find interpretation(problem,interpretation);
180 PartialInterpretation.scopes(interpretation,scope);
181 Scope.targetTypeInterpretation(scope,typeInterpretation);
182 Scope.maxNewElements(scope,0);
183 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
184 Type.name(type,"CommunicatingElement class");
185}
186
187/**
188 * An element may be an instance of type "CommunicatingElement class".
189 */
190private pattern mayInstanceOfCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
191{
192 find interpretation(problem,interpretation);
193 PartialInterpretation.newElements(interpretation,element);
194 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
195 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
196 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
197 neg find mustInstanceOfPayload_class(problem,interpretation,element);
198 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
199 neg find scopeDisallowsNewCommunicatingElement_class(problem, interpretation);
200 neg find isPrimitive(element);
201} or {
202 find interpretation(problem,interpretation);
203 PartialInterpretation.openWorldElements(interpretation,element);
204 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
205 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
206 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
207 neg find mustInstanceOfPayload_class(problem,interpretation,element);
208 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
209 neg find scopeDisallowsNewCommunicatingElement_class(problem, interpretation);
210 neg find isPrimitive(element);
211} or
212{ find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); }
213/**
214 * An element must be an instance of type "GroundStationNetwork class".
215 */
216private pattern mustInstanceOfGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
217 Type.name(type,"GroundStationNetwork class");
218 find directInstanceOf(problem,interpretation,element,type);
219}
220private pattern scopeDisallowsNewGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation) {
221 find interpretation(problem,interpretation);
222 PartialInterpretation.scopes(interpretation,scope);
223 Scope.targetTypeInterpretation(scope,typeInterpretation);
224 Scope.maxNewElements(scope,0);
225 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
226 Type.name(type,"GroundStationNetwork class");
227}
228
229/**
230 * An element may be an instance of type "GroundStationNetwork class".
231 */
232private pattern mayInstanceOfGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
233{
234 find interpretation(problem,interpretation);
235 PartialInterpretation.newElements(interpretation,element);
236 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
237 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
238 neg find mustInstanceOfPayload_class(problem,interpretation,element);
239 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
240 neg find scopeDisallowsNewGroundStationNetwork_class(problem, interpretation);
241 neg find isPrimitive(element);
242} or {
243 find interpretation(problem,interpretation);
244 PartialInterpretation.openWorldElements(interpretation,element);
245 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
246 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
247 neg find mustInstanceOfPayload_class(problem,interpretation,element);
248 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
249 neg find scopeDisallowsNewGroundStationNetwork_class(problem, interpretation);
250 neg find isPrimitive(element);
251} or
252{ find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); }
253/**
254 * An element must be an instance of type "Spacecraft class".
255 */
256private pattern mustInstanceOfSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
257 Type.name(type,"Spacecraft class");
258 find directInstanceOf(problem,interpretation,element,type);
259}
260private pattern scopeDisallowsNewSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation) {
261 find interpretation(problem,interpretation);
262 PartialInterpretation.scopes(interpretation,scope);
263 Scope.targetTypeInterpretation(scope,typeInterpretation);
264 Scope.maxNewElements(scope,0);
265 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
266 Type.name(type,"Spacecraft class");
267}
268
269/**
270 * An element may be an instance of type "Spacecraft class".
271 */
272private pattern mayInstanceOfSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
273{
274 find interpretation(problem,interpretation);
275 PartialInterpretation.newElements(interpretation,element);
276 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
277 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
278 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
279 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
280 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
281 neg find mustInstanceOfPayload_class(problem,interpretation,element);
282 neg find scopeDisallowsNewSpacecraft_class(problem, interpretation);
283 neg find isPrimitive(element);
284} or {
285 find interpretation(problem,interpretation);
286 PartialInterpretation.openWorldElements(interpretation,element);
287 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
288 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
289 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
290 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
291 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
292 neg find mustInstanceOfPayload_class(problem,interpretation,element);
293 neg find scopeDisallowsNewSpacecraft_class(problem, interpretation);
294 neg find isPrimitive(element);
295} or
296{ find mustInstanceOfSpacecraft_class(problem,interpretation,element); }
297/**
298 * An element must be an instance of type "CommSubsystem class".
299 */
300private pattern mustInstanceOfCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
301 Type.name(type,"CommSubsystem class");
302 find directInstanceOf(problem,interpretation,element,type);
303}
304private pattern scopeDisallowsNewCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) {
305 find interpretation(problem,interpretation);
306 PartialInterpretation.scopes(interpretation,scope);
307 Scope.targetTypeInterpretation(scope,typeInterpretation);
308 Scope.maxNewElements(scope,0);
309 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
310 Type.name(type,"CommSubsystem class");
311}
312
313/**
314 * An element may be an instance of type "CommSubsystem class".
315 */
316private pattern mayInstanceOfCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
317{
318 find interpretation(problem,interpretation);
319 PartialInterpretation.newElements(interpretation,element);
320 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
321 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
322 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
323 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
324 neg find mustInstanceOfPayload_class(problem,interpretation,element);
325 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
326 neg find scopeDisallowsNewCommSubsystem_class(problem, interpretation);
327 neg find isPrimitive(element);
328} or {
329 find interpretation(problem,interpretation);
330 PartialInterpretation.openWorldElements(interpretation,element);
331 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
332 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
333 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
334 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
335 neg find mustInstanceOfPayload_class(problem,interpretation,element);
336 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
337 neg find scopeDisallowsNewCommSubsystem_class(problem, interpretation);
338 neg find isPrimitive(element);
339} or
340{ find mustInstanceOfCommSubsystem_class(problem,interpretation,element); }
341/**
342 * An element must be an instance of type "Payload class".
343 */
344private pattern mustInstanceOfPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
345 Type.name(type,"Payload class");
346 find directInstanceOf(problem,interpretation,element,type);
347}
348private pattern scopeDisallowsNewPayload_class(problem:LogicProblem, interpretation:PartialInterpretation) {
349 find interpretation(problem,interpretation);
350 PartialInterpretation.scopes(interpretation,scope);
351 Scope.targetTypeInterpretation(scope,typeInterpretation);
352 Scope.maxNewElements(scope,0);
353 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
354 Type.name(type,"Payload class");
355}
356
357/**
358 * An element may be an instance of type "Payload class".
359 */
360private pattern mayInstanceOfPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
361{
362 find interpretation(problem,interpretation);
363 PartialInterpretation.newElements(interpretation,element);
364 neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element);
365 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
366 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
367 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
368 neg find scopeDisallowsNewPayload_class(problem, interpretation);
369 neg find isPrimitive(element);
370} or {
371 find interpretation(problem,interpretation);
372 PartialInterpretation.openWorldElements(interpretation,element);
373 neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element);
374 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
375 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
376 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
377 neg find scopeDisallowsNewPayload_class(problem, interpretation);
378 neg find isPrimitive(element);
379} or
380{ find mustInstanceOfPayload_class(problem,interpretation,element); }
381/**
382 * An element must be an instance of type "InterferometryPayload class".
383 */
384private pattern mustInstanceOfInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
385 Type.name(type,"InterferometryPayload class");
386 find directInstanceOf(problem,interpretation,element,type);
387}
388private pattern scopeDisallowsNewInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation) {
389 find interpretation(problem,interpretation);
390 PartialInterpretation.scopes(interpretation,scope);
391 Scope.targetTypeInterpretation(scope,typeInterpretation);
392 Scope.maxNewElements(scope,0);
393 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
394 Type.name(type,"InterferometryPayload class");
395}
396
397/**
398 * An element may be an instance of type "InterferometryPayload class".
399 */
400private pattern mayInstanceOfInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
401{
402 find interpretation(problem,interpretation);
403 PartialInterpretation.newElements(interpretation,element);
404 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
405 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
406 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
407 neg find scopeDisallowsNewInterferometryPayload_class(problem, interpretation);
408 neg find isPrimitive(element);
409} or {
410 find interpretation(problem,interpretation);
411 PartialInterpretation.openWorldElements(interpretation,element);
412 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
413 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
414 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
415 neg find scopeDisallowsNewInterferometryPayload_class(problem, interpretation);
416 neg find isPrimitive(element);
417} or
418{ find mustInstanceOfInterferometryPayload_class(problem,interpretation,element); }
419/**
420 * An element must be an instance of type "CubeSat3U class".
421 */
422private pattern mustInstanceOfCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
423 Type.name(type,"CubeSat3U class");
424 find directInstanceOf(problem,interpretation,element,type);
425}
426private pattern scopeDisallowsNewCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation) {
427 find interpretation(problem,interpretation);
428 PartialInterpretation.scopes(interpretation,scope);
429 Scope.targetTypeInterpretation(scope,typeInterpretation);
430 Scope.maxNewElements(scope,0);
431 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
432 Type.name(type,"CubeSat3U class");
433}
434
435/**
436 * An element may be an instance of type "CubeSat3U class".
437 */
438private pattern mayInstanceOfCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
439{
440 find interpretation(problem,interpretation);
441 PartialInterpretation.newElements(interpretation,element);
442 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
443 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
444 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
445 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
446 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
447 neg find mustInstanceOfPayload_class(problem,interpretation,element);
448 neg find scopeDisallowsNewCubeSat3U_class(problem, interpretation);
449 neg find isPrimitive(element);
450} or {
451 find interpretation(problem,interpretation);
452 PartialInterpretation.openWorldElements(interpretation,element);
453 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
454 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
455 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
456 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
457 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
458 neg find mustInstanceOfPayload_class(problem,interpretation,element);
459 neg find scopeDisallowsNewCubeSat3U_class(problem, interpretation);
460 neg find isPrimitive(element);
461} or
462{ find mustInstanceOfCubeSat3U_class(problem,interpretation,element); }
463/**
464 * An element must be an instance of type "CubeSat6U class".
465 */
466private pattern mustInstanceOfCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
467 Type.name(type,"CubeSat6U class");
468 find directInstanceOf(problem,interpretation,element,type);
469}
470private pattern scopeDisallowsNewCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation) {
471 find interpretation(problem,interpretation);
472 PartialInterpretation.scopes(interpretation,scope);
473 Scope.targetTypeInterpretation(scope,typeInterpretation);
474 Scope.maxNewElements(scope,0);
475 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
476 Type.name(type,"CubeSat6U class");
477}
478
479/**
480 * An element may be an instance of type "CubeSat6U class".
481 */
482private pattern mayInstanceOfCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
483{
484 find interpretation(problem,interpretation);
485 PartialInterpretation.newElements(interpretation,element);
486 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
487 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
488 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
489 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
490 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
491 neg find mustInstanceOfPayload_class(problem,interpretation,element);
492 neg find scopeDisallowsNewCubeSat6U_class(problem, interpretation);
493 neg find isPrimitive(element);
494} or {
495 find interpretation(problem,interpretation);
496 PartialInterpretation.openWorldElements(interpretation,element);
497 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
498 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
499 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
500 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
501 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
502 neg find mustInstanceOfPayload_class(problem,interpretation,element);
503 neg find scopeDisallowsNewCubeSat6U_class(problem, interpretation);
504 neg find isPrimitive(element);
505} or
506{ find mustInstanceOfCubeSat6U_class(problem,interpretation,element); }
507/**
508 * An element must be an instance of type "SmallSat class".
509 */
510private pattern mustInstanceOfSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
511 Type.name(type,"SmallSat class");
512 find directInstanceOf(problem,interpretation,element,type);
513}
514private pattern scopeDisallowsNewSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation) {
515 find interpretation(problem,interpretation);
516 PartialInterpretation.scopes(interpretation,scope);
517 Scope.targetTypeInterpretation(scope,typeInterpretation);
518 Scope.maxNewElements(scope,0);
519 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
520 Type.name(type,"SmallSat class");
521}
522
523/**
524 * An element may be an instance of type "SmallSat class".
525 */
526private pattern mayInstanceOfSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
527{
528 find interpretation(problem,interpretation);
529 PartialInterpretation.newElements(interpretation,element);
530 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
531 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
532 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
533 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
534 neg find mustInstanceOfPayload_class(problem,interpretation,element);
535 neg find scopeDisallowsNewSmallSat_class(problem, interpretation);
536 neg find isPrimitive(element);
537} or {
538 find interpretation(problem,interpretation);
539 PartialInterpretation.openWorldElements(interpretation,element);
540 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
541 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
542 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
543 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
544 neg find mustInstanceOfPayload_class(problem,interpretation,element);
545 neg find scopeDisallowsNewSmallSat_class(problem, interpretation);
546 neg find isPrimitive(element);
547} or
548{ find mustInstanceOfSmallSat_class(problem,interpretation,element); }
549/**
550 * An element must be an instance of type "CubeSat class".
551 */
552private pattern mustInstanceOfCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
553 Type.name(type,"CubeSat class");
554 find directInstanceOf(problem,interpretation,element,type);
555}
556private pattern scopeDisallowsNewCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation) {
557 find interpretation(problem,interpretation);
558 PartialInterpretation.scopes(interpretation,scope);
559 Scope.targetTypeInterpretation(scope,typeInterpretation);
560 Scope.maxNewElements(scope,0);
561 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
562 Type.name(type,"CubeSat class");
563}
564
565/**
566 * An element may be an instance of type "CubeSat class".
567 */
568private pattern mayInstanceOfCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
569{
570 find interpretation(problem,interpretation);
571 PartialInterpretation.newElements(interpretation,element);
572 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
573 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
574 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
575 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
576 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
577 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
578 neg find mustInstanceOfPayload_class(problem,interpretation,element);
579 neg find scopeDisallowsNewCubeSat_class(problem, interpretation);
580 neg find isPrimitive(element);
581} or {
582 find interpretation(problem,interpretation);
583 PartialInterpretation.openWorldElements(interpretation,element);
584 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
585 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
586 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
587 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
588 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
589 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
590 neg find mustInstanceOfPayload_class(problem,interpretation,element);
591 neg find scopeDisallowsNewCubeSat_class(problem, interpretation);
592 neg find isPrimitive(element);
593} or
594{ find mustInstanceOfCubeSat_class(problem,interpretation,element); }
595/**
596 * An element must be an instance of type "UHFCommSubsystem class".
597 */
598private pattern mustInstanceOfUHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
599 Type.name(type,"UHFCommSubsystem class");
600 find directInstanceOf(problem,interpretation,element,type);
601}
602private pattern scopeDisallowsNewUHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) {
603 find interpretation(problem,interpretation);
604 PartialInterpretation.scopes(interpretation,scope);
605 Scope.targetTypeInterpretation(scope,typeInterpretation);
606 Scope.maxNewElements(scope,0);
607 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
608 Type.name(type,"UHFCommSubsystem class");
609}
610
611/**
612 * An element may be an instance of type "UHFCommSubsystem class".
613 */
614private pattern mayInstanceOfUHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
615{
616 find interpretation(problem,interpretation);
617 PartialInterpretation.newElements(interpretation,element);
618 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
619 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
620 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
621 neg find mustInstanceOfPayload_class(problem,interpretation,element);
622 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
623 neg find scopeDisallowsNewUHFCommSubsystem_class(problem, interpretation);
624 neg find isPrimitive(element);
625} or {
626 find interpretation(problem,interpretation);
627 PartialInterpretation.openWorldElements(interpretation,element);
628 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
629 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
630 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
631 neg find mustInstanceOfPayload_class(problem,interpretation,element);
632 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
633 neg find scopeDisallowsNewUHFCommSubsystem_class(problem, interpretation);
634 neg find isPrimitive(element);
635} or
636{ find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element); }
637/**
638 * An element must be an instance of type "XCommSubsystem class".
639 */
640private pattern mustInstanceOfXCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
641 Type.name(type,"XCommSubsystem class");
642 find directInstanceOf(problem,interpretation,element,type);
643}
644private pattern scopeDisallowsNewXCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) {
645 find interpretation(problem,interpretation);
646 PartialInterpretation.scopes(interpretation,scope);
647 Scope.targetTypeInterpretation(scope,typeInterpretation);
648 Scope.maxNewElements(scope,0);
649 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
650 Type.name(type,"XCommSubsystem class");
651}
652
653/**
654 * An element may be an instance of type "XCommSubsystem class".
655 */
656private pattern mayInstanceOfXCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
657{
658 find interpretation(problem,interpretation);
659 PartialInterpretation.newElements(interpretation,element);
660 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
661 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
662 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
663 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
664 neg find mustInstanceOfPayload_class(problem,interpretation,element);
665 neg find scopeDisallowsNewXCommSubsystem_class(problem, interpretation);
666 neg find isPrimitive(element);
667} or {
668 find interpretation(problem,interpretation);
669 PartialInterpretation.openWorldElements(interpretation,element);
670 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
671 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
672 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
673 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
674 neg find mustInstanceOfPayload_class(problem,interpretation,element);
675 neg find scopeDisallowsNewXCommSubsystem_class(problem, interpretation);
676 neg find isPrimitive(element);
677} or
678{ find mustInstanceOfXCommSubsystem_class(problem,interpretation,element); }
679/**
680 * An element must be an instance of type "KaCommSubsystem class".
681 */
682private pattern mustInstanceOfKaCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
683 Type.name(type,"KaCommSubsystem class");
684 find directInstanceOf(problem,interpretation,element,type);
685}
686private pattern scopeDisallowsNewKaCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) {
687 find interpretation(problem,interpretation);
688 PartialInterpretation.scopes(interpretation,scope);
689 Scope.targetTypeInterpretation(scope,typeInterpretation);
690 Scope.maxNewElements(scope,0);
691 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
692 Type.name(type,"KaCommSubsystem class");
693}
694
695/**
696 * An element may be an instance of type "KaCommSubsystem class".
697 */
698private pattern mayInstanceOfKaCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
699{
700 find interpretation(problem,interpretation);
701 PartialInterpretation.newElements(interpretation,element);
702 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
703 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
704 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
705 neg find mustInstanceOfPayload_class(problem,interpretation,element);
706 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
707 neg find scopeDisallowsNewKaCommSubsystem_class(problem, interpretation);
708 neg find isPrimitive(element);
709} or {
710 find interpretation(problem,interpretation);
711 PartialInterpretation.openWorldElements(interpretation,element);
712 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
713 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
714 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
715 neg find mustInstanceOfPayload_class(problem,interpretation,element);
716 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
717 neg find scopeDisallowsNewKaCommSubsystem_class(problem, interpretation);
718 neg find isPrimitive(element);
719} or
720{ find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element); }
721/**
722 * An element must be an instance of type "ConstellationMission class DefinedPart".
723 */
724private pattern mustInstanceOfConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
725 Type.name(type,"ConstellationMission class DefinedPart");
726 find directInstanceOf(problem,interpretation,element,type);
727}
728private pattern scopeDisallowsNewConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
729 find interpretation(problem,interpretation);
730 PartialInterpretation.scopes(interpretation,scope);
731 Scope.targetTypeInterpretation(scope,typeInterpretation);
732 Scope.maxNewElements(scope,0);
733 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
734 Type.name(type,"ConstellationMission class DefinedPart");
735}
736
737/**
738 * An element may be an instance of type "ConstellationMission class DefinedPart".
739 */
740private pattern mayInstanceOfConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
741{ find mustInstanceOfConstellationMission_class_DefinedPart(problem,interpretation,element); }
742/**
743 * An element must be an instance of type "ConstellationMission class UndefinedPart".
744 */
745private pattern mustInstanceOfConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
746 Type.name(type,"ConstellationMission class UndefinedPart");
747 find directInstanceOf(problem,interpretation,element,type);
748}
749private pattern scopeDisallowsNewConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
750 find interpretation(problem,interpretation);
751 PartialInterpretation.scopes(interpretation,scope);
752 Scope.targetTypeInterpretation(scope,typeInterpretation);
753 Scope.maxNewElements(scope,0);
754 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
755 Type.name(type,"ConstellationMission class UndefinedPart");
756}
757
758/**
759 * An element may be an instance of type "ConstellationMission class UndefinedPart".
760 */
761private pattern mayInstanceOfConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
762{
763 find interpretation(problem,interpretation);
764 PartialInterpretation.newElements(interpretation,element);
765 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
766 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
767 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
768 neg find mustInstanceOfPayload_class(problem,interpretation,element);
769 neg find scopeDisallowsNewConstellationMission_class_UndefinedPart(problem, interpretation);
770 neg find isPrimitive(element);
771} or {
772 find interpretation(problem,interpretation);
773 PartialInterpretation.openWorldElements(interpretation,element);
774 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
775 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
776 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
777 neg find mustInstanceOfPayload_class(problem,interpretation,element);
778 neg find scopeDisallowsNewConstellationMission_class_UndefinedPart(problem, interpretation);
779 neg find isPrimitive(element);
780} or
781{ find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element); }
782/**
783 * An element must be an instance of type "InterferometryMission class DefinedPart".
784 */
785private pattern mustInstanceOfInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
786 Type.name(type,"InterferometryMission class DefinedPart");
787 find directInstanceOf(problem,interpretation,element,type);
788}
789private pattern scopeDisallowsNewInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
790 find interpretation(problem,interpretation);
791 PartialInterpretation.scopes(interpretation,scope);
792 Scope.targetTypeInterpretation(scope,typeInterpretation);
793 Scope.maxNewElements(scope,0);
794 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
795 Type.name(type,"InterferometryMission class DefinedPart");
796}
797
798/**
799 * An element may be an instance of type "InterferometryMission class DefinedPart".
800 */
801private pattern mayInstanceOfInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
802{ find mustInstanceOfInterferometryMission_class_DefinedPart(problem,interpretation,element); }
803/**
804 * An element must be an instance of type "InterferometryMission class UndefinedPart".
805 */
806private pattern mustInstanceOfInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
807 Type.name(type,"InterferometryMission class UndefinedPart");
808 find directInstanceOf(problem,interpretation,element,type);
809}
810private pattern scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
811 find interpretation(problem,interpretation);
812 PartialInterpretation.scopes(interpretation,scope);
813 Scope.targetTypeInterpretation(scope,typeInterpretation);
814 Scope.maxNewElements(scope,0);
815 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
816 Type.name(type,"InterferometryMission class UndefinedPart");
817}
818
819/**
820 * An element may be an instance of type "InterferometryMission class UndefinedPart".
821 */
822private pattern mayInstanceOfInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
823{
824 find interpretation(problem,interpretation);
825 PartialInterpretation.newElements(interpretation,element);
826 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
827 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
828 neg find mustInstanceOfPayload_class(problem,interpretation,element);
829 neg find scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem, interpretation);
830 neg find isPrimitive(element);
831} or {
832 find interpretation(problem,interpretation);
833 PartialInterpretation.openWorldElements(interpretation,element);
834 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
835 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
836 neg find mustInstanceOfPayload_class(problem,interpretation,element);
837 neg find scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem, interpretation);
838 neg find isPrimitive(element);
839} or
840{ find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element); }
841/**
842 * An element must be an instance of type "CommunicatingElement class DefinedPart".
843 */
844private pattern mustInstanceOfCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
845 Type.name(type,"CommunicatingElement class DefinedPart");
846 find directInstanceOf(problem,interpretation,element,type);
847}
848private pattern scopeDisallowsNewCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
849 find interpretation(problem,interpretation);
850 PartialInterpretation.scopes(interpretation,scope);
851 Scope.targetTypeInterpretation(scope,typeInterpretation);
852 Scope.maxNewElements(scope,0);
853 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
854 Type.name(type,"CommunicatingElement class DefinedPart");
855}
856
857/**
858 * An element may be an instance of type "CommunicatingElement class DefinedPart".
859 */
860private pattern mayInstanceOfCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
861{ find mustInstanceOfCommunicatingElement_class_DefinedPart(problem,interpretation,element); }
862/**
863 * An element must be an instance of type "CommunicatingElement class UndefinedPart".
864 */
865private pattern mustInstanceOfCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
866 Type.name(type,"CommunicatingElement class UndefinedPart");
867 find directInstanceOf(problem,interpretation,element,type);
868}
869private pattern scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
870 find interpretation(problem,interpretation);
871 PartialInterpretation.scopes(interpretation,scope);
872 Scope.targetTypeInterpretation(scope,typeInterpretation);
873 Scope.maxNewElements(scope,0);
874 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
875 Type.name(type,"CommunicatingElement class UndefinedPart");
876}
877
878/**
879 * An element may be an instance of type "CommunicatingElement class UndefinedPart".
880 */
881private pattern mayInstanceOfCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
882{
883 find interpretation(problem,interpretation);
884 PartialInterpretation.newElements(interpretation,element);
885 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
886 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
887 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
888 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
889 neg find mustInstanceOfPayload_class(problem,interpretation,element);
890 neg find scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem, interpretation);
891 neg find isPrimitive(element);
892} or {
893 find interpretation(problem,interpretation);
894 PartialInterpretation.openWorldElements(interpretation,element);
895 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
896 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
897 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
898 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
899 neg find mustInstanceOfPayload_class(problem,interpretation,element);
900 neg find scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem, interpretation);
901 neg find isPrimitive(element);
902} or
903{ find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element); }
904/**
905 * An element must be an instance of type "GroundStationNetwork class DefinedPart".
906 */
907private pattern mustInstanceOfGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
908 Type.name(type,"GroundStationNetwork class DefinedPart");
909 find directInstanceOf(problem,interpretation,element,type);
910}
911private pattern scopeDisallowsNewGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
912 find interpretation(problem,interpretation);
913 PartialInterpretation.scopes(interpretation,scope);
914 Scope.targetTypeInterpretation(scope,typeInterpretation);
915 Scope.maxNewElements(scope,0);
916 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
917 Type.name(type,"GroundStationNetwork class DefinedPart");
918}
919
920/**
921 * An element may be an instance of type "GroundStationNetwork class DefinedPart".
922 */
923private pattern mayInstanceOfGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
924{ find mustInstanceOfGroundStationNetwork_class_DefinedPart(problem,interpretation,element); }
925/**
926 * An element must be an instance of type "GroundStationNetwork class UndefinedPart".
927 */
928private pattern mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
929 Type.name(type,"GroundStationNetwork class UndefinedPart");
930 find directInstanceOf(problem,interpretation,element,type);
931}
932private pattern scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
933 find interpretation(problem,interpretation);
934 PartialInterpretation.scopes(interpretation,scope);
935 Scope.targetTypeInterpretation(scope,typeInterpretation);
936 Scope.maxNewElements(scope,0);
937 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
938 Type.name(type,"GroundStationNetwork class UndefinedPart");
939}
940
941/**
942 * An element may be an instance of type "GroundStationNetwork class UndefinedPart".
943 */
944private pattern mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
945{
946 find interpretation(problem,interpretation);
947 PartialInterpretation.newElements(interpretation,element);
948 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
949 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
950 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
951 neg find mustInstanceOfPayload_class(problem,interpretation,element);
952 neg find scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem, interpretation);
953 neg find isPrimitive(element);
954} or {
955 find interpretation(problem,interpretation);
956 PartialInterpretation.openWorldElements(interpretation,element);
957 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
958 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
959 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
960 neg find mustInstanceOfPayload_class(problem,interpretation,element);
961 neg find scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem, interpretation);
962 neg find isPrimitive(element);
963} or
964{ find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element); }
965/**
966 * An element must be an instance of type "CommSubsystem class DefinedPart".
967 */
968private pattern mustInstanceOfCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
969 Type.name(type,"CommSubsystem class DefinedPart");
970 find directInstanceOf(problem,interpretation,element,type);
971}
972private pattern scopeDisallowsNewCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
973 find interpretation(problem,interpretation);
974 PartialInterpretation.scopes(interpretation,scope);
975 Scope.targetTypeInterpretation(scope,typeInterpretation);
976 Scope.maxNewElements(scope,0);
977 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
978 Type.name(type,"CommSubsystem class DefinedPart");
979}
980
981/**
982 * An element may be an instance of type "CommSubsystem class DefinedPart".
983 */
984private pattern mayInstanceOfCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
985{ find mustInstanceOfCommSubsystem_class_DefinedPart(problem,interpretation,element); }
986/**
987 * An element must be an instance of type "CommSubsystem class UndefinedPart".
988 */
989private pattern mustInstanceOfCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
990 Type.name(type,"CommSubsystem class UndefinedPart");
991 find directInstanceOf(problem,interpretation,element,type);
992}
993private pattern scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
994 find interpretation(problem,interpretation);
995 PartialInterpretation.scopes(interpretation,scope);
996 Scope.targetTypeInterpretation(scope,typeInterpretation);
997 Scope.maxNewElements(scope,0);
998 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
999 Type.name(type,"CommSubsystem class UndefinedPart");
1000}
1001
1002/**
1003 * An element may be an instance of type "CommSubsystem class UndefinedPart".
1004 */
1005private pattern mayInstanceOfCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1006{
1007 find interpretation(problem,interpretation);
1008 PartialInterpretation.newElements(interpretation,element);
1009 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1010 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1011 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1012 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
1013 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1014 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
1015 neg find scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem, interpretation);
1016 neg find isPrimitive(element);
1017} or {
1018 find interpretation(problem,interpretation);
1019 PartialInterpretation.openWorldElements(interpretation,element);
1020 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1021 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1022 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1023 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
1024 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1025 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
1026 neg find scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem, interpretation);
1027 neg find isPrimitive(element);
1028} or
1029{ find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element); }
1030/**
1031 * An element must be an instance of type "XCommSubsystem class DefinedPart".
1032 */
1033private pattern mustInstanceOfXCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
1034 Type.name(type,"XCommSubsystem class DefinedPart");
1035 find directInstanceOf(problem,interpretation,element,type);
1036}
1037private pattern scopeDisallowsNewXCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
1038 find interpretation(problem,interpretation);
1039 PartialInterpretation.scopes(interpretation,scope);
1040 Scope.targetTypeInterpretation(scope,typeInterpretation);
1041 Scope.maxNewElements(scope,0);
1042 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
1043 Type.name(type,"XCommSubsystem class DefinedPart");
1044}
1045
1046/**
1047 * An element may be an instance of type "XCommSubsystem class DefinedPart".
1048 */
1049private pattern mayInstanceOfXCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1050{ find mustInstanceOfXCommSubsystem_class_DefinedPart(problem,interpretation,element); }
1051/**
1052 * An element must be an instance of type "XCommSubsystem class UndefinedPart".
1053 */
1054private pattern mustInstanceOfXCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
1055 Type.name(type,"XCommSubsystem class UndefinedPart");
1056 find directInstanceOf(problem,interpretation,element,type);
1057}
1058private pattern scopeDisallowsNewXCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
1059 find interpretation(problem,interpretation);
1060 PartialInterpretation.scopes(interpretation,scope);
1061 Scope.targetTypeInterpretation(scope,typeInterpretation);
1062 Scope.maxNewElements(scope,0);
1063 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
1064 Type.name(type,"XCommSubsystem class UndefinedPart");
1065}
1066
1067/**
1068 * An element may be an instance of type "XCommSubsystem class UndefinedPart".
1069 */
1070private pattern mayInstanceOfXCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1071{
1072 find interpretation(problem,interpretation);
1073 PartialInterpretation.newElements(interpretation,element);
1074 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1075 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1076 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1077 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
1078 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1079 neg find scopeDisallowsNewXCommSubsystem_class_UndefinedPart(problem, interpretation);
1080 neg find isPrimitive(element);
1081} or {
1082 find interpretation(problem,interpretation);
1083 PartialInterpretation.openWorldElements(interpretation,element);
1084 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1085 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1086 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1087 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
1088 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1089 neg find scopeDisallowsNewXCommSubsystem_class_UndefinedPart(problem, interpretation);
1090 neg find isPrimitive(element);
1091} or
1092{ find mustInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,element); }
1093/**
1094 * An element must be an instance of type "KaCommSubsystem class DefinedPart".
1095 */
1096private pattern mustInstanceOfKaCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
1097 Type.name(type,"KaCommSubsystem class DefinedPart");
1098 find directInstanceOf(problem,interpretation,element,type);
1099}
1100private pattern scopeDisallowsNewKaCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
1101 find interpretation(problem,interpretation);
1102 PartialInterpretation.scopes(interpretation,scope);
1103 Scope.targetTypeInterpretation(scope,typeInterpretation);
1104 Scope.maxNewElements(scope,0);
1105 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
1106 Type.name(type,"KaCommSubsystem class DefinedPart");
1107}
1108
1109/**
1110 * An element may be an instance of type "KaCommSubsystem class DefinedPart".
1111 */
1112private pattern mayInstanceOfKaCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1113{ find mustInstanceOfKaCommSubsystem_class_DefinedPart(problem,interpretation,element); }
1114/**
1115 * An element must be an instance of type "KaCommSubsystem class UndefinedPart".
1116 */
1117private pattern mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
1118 Type.name(type,"KaCommSubsystem class UndefinedPart");
1119 find directInstanceOf(problem,interpretation,element,type);
1120}
1121private pattern scopeDisallowsNewKaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
1122 find interpretation(problem,interpretation);
1123 PartialInterpretation.scopes(interpretation,scope);
1124 Scope.targetTypeInterpretation(scope,typeInterpretation);
1125 Scope.maxNewElements(scope,0);
1126 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
1127 Type.name(type,"KaCommSubsystem class UndefinedPart");
1128}
1129
1130/**
1131 * An element may be an instance of type "KaCommSubsystem class UndefinedPart".
1132 */
1133private pattern mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1134{
1135 find interpretation(problem,interpretation);
1136 PartialInterpretation.newElements(interpretation,element);
1137 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1138 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1139 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1140 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1141 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
1142 neg find scopeDisallowsNewKaCommSubsystem_class_UndefinedPart(problem, interpretation);
1143 neg find isPrimitive(element);
1144} or {
1145 find interpretation(problem,interpretation);
1146 PartialInterpretation.openWorldElements(interpretation,element);
1147 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1148 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1149 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1150 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1151 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
1152 neg find scopeDisallowsNewKaCommSubsystem_class_UndefinedPart(problem, interpretation);
1153 neg find isPrimitive(element);
1154} or
1155{ find mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,element); }
1156
1157//////////
1158// 1.2 Relation Declaration Indexers
1159//////////
1160/**
1161 * Matcher for detecting tuples t where []groundStationNetwork reference ConstellationMission(source,target)
1162 */
1163private pattern mustInRelationgroundStationNetwork_reference_ConstellationMission(
1164 problem:LogicProblem, interpretation:PartialInterpretation,
1165 source: DefinedElement, target:DefinedElement)
1166{
1167 find interpretation(problem,interpretation);
1168 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1169 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"groundStationNetwork reference ConstellationMission");
1170 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1171 BinaryElementRelationLink.param1(link,source);
1172 BinaryElementRelationLink.param2(link,target);
1173}
1174/**
1175 * Matcher for detecting tuples t where <>groundStationNetwork reference ConstellationMission(source,target)
1176 */
1177private pattern mayInRelationgroundStationNetwork_reference_ConstellationMission(
1178 problem:LogicProblem, interpretation:PartialInterpretation,
1179 source: DefinedElement, target:DefinedElement)
1180{
1181 find interpretation(problem,interpretation);
1182 // The two endpoint of the link have to exist
1183 find mayExist(problem, interpretation, source);
1184 find mayExist(problem, interpretation, target);
1185 // Type consistency
1186 find mayInstanceOfConstellationMission_class(problem,interpretation,source);
1187 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,target);
1188 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1189 // the upper bound of the multiplicity should be considered.
1190 numberOfExistingReferences == count find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,_);
1191 check(numberOfExistingReferences < 1);
1192 // The reference is containment, then a new reference cannot be create if:
1193 // 1. Multiple parents
1194 neg find mustContains4(problem,interpretation,_,target);
1195 // 2. Circle in the containment hierarchy
1196 neg find mustTransitiveContains(source,target);
1197} or {
1198 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,target);
1199}
1200/**
1201 * Matcher for detecting tuples t where []spacecraft reference ConstellationMission(source,target)
1202 */
1203private pattern mustInRelationspacecraft_reference_ConstellationMission(
1204 problem:LogicProblem, interpretation:PartialInterpretation,
1205 source: DefinedElement, target:DefinedElement)
1206{
1207 find interpretation(problem,interpretation);
1208 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1209 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"spacecraft reference ConstellationMission");
1210 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1211 BinaryElementRelationLink.param1(link,source);
1212 BinaryElementRelationLink.param2(link,target);
1213}
1214/**
1215 * Matcher for detecting tuples t where <>spacecraft reference ConstellationMission(source,target)
1216 */
1217private pattern mayInRelationspacecraft_reference_ConstellationMission(
1218 problem:LogicProblem, interpretation:PartialInterpretation,
1219 source: DefinedElement, target:DefinedElement)
1220{
1221 find interpretation(problem,interpretation);
1222 // The two endpoint of the link have to exist
1223 find mayExist(problem, interpretation, source);
1224 find mayExist(problem, interpretation, target);
1225 // Type consistency
1226 find mayInstanceOfConstellationMission_class(problem,interpretation,source);
1227 find mayInstanceOfSpacecraft_class(problem,interpretation,target);
1228 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1229 // the upper bound of the multiplicity should be considered.
1230 numberOfExistingReferences == count find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,_);
1231 check(numberOfExistingReferences < 50);
1232 // The reference is containment, then a new reference cannot be create if:
1233 // 1. Multiple parents
1234 neg find mustContains4(problem,interpretation,_,target);
1235 // 2. Circle in the containment hierarchy
1236 neg find mustTransitiveContains(source,target);
1237} or {
1238 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,target);
1239}
1240/**
1241 * Matcher for detecting tuples t where []commSubsystem reference CommunicatingElement(source,target)
1242 */
1243private pattern mustInRelationcommSubsystem_reference_CommunicatingElement(
1244 problem:LogicProblem, interpretation:PartialInterpretation,
1245 source: DefinedElement, target:DefinedElement)
1246{
1247 find interpretation(problem,interpretation);
1248 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1249 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"commSubsystem reference CommunicatingElement");
1250 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1251 BinaryElementRelationLink.param1(link,source);
1252 BinaryElementRelationLink.param2(link,target);
1253}
1254/**
1255 * Matcher for detecting tuples t where <>commSubsystem reference CommunicatingElement(source,target)
1256 */
1257private pattern mayInRelationcommSubsystem_reference_CommunicatingElement(
1258 problem:LogicProblem, interpretation:PartialInterpretation,
1259 source: DefinedElement, target:DefinedElement)
1260{
1261 find interpretation(problem,interpretation);
1262 // The two endpoint of the link have to exist
1263 find mayExist(problem, interpretation, source);
1264 find mayExist(problem, interpretation, target);
1265 // Type consistency
1266 find mayInstanceOfCommunicatingElement_class(problem,interpretation,source);
1267 find mayInstanceOfCommSubsystem_class(problem,interpretation,target);
1268 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1269 // the upper bound of the multiplicity should be considered.
1270 numberOfExistingReferences == count find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,_);
1271 check(numberOfExistingReferences < 2);
1272 // The reference is containment, then a new reference cannot be create if:
1273 // 1. Multiple parents
1274 neg find mustContains4(problem,interpretation,_,target);
1275 // 2. Circle in the containment hierarchy
1276 neg find mustTransitiveContains(source,target);
1277} or {
1278 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,target);
1279}
1280/**
1281 * Matcher for detecting tuples t where []payload reference Spacecraft(source,target)
1282 */
1283private pattern mustInRelationpayload_reference_Spacecraft(
1284 problem:LogicProblem, interpretation:PartialInterpretation,
1285 source: DefinedElement, target:DefinedElement)
1286{
1287 find interpretation(problem,interpretation);
1288 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1289 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"payload reference Spacecraft");
1290 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1291 BinaryElementRelationLink.param1(link,source);
1292 BinaryElementRelationLink.param2(link,target);
1293}
1294/**
1295 * Matcher for detecting tuples t where <>payload reference Spacecraft(source,target)
1296 */
1297private pattern mayInRelationpayload_reference_Spacecraft(
1298 problem:LogicProblem, interpretation:PartialInterpretation,
1299 source: DefinedElement, target:DefinedElement)
1300{
1301 find interpretation(problem,interpretation);
1302 // The two endpoint of the link have to exist
1303 find mayExist(problem, interpretation, source);
1304 find mayExist(problem, interpretation, target);
1305 // Type consistency
1306 find mayInstanceOfSpacecraft_class(problem,interpretation,source);
1307 find mayInstanceOfPayload_class(problem,interpretation,target);
1308 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1309 // the upper bound of the multiplicity should be considered.
1310 numberOfExistingReferences == count find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,_);
1311 check(numberOfExistingReferences < 1);
1312 // The reference is containment, then a new reference cannot be create if:
1313 // 1. Multiple parents
1314 neg find mustContains4(problem,interpretation,_,target);
1315 // 2. Circle in the containment hierarchy
1316 neg find mustTransitiveContains(source,target);
1317} or {
1318 find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,target);
1319}
1320/**
1321 * Matcher for detecting tuples t where []target reference CommSubsystem(source,target)
1322 */
1323private pattern mustInRelationtarget_reference_CommSubsystem(
1324 problem:LogicProblem, interpretation:PartialInterpretation,
1325 source: DefinedElement, target:DefinedElement)
1326{
1327 find interpretation(problem,interpretation);
1328 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1329 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"target reference CommSubsystem");
1330 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1331 BinaryElementRelationLink.param1(link,source);
1332 BinaryElementRelationLink.param2(link,target);
1333}
1334/**
1335 * Matcher for detecting tuples t where <>target reference CommSubsystem(source,target)
1336 */
1337private pattern mayInRelationtarget_reference_CommSubsystem(
1338 problem:LogicProblem, interpretation:PartialInterpretation,
1339 source: DefinedElement, target:DefinedElement)
1340{
1341 find interpretation(problem,interpretation);
1342 // The two endpoint of the link have to exist
1343 find mayExist(problem, interpretation, source);
1344 find mayExist(problem, interpretation, target);
1345 // Type consistency
1346 find mayInstanceOfCommSubsystem_class(problem,interpretation,source);
1347 find mayInstanceOfCommSubsystem_class(problem,interpretation,target);
1348 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1349 // the upper bound of the multiplicity should be considered.
1350 numberOfExistingReferences == count find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,source,_);
1351 check(numberOfExistingReferences < 1);
1352} or {
1353 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,source,target);
1354}
1355
1356//////////
1357// 1.3 Relation Definition Indexers
1358//////////
1359// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries communicationLinkDoesNotStartAtContainingElement
1360private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(
1361 problem:LogicProblem, interpretation:PartialInterpretation,
1362 var_Element)
1363{
1364 find interpretation(problem,interpretation);
1365 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1366 // Element is exported
1367 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm1);
1368 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm2);
1369 neg find mayEquivalent(problem, interpretation, var_Comm1, var_Comm2);
1370}
1371private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(
1372 problem:LogicProblem, interpretation:PartialInterpretation,
1373 var_Element)
1374{
1375 find interpretation(problem,interpretation);
1376 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1377 // Element is exported
1378 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm1);
1379 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm2);
1380 neg find mustEquivalent(problem, interpretation, var_Comm1, var_Comm2);
1381}
1382private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(
1383 problem:LogicProblem, interpretation:PartialInterpretation,
1384 var_Element)
1385{
1386 find interpretation(problem,interpretation);
1387 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1388 // Element is exported
1389 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm1);
1390 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm2);
1391 neg find mustEquivalent(problem, interpretation, var_Comm1, var_Comm2);
1392}
1393// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries transmittingCommSubsystem
1394private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(
1395 problem:LogicProblem, interpretation:PartialInterpretation,
1396 var_Element, var_Comm)
1397{
1398 find interpretation(problem,interpretation);
1399 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1400 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1401 // Element is exported
1402 // Comm is exported
1403 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1404 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0);
1405 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1406 find mustEquivalent(problem, interpretation, var_virtual0, var_Comm);
1407 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1408 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1409 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1410 find mustEquivalent(problem, interpretation, var_virtual1, _var__0);
1411}
1412private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(
1413 problem:LogicProblem, interpretation:PartialInterpretation,
1414 var_Element, var_Comm)
1415{
1416 find interpretation(problem,interpretation);
1417 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1418 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1419 // Element is exported
1420 // Comm is exported
1421 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1422 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0);
1423 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1424 find mayEquivalent(problem, interpretation, var_virtual0, var_Comm);
1425 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1426 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1427 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1428 find mayEquivalent(problem, interpretation, var_virtual1, _var__0);
1429}
1430private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(
1431 problem:LogicProblem, interpretation:PartialInterpretation,
1432 var_Element, var_Comm)
1433{
1434 find interpretation(problem,interpretation);
1435 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1436 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1437 // Element is exported
1438 // Comm is exported
1439 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1440 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0);
1441 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1442 find mustEquivalent(problem, interpretation, var_virtual0, var_Comm);
1443 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1444 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1445 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1446 find mustEquivalent(problem, interpretation, var_virtual1, _var__0);
1447}
1448// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries notEnoughInterferometryPayloads
1449private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(
1450 problem:LogicProblem, interpretation:PartialInterpretation,
1451 var_Mission)
1452{
1453 find interpretation(problem,interpretation);
1454 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1455 // Mission is exported
1456 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1457 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission);
1458}
1459private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(
1460 problem:LogicProblem, interpretation:PartialInterpretation,
1461 var_Mission)
1462{
1463 find interpretation(problem,interpretation);
1464 find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1465 // Mission is exported
1466 find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1467 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission);
1468}
1469private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(
1470 problem:LogicProblem, interpretation:PartialInterpretation,
1471 var_Mission)
1472{
1473 find interpretation(problem,interpretation);
1474 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1475 // Mission is exported
1476 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1477 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission);
1478}
1479// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries atLeastTwoInterferometryPayloads
1480private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(
1481 problem:LogicProblem, interpretation:PartialInterpretation,
1482 var_Mission)
1483{
1484 find interpretation(problem,interpretation);
1485 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1486 // Mission is exported
1487 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1);
1488 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2);
1489 neg find mayEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2);
1490}
1491private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(
1492 problem:LogicProblem, interpretation:PartialInterpretation,
1493 var_Mission)
1494{
1495 find interpretation(problem,interpretation);
1496 find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1497 // Mission is exported
1498 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1);
1499 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2);
1500 neg find mustEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2);
1501}
1502private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(
1503 problem:LogicProblem, interpretation:PartialInterpretation,
1504 var_Mission)
1505{
1506 find interpretation(problem,interpretation);
1507 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1508 // Mission is exported
1509 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1);
1510 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2);
1511 neg find mustEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2);
1512}
1513// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries spacecraftWithInterferometryPayload
1514private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(
1515 problem:LogicProblem, interpretation:PartialInterpretation,
1516 var_Mission, var_Spacecraft)
1517{
1518 find interpretation(problem,interpretation);
1519 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1520 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1521 // Mission is exported
1522 // Spacecraft is exported
1523 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1524 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1525 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual0);
1526 find mustEquivalent(problem, interpretation, var_virtual0, var_Spacecraft);
1527 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1528 find mustInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1);
1529 find mustInstanceOfPayload_class(problem,interpretation,var_virtual1);
1530 find mustEquivalent(problem, interpretation, var_virtual1, var_Payload);
1531 find mustInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload);
1532}
1533private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(
1534 problem:LogicProblem, interpretation:PartialInterpretation,
1535 var_Mission, var_Spacecraft)
1536{
1537 find interpretation(problem,interpretation);
1538 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1539 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1540 // Mission is exported
1541 // Spacecraft is exported
1542 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1543 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1544 find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual0);
1545 find mayEquivalent(problem, interpretation, var_virtual0, var_Spacecraft);
1546 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1547 find mayInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1);
1548 find mayInstanceOfPayload_class(problem,interpretation,var_virtual1);
1549 find mayEquivalent(problem, interpretation, var_virtual1, var_Payload);
1550 find mayInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload);
1551}
1552private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(
1553 problem:LogicProblem, interpretation:PartialInterpretation,
1554 var_Mission, var_Spacecraft)
1555{
1556 find interpretation(problem,interpretation);
1557 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1558 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1559 // Mission is exported
1560 // Spacecraft is exported
1561 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1562 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1563 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual0);
1564 find mustEquivalent(problem, interpretation, var_virtual0, var_Spacecraft);
1565 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1566 find mustInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1);
1567 find mustInstanceOfPayload_class(problem,interpretation,var_virtual1);
1568 find mustEquivalent(problem, interpretation, var_virtual1, var_Payload);
1569 find mustInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload);
1570}
1571// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries noLinkToGroundStation
1572private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(
1573 problem:LogicProblem, interpretation:PartialInterpretation,
1574 var_Spacecraft)
1575{
1576 find interpretation(problem,interpretation);
1577 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1578 // Spacecraft is exported
1579 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1580 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1581 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1582 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1583 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1584 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1585 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1586 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1587 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation);
1588}
1589private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(
1590 problem:LogicProblem, interpretation:PartialInterpretation,
1591 var_Spacecraft)
1592{
1593 find interpretation(problem,interpretation);
1594 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1595 // Spacecraft is exported
1596 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1597 find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1598 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1599 find mayEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1600 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1601 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1602 find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1603 find mayEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1604 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation);
1605}
1606private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(
1607 problem:LogicProblem, interpretation:PartialInterpretation,
1608 var_Spacecraft)
1609{
1610 find interpretation(problem,interpretation);
1611 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1612 // Spacecraft is exported
1613 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1614 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1615 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1616 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1617 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1618 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1619 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1620 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1621 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation);
1622}
1623// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries noPotentialLinkToGroundStation
1624private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(
1625 problem:LogicProblem, interpretation:PartialInterpretation,
1626 var_Spacecraft)
1627{
1628 find interpretation(problem,interpretation);
1629 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1630 // Spacecraft is exported
1631 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1632 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1633 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1634 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1635 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1636 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1637 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1638 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1639 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation);
1640}
1641private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(
1642 problem:LogicProblem, interpretation:PartialInterpretation,
1643 var_Spacecraft)
1644{
1645 find interpretation(problem,interpretation);
1646 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1647 // Spacecraft is exported
1648 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1649 find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1650 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1651 find mayEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1652 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1653 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1654 find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1655 find mayEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1656 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation);
1657}
1658private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(
1659 problem:LogicProblem, interpretation:PartialInterpretation,
1660 var_Spacecraft)
1661{
1662 find interpretation(problem,interpretation);
1663 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1664 // Spacecraft is exported
1665 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1666 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1667 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1668 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1669 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1670 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1671 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1672 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1673 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation);
1674}
1675// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries indirectLinkAllowed
1676private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(
1677 problem:LogicProblem, interpretation:PartialInterpretation,
1678 var_From, var_To)
1679{
1680 find interpretation(problem,interpretation);
1681 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1682 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1683 // From is exported
1684 // To is exported
1685 find twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To);
1686}
1687private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(
1688 problem:LogicProblem, interpretation:PartialInterpretation,
1689 var_From, var_To)
1690{
1691 find interpretation(problem,interpretation);
1692 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1693 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1694 // From is exported
1695 // To is exported
1696 find twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To);
1697}
1698private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(
1699 problem:LogicProblem, interpretation:PartialInterpretation,
1700 var_From, var_To)
1701{
1702 find interpretation(problem,interpretation);
1703 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1704 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1705 // From is exported
1706 // To is exported
1707 find twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To);
1708}
1709// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries linkAllowed
1710private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(
1711 problem:LogicProblem, interpretation:PartialInterpretation,
1712 var_From, var_To)
1713{
1714 find interpretation(problem,interpretation);
1715 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1716 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1717 // From is exported
1718 // To is exported
1719 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1720 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From);
1721}or{
1722 find interpretation(problem,interpretation);
1723 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1724 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1725 // From is exported
1726 // To is exported
1727 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1728 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1729}or{
1730 find interpretation(problem,interpretation);
1731 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1732 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1733 // From is exported
1734 // To is exported
1735 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1736 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1737 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_To);
1738}
1739private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(
1740 problem:LogicProblem, interpretation:PartialInterpretation,
1741 var_From, var_To)
1742{
1743 find interpretation(problem,interpretation);
1744 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1745 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1746 // From is exported
1747 // To is exported
1748 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1749 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From);
1750}or{
1751 find interpretation(problem,interpretation);
1752 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1753 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1754 // From is exported
1755 // To is exported
1756 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1757 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1758}or{
1759 find interpretation(problem,interpretation);
1760 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1761 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1762 // From is exported
1763 // To is exported
1764 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1765 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1766 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_To);
1767}
1768private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(
1769 problem:LogicProblem, interpretation:PartialInterpretation,
1770 var_From, var_To)
1771{
1772 find interpretation(problem,interpretation);
1773 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1774 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1775 // From is exported
1776 // To is exported
1777 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1778 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From);
1779}or{
1780 find interpretation(problem,interpretation);
1781 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1782 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1783 // From is exported
1784 // To is exported
1785 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1786 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1787}or{
1788 find interpretation(problem,interpretation);
1789 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1790 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1791 // From is exported
1792 // To is exported
1793 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1794 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1795 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_To);
1796}
1797private pattern twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) {
1798 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To);
1799}
1800private pattern twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) {
1801 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To);
1802}
1803private pattern twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) {
1804 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To);
1805}
1806// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries matchingAntenna
1807private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(
1808 problem:LogicProblem, interpretation:PartialInterpretation,
1809 var_From, var_To)
1810{
1811 find interpretation(problem,interpretation);
1812 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1813 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1814 // From is exported
1815 // To is exported
1816 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_From);
1817 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0);
1818 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1819 find mustEquivalent(problem, interpretation, var_virtual0, var_FromSys);
1820 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1821 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual1);
1822 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1823 find mustEquivalent(problem, interpretation, var_virtual1, var_ToSys);
1824 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_FromSys,var_ToSys);
1825}
1826private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(
1827 problem:LogicProblem, interpretation:PartialInterpretation,
1828 var_From, var_To)
1829{
1830 find interpretation(problem,interpretation);
1831 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1832 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1833 // From is exported
1834 // To is exported
1835 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_From);
1836 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0);
1837 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1838 find mayEquivalent(problem, interpretation, var_virtual0, var_FromSys);
1839 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1840 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual1);
1841 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1842 find mayEquivalent(problem, interpretation, var_virtual1, var_ToSys);
1843 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_FromSys,var_ToSys);
1844}
1845private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(
1846 problem:LogicProblem, interpretation:PartialInterpretation,
1847 var_From, var_To)
1848{
1849 find interpretation(problem,interpretation);
1850 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1851 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1852 // From is exported
1853 // To is exported
1854 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_From);
1855 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0);
1856 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1857 find mustEquivalent(problem, interpretation, var_virtual0, var_FromSys);
1858 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1859 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual1);
1860 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1861 find mustEquivalent(problem, interpretation, var_virtual1, var_ToSys);
1862 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_FromSys,var_ToSys);
1863}
1864// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries matchingCommSubsystem
1865private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(
1866 problem:LogicProblem, interpretation:PartialInterpretation,
1867 var_From, var_To)
1868{
1869 find interpretation(problem,interpretation);
1870 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1871 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1872 // From is exported
1873 // To is exported
1874 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_From);
1875 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_To);
1876}or{
1877 find interpretation(problem,interpretation);
1878 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1879 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1880 // From is exported
1881 // To is exported
1882 find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_From);
1883 find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_To);
1884}or{
1885 find interpretation(problem,interpretation);
1886 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1887 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1888 // From is exported
1889 // To is exported
1890 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_From);
1891 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_To);
1892}
1893private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(
1894 problem:LogicProblem, interpretation:PartialInterpretation,
1895 var_From, var_To)
1896{
1897 find interpretation(problem,interpretation);
1898 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1899 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1900 // From is exported
1901 // To is exported
1902 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_From);
1903 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_To);
1904}or{
1905 find interpretation(problem,interpretation);
1906 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1907 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1908 // From is exported
1909 // To is exported
1910 find mayInstanceOfXCommSubsystem_class(problem,interpretation,var_From);
1911 find mayInstanceOfXCommSubsystem_class(problem,interpretation,var_To);
1912}or{
1913 find interpretation(problem,interpretation);
1914 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1915 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1916 // From is exported
1917 // To is exported
1918 find mayInstanceOfKaCommSubsystem_class(problem,interpretation,var_From);
1919 find mayInstanceOfKaCommSubsystem_class(problem,interpretation,var_To);
1920}
1921private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(
1922 problem:LogicProblem, interpretation:PartialInterpretation,
1923 var_From, var_To)
1924{
1925 find interpretation(problem,interpretation);
1926 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1927 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1928 // From is exported
1929 // To is exported
1930 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_From);
1931 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_To);
1932}or{
1933 find interpretation(problem,interpretation);
1934 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1935 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1936 // From is exported
1937 // To is exported
1938 find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_From);
1939 find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_To);
1940}or{
1941 find interpretation(problem,interpretation);
1942 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1943 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1944 // From is exported
1945 // To is exported
1946 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_From);
1947 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_To);
1948}
1949// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries cubeSat3U
1950private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(
1951 problem:LogicProblem, interpretation:PartialInterpretation,
1952 var_Sat)
1953{
1954 find interpretation(problem,interpretation);
1955 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1956 // Sat is exported
1957 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1958}
1959private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(
1960 problem:LogicProblem, interpretation:PartialInterpretation,
1961 var_Sat)
1962{
1963 find interpretation(problem,interpretation);
1964 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1965 // Sat is exported
1966 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1967}
1968private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(
1969 problem:LogicProblem, interpretation:PartialInterpretation,
1970 var_Sat)
1971{
1972 find interpretation(problem,interpretation);
1973 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1974 // Sat is exported
1975 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1976}
1977// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries cubeSat6U
1978private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat6U(
1979 problem:LogicProblem, interpretation:PartialInterpretation,
1980 var_Sat)
1981{
1982 find interpretation(problem,interpretation);
1983 find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
1984 // Sat is exported
1985 find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
1986}
1987private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat6U(
1988 problem:LogicProblem, interpretation:PartialInterpretation,
1989 var_Sat)
1990{
1991 find interpretation(problem,interpretation);
1992 find mayInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
1993 // Sat is exported
1994 find mayInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
1995}
1996private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat6U(
1997 problem:LogicProblem, interpretation:PartialInterpretation,
1998 var_Sat)
1999{
2000 find interpretation(problem,interpretation);
2001 find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
2002 // Sat is exported
2003 find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
2004}
2005// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries communicationLoop
2006private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(
2007 problem:LogicProblem, interpretation:PartialInterpretation,
2008 var_Element)
2009{
2010 find interpretation(problem,interpretation);
2011 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
2012 // Element is exported
2013 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element);
2014}
2015private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(
2016 problem:LogicProblem, interpretation:PartialInterpretation,
2017 var_Element)
2018{
2019 find interpretation(problem,interpretation);
2020 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
2021 // Element is exported
2022 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element);
2023}
2024private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(
2025 problem:LogicProblem, interpretation:PartialInterpretation,
2026 var_Element)
2027{
2028 find interpretation(problem,interpretation);
2029 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
2030 // Element is exported
2031 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element);
2032}
2033// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries indirectCommunicationLink
2034private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(
2035 problem:LogicProblem, interpretation:PartialInterpretation,
2036 var_Source, var_Target)
2037{
2038 find interpretation(problem,interpretation);
2039 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2040 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2041 // Source is exported
2042 // Target is exported
2043 find twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target);
2044}
2045private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(
2046 problem:LogicProblem, interpretation:PartialInterpretation,
2047 var_Source, var_Target)
2048{
2049 find interpretation(problem,interpretation);
2050 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2051 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2052 // Source is exported
2053 // Target is exported
2054 find twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target);
2055}
2056private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(
2057 problem:LogicProblem, interpretation:PartialInterpretation,
2058 var_Source, var_Target)
2059{
2060 find interpretation(problem,interpretation);
2061 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2062 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2063 // Source is exported
2064 // Target is exported
2065 find twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target);
2066}
2067// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries directCommunicationLink
2068private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(
2069 problem:LogicProblem, interpretation:PartialInterpretation,
2070 var_Source, var_Target)
2071{
2072 find interpretation(problem,interpretation);
2073 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2074 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2075 // Source is exported
2076 // Target is exported
2077 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2078 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2079 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2080 find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2081 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2082 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual1);
2083 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2084 find mustEquivalent(problem, interpretation, var_virtual1, var_SourceSubsystem);
2085 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2086 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2087 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2088 find mustEquivalent(problem, interpretation, var_virtual2, var_TargetSubsystem);
2089}
2090private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(
2091 problem:LogicProblem, interpretation:PartialInterpretation,
2092 var_Source, var_Target)
2093{
2094 find interpretation(problem,interpretation);
2095 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2096 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2097 // Source is exported
2098 // Target is exported
2099 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2100 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2101 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2102 find mayEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2103 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2104 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual1);
2105 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2106 find mayEquivalent(problem, interpretation, var_virtual1, var_SourceSubsystem);
2107 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2108 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2109 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2110 find mayEquivalent(problem, interpretation, var_virtual2, var_TargetSubsystem);
2111}
2112private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(
2113 problem:LogicProblem, interpretation:PartialInterpretation,
2114 var_Source, var_Target)
2115{
2116 find interpretation(problem,interpretation);
2117 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2118 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2119 // Source is exported
2120 // Target is exported
2121 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2122 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2123 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2124 find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2125 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2126 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual1);
2127 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2128 find mustEquivalent(problem, interpretation, var_virtual1, var_SourceSubsystem);
2129 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2130 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2131 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2132 find mustEquivalent(problem, interpretation, var_virtual2, var_TargetSubsystem);
2133}
2134private pattern twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) {
2135 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target);
2136}
2137private pattern twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) {
2138 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target);
2139}
2140private pattern twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) {
2141 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target);
2142}
2143// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetBand
2144private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(
2145 problem:LogicProblem, interpretation:PartialInterpretation,
2146 var_SourceSubsystem)
2147{
2148 find interpretation(problem,interpretation);
2149 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2150 // SourceSubsystem is exported
2151 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2152 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2153 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2154 find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2155 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_SourceSubsystem,var_TargetSubsystem);
2156}
2157private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(
2158 problem:LogicProblem, interpretation:PartialInterpretation,
2159 var_SourceSubsystem)
2160{
2161 find interpretation(problem,interpretation);
2162 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2163 // SourceSubsystem is exported
2164 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2165 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2166 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2167 find mayEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2168 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_SourceSubsystem,var_TargetSubsystem);
2169}
2170private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(
2171 problem:LogicProblem, interpretation:PartialInterpretation,
2172 var_SourceSubsystem)
2173{
2174 find interpretation(problem,interpretation);
2175 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2176 // SourceSubsystem is exported
2177 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2178 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2179 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2180 find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2181 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_SourceSubsystem,var_TargetSubsystem);
2182}
2183// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries threeUCubeSatWithNonUhfCrossLink
2184private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(
2185 problem:LogicProblem, interpretation:PartialInterpretation,
2186 var_Sat)
2187{
2188 find interpretation(problem,interpretation);
2189 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
2190 // Sat is exported
2191 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat);
2192 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0);
2193 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2194 find mustEquivalent(problem, interpretation, var_virtual0, var_SourceComm);
2195 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm);
2196 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceComm);
2197 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceComm,var_virtual1);
2198 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2199 find mustEquivalent(problem, interpretation, var_virtual1, var_TargetComm);
2200 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2201 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2202 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2203 find mustEquivalent(problem, interpretation, var_virtual2, var_TargetComm);
2204 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target);
2205}
2206private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(
2207 problem:LogicProblem, interpretation:PartialInterpretation,
2208 var_Sat)
2209{
2210 find interpretation(problem,interpretation);
2211 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
2212 // Sat is exported
2213 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat);
2214 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0);
2215 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2216 find mayEquivalent(problem, interpretation, var_virtual0, var_SourceComm);
2217 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm);
2218 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceComm);
2219 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceComm,var_virtual1);
2220 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2221 find mayEquivalent(problem, interpretation, var_virtual1, var_TargetComm);
2222 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2223 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2224 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2225 find mayEquivalent(problem, interpretation, var_virtual2, var_TargetComm);
2226 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target);
2227}
2228private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(
2229 problem:LogicProblem, interpretation:PartialInterpretation,
2230 var_Sat)
2231{
2232 find interpretation(problem,interpretation);
2233 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
2234 // Sat is exported
2235 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat);
2236 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0);
2237 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2238 find mustEquivalent(problem, interpretation, var_virtual0, var_SourceComm);
2239 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm);
2240 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceComm);
2241 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceComm,var_virtual1);
2242 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2243 find mustEquivalent(problem, interpretation, var_virtual1, var_TargetComm);
2244 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2245 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2246 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2247 find mustEquivalent(problem, interpretation, var_virtual2, var_TargetComm);
2248 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target);
2249}
2250// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemBandUhf
2251private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(
2252 problem:LogicProblem, interpretation:PartialInterpretation,
2253 var_Comm)
2254{
2255 find interpretation(problem,interpretation);
2256 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2257 // Comm is exported
2258 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2259}
2260private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(
2261 problem:LogicProblem, interpretation:PartialInterpretation,
2262 var_Comm)
2263{
2264 find interpretation(problem,interpretation);
2265 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2266 // Comm is exported
2267 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2268}
2269private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(
2270 problem:LogicProblem, interpretation:PartialInterpretation,
2271 var_Comm)
2272{
2273 find interpretation(problem,interpretation);
2274 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2275 // Comm is exported
2276 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2277}
2278// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries groundStationNetwork
2279private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(
2280 problem:LogicProblem, interpretation:PartialInterpretation,
2281 var_Network)
2282{
2283 find interpretation(problem,interpretation);
2284 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2285 // Network is exported
2286 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2287}
2288private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(
2289 problem:LogicProblem, interpretation:PartialInterpretation,
2290 var_Network)
2291{
2292 find interpretation(problem,interpretation);
2293 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2294 // Network is exported
2295 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2296}
2297private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(
2298 problem:LogicProblem, interpretation:PartialInterpretation,
2299 var_Network)
2300{
2301 find interpretation(problem,interpretation);
2302 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2303 // Network is exported
2304 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2305}
2306// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries cubeSatWithKaAntenna
2307private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(
2308 problem:LogicProblem, interpretation:PartialInterpretation,
2309 var_Spacecraft)
2310{
2311 find interpretation(problem,interpretation);
2312 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2313 // Spacecraft is exported
2314 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft);
2315 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual0);
2316 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2317 find mustEquivalent(problem, interpretation, var_virtual0, var_Comm);
2318 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_Comm);
2319 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft);
2320}
2321private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(
2322 problem:LogicProblem, interpretation:PartialInterpretation,
2323 var_Spacecraft)
2324{
2325 find interpretation(problem,interpretation);
2326 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2327 // Spacecraft is exported
2328 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft);
2329 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual0);
2330 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2331 find mayEquivalent(problem, interpretation, var_virtual0, var_Comm);
2332 find mayInstanceOfKaCommSubsystem_class(problem,interpretation,var_Comm);
2333 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft);
2334}
2335private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(
2336 problem:LogicProblem, interpretation:PartialInterpretation,
2337 var_Spacecraft)
2338{
2339 find interpretation(problem,interpretation);
2340 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2341 // Spacecraft is exported
2342 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft);
2343 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual0);
2344 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2345 find mustEquivalent(problem, interpretation, var_virtual0, var_Comm);
2346 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_Comm);
2347 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft);
2348}
2349// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries smallSat
2350private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(
2351 problem:LogicProblem, interpretation:PartialInterpretation,
2352 var_Sat)
2353{
2354 find interpretation(problem,interpretation);
2355 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2356 // Sat is exported
2357 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2358}
2359private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(
2360 problem:LogicProblem, interpretation:PartialInterpretation,
2361 var_Sat)
2362{
2363 find interpretation(problem,interpretation);
2364 find mayInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2365 // Sat is exported
2366 find mayInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2367}
2368private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(
2369 problem:LogicProblem, interpretation:PartialInterpretation,
2370 var_Sat)
2371{
2372 find interpretation(problem,interpretation);
2373 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2374 // Sat is exported
2375 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2376}
2377
2378//////////
2379// 1.4 Containment Indexer
2380//////////
2381private pattern mustContains2(source: DefinedElement, target: DefinedElement) {
2382 find mustContains4(_,_,source,target);
2383}
2384
2385private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation,
2386 source: DefinedElement, target: DefinedElement)
2387 { find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,target); }or
2388
2389 { find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,target); }or
2390
2391 { find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,target); }or
2392
2393 { find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,target); }
2394
2395private pattern mustTransitiveContains(source,target) {
2396 find mustContains2+(source,target);
2397}
2398
2399//////////
2400// 2. Invalidation Indexers
2401//////////
2402// 2.1 Invalidated by WF Queries
2403//////////
2404pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem:LogicProblem, interpretation:PartialInterpretation,
2405 var_Element)
2406{
2407 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem,interpretation,var_Element);
2408}
2409pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem:LogicProblem, interpretation:PartialInterpretation,
2410 var_Mission)
2411{
2412 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem,interpretation,var_Mission);
2413}
2414pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2415 var_Spacecraft)
2416{
2417 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem,interpretation,var_Spacecraft);
2418}
2419pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2420 var_Spacecraft)
2421{
2422 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem,interpretation,var_Spacecraft);
2423}
2424pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem:LogicProblem, interpretation:PartialInterpretation,
2425 var_Element)
2426{
2427 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem,interpretation,var_Element);
2428}
2429pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem:LogicProblem, interpretation:PartialInterpretation,
2430 var_SourceSubsystem)
2431{
2432 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem,interpretation,var_SourceSubsystem);
2433}
2434pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem:LogicProblem, interpretation:PartialInterpretation,
2435 var_Sat)
2436{
2437 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem,interpretation,var_Sat);
2438}
2439pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem:LogicProblem, interpretation:PartialInterpretation,
2440 var_Spacecraft)
2441{
2442 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem,interpretation,var_Spacecraft);
2443}
2444
2445//////////
2446// 3. Unfinishedness Indexers
2447//////////
2448// 3.1 Unfinishedness Measured by Multiplicity
2449//////////
2450pattern unfinishedLowerMultiplicity_groundStationNetwork_reference_ConstellationMission(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
2451 find interpretation(problem,interpretation);
2452 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2453 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"groundStationNetwork reference ConstellationMission");
2454 find mustInstanceOfConstellationMission_class(problem,interpretation,object);
2455 numberOfExistingReferences == count find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,object,_);
2456 check(numberOfExistingReferences < 1);
2457 missingMultiplicity == eval(1-numberOfExistingReferences);
2458}
2459pattern unfinishedLowerMultiplicity_spacecraft_reference_ConstellationMission(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
2460 find interpretation(problem,interpretation);
2461 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2462 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"spacecraft reference ConstellationMission");
2463 find mustInstanceOfConstellationMission_class(problem,interpretation,object);
2464 numberOfExistingReferences == count find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,object,_);
2465 check(numberOfExistingReferences < 2);
2466 missingMultiplicity == eval(2-numberOfExistingReferences);
2467}
2468pattern unfinishedLowerMultiplicity_commSubsystem_reference_CommunicatingElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
2469 find interpretation(problem,interpretation);
2470 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2471 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"commSubsystem reference CommunicatingElement");
2472 find mustInstanceOfCommunicatingElement_class(problem,interpretation,object);
2473 numberOfExistingReferences == count find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,object,_);
2474 check(numberOfExistingReferences < 1);
2475 missingMultiplicity == eval(1-numberOfExistingReferences);
2476}
2477
2478//////////
2479// 3.2 Unfinishedness Measured by WF Queries
2480//////////
2481pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem:LogicProblem, interpretation:PartialInterpretation,
2482 var_Element)
2483{
2484 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem,interpretation,var_Element);
2485}
2486pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem:LogicProblem, interpretation:PartialInterpretation,
2487 var_Mission)
2488{
2489 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem,interpretation,var_Mission);
2490}
2491pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2492 var_Spacecraft)
2493{
2494 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem,interpretation,var_Spacecraft);
2495}
2496pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2497 var_Spacecraft)
2498{
2499 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem,interpretation,var_Spacecraft);
2500}
2501pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem:LogicProblem, interpretation:PartialInterpretation,
2502 var_Element)
2503{
2504 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem,interpretation,var_Element);
2505}
2506pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem:LogicProblem, interpretation:PartialInterpretation,
2507 var_SourceSubsystem)
2508{
2509 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem,interpretation,var_SourceSubsystem);
2510}
2511pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem:LogicProblem, interpretation:PartialInterpretation,
2512 var_Sat)
2513{
2514 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem,interpretation,var_Sat);
2515}
2516pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem:LogicProblem, interpretation:PartialInterpretation,
2517 var_Spacecraft)
2518{
2519 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem,interpretation,var_Spacecraft);
2520}
2521
2522//////////
2523// 4. Refinement Indexers
2524//////////
2525// 4.1 Object constructors
2526//////////
2527private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
2528{
2529 find interpretation(problem,interpretation);
2530 find mustInstanceOfCommunicatingElement_class(problem,interpretation,root);
2531 find mustExist(problem, interpretation, root);
2532}or{
2533 find interpretation(problem,interpretation);
2534 find mustInstanceOfConstellationMission_class(problem,interpretation,root);
2535 find mustExist(problem, interpretation, root);
2536}or{
2537 find interpretation(problem,interpretation);
2538 find mustInstanceOfInterferometryPayload_class(problem,interpretation,root);
2539 find mustExist(problem, interpretation, root);
2540}or{
2541 find interpretation(problem,interpretation);
2542 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,root);
2543 find mustExist(problem, interpretation, root);
2544}or{
2545 find interpretation(problem,interpretation);
2546 find mustInstanceOfCommSubsystem_class(problem,interpretation,root);
2547 find mustExist(problem, interpretation, root);
2548}or{
2549 find interpretation(problem,interpretation);
2550 find mustInstanceOfPayload_class(problem,interpretation,root);
2551 find mustExist(problem, interpretation, root);
2552}or{
2553 find interpretation(problem,interpretation);
2554 find mustInstanceOfCubeSat6U_class(problem,interpretation,root);
2555 find mustExist(problem, interpretation, root);
2556}or{
2557 find interpretation(problem,interpretation);
2558 find mustInstanceOfXCommSubsystem_class(problem,interpretation,root);
2559 find mustExist(problem, interpretation, root);
2560}or{
2561 find interpretation(problem,interpretation);
2562 find mustInstanceOfCubeSat3U_class(problem,interpretation,root);
2563 find mustExist(problem, interpretation, root);
2564}or{
2565 find interpretation(problem,interpretation);
2566 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,root);
2567 find mustExist(problem, interpretation, root);
2568}or{
2569 find interpretation(problem,interpretation);
2570 find mustInstanceOfSpacecraft_class(problem,interpretation,root);
2571 find mustExist(problem, interpretation, root);
2572}or{
2573 find interpretation(problem,interpretation);
2574 find mustInstanceOfInterferometryMission_class(problem,interpretation,root);
2575 find mustExist(problem, interpretation, root);
2576}or{
2577 find interpretation(problem,interpretation);
2578 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,root);
2579 find mustExist(problem, interpretation, root);
2580}or{
2581 find interpretation(problem,interpretation);
2582 find mustInstanceOfSmallSat_class(problem,interpretation,root);
2583 find mustExist(problem, interpretation, root);
2584}or{
2585 find interpretation(problem,interpretation);
2586 find mustInstanceOfCubeSat_class(problem,interpretation,root);
2587 find mustExist(problem, interpretation, root);
2588}or{
2589 find interpretation(problem,interpretation);
2590 find mustInstanceOfConstellationMission_class_DefinedPart(problem,interpretation,root);
2591 find mustExist(problem, interpretation, root);
2592}or{
2593 find interpretation(problem,interpretation);
2594 find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,root);
2595 find mustExist(problem, interpretation, root);
2596}or{
2597 find interpretation(problem,interpretation);
2598 find mustInstanceOfInterferometryMission_class_DefinedPart(problem,interpretation,root);
2599 find mustExist(problem, interpretation, root);
2600}or{
2601 find interpretation(problem,interpretation);
2602 find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,root);
2603 find mustExist(problem, interpretation, root);
2604}or{
2605 find interpretation(problem,interpretation);
2606 find mustInstanceOfCommunicatingElement_class_DefinedPart(problem,interpretation,root);
2607 find mustExist(problem, interpretation, root);
2608}or{
2609 find interpretation(problem,interpretation);
2610 find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,root);
2611 find mustExist(problem, interpretation, root);
2612}or{
2613 find interpretation(problem,interpretation);
2614 find mustInstanceOfGroundStationNetwork_class_DefinedPart(problem,interpretation,root);
2615 find mustExist(problem, interpretation, root);
2616}or{
2617 find interpretation(problem,interpretation);
2618 find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,root);
2619 find mustExist(problem, interpretation, root);
2620}or{
2621 find interpretation(problem,interpretation);
2622 find mustInstanceOfCommSubsystem_class_DefinedPart(problem,interpretation,root);
2623 find mustExist(problem, interpretation, root);
2624}or{
2625 find interpretation(problem,interpretation);
2626 find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,root);
2627 find mustExist(problem, interpretation, root);
2628}or{
2629 find interpretation(problem,interpretation);
2630 find mustInstanceOfXCommSubsystem_class_DefinedPart(problem,interpretation,root);
2631 find mustExist(problem, interpretation, root);
2632}or{
2633 find interpretation(problem,interpretation);
2634 find mustInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,root);
2635 find mustExist(problem, interpretation, root);
2636}or{
2637 find interpretation(problem,interpretation);
2638 find mustInstanceOfKaCommSubsystem_class_DefinedPart(problem,interpretation,root);
2639 find mustExist(problem, interpretation, root);
2640}or{
2641 find interpretation(problem,interpretation);
2642 find mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,root);
2643 find mustExist(problem, interpretation, root);
2644}
2645pattern createObject_InterferometryPayload_class_by_payload_reference_Spacecraft(
2646 problem:LogicProblem, interpretation:PartialInterpretation,
2647 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2648 container:DefinedElement)
2649{
2650 find interpretation(problem,interpretation);
2651 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2652 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryPayload class");
2653 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2654 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"payload reference Spacecraft");
2655 find mustInstanceOfSpacecraft_class(problem,interpretation,container);
2656 find mayInstanceOfInterferometryPayload_class(problem,interpretation,newObject);
2657 find mayInRelationpayload_reference_Spacecraft(problem,interpretation,container,newObject);
2658 find mustExist(problem, interpretation, container);
2659 neg find mustExist(problem, interpretation, newObject);
2660}
2661pattern createObject_InterferometryPayload_class(
2662 problem:LogicProblem, interpretation:PartialInterpretation,
2663 typeInterpretation:PartialComplexTypeInterpretation)
2664{
2665 find interpretation(problem,interpretation);
2666 neg find hasElementInContainment(problem,interpretation);
2667 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2668 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryPayload class");
2669 find mayInstanceOfInterferometryPayload_class(problem,interpretation,newObject);
2670 find mayExist(problem, interpretation, newObject);
2671 neg find mustExist(problem, interpretation, newObject);
2672}
2673pattern createObject_CubeSat6U_class_by_spacecraft_reference_ConstellationMission(
2674 problem:LogicProblem, interpretation:PartialInterpretation,
2675 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2676 container:DefinedElement)
2677{
2678 find interpretation(problem,interpretation);
2679 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2680 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat6U class");
2681 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2682 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission");
2683 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2684 find mayInstanceOfCubeSat6U_class(problem,interpretation,newObject);
2685 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject);
2686 find mustExist(problem, interpretation, container);
2687 neg find mustExist(problem, interpretation, newObject);
2688}
2689pattern createObject_CubeSat6U_class(
2690 problem:LogicProblem, interpretation:PartialInterpretation,
2691 typeInterpretation:PartialComplexTypeInterpretation)
2692{
2693 find interpretation(problem,interpretation);
2694 neg find hasElementInContainment(problem,interpretation);
2695 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2696 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat6U class");
2697 find mayInstanceOfCubeSat6U_class(problem,interpretation,newObject);
2698 find mayExist(problem, interpretation, newObject);
2699 neg find mustExist(problem, interpretation, newObject);
2700}
2701pattern createObject_GroundStationNetwork_class_UndefinedPart_by_groundStationNetwork_reference_ConstellationMission(
2702 problem:LogicProblem, interpretation:PartialInterpretation,
2703 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2704 container:DefinedElement)
2705{
2706 find interpretation(problem,interpretation);
2707 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2708 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"GroundStationNetwork class UndefinedPart");
2709 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2710 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"groundStationNetwork reference ConstellationMission");
2711 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2712 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,newObject);
2713 find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,container,newObject);
2714 find mustExist(problem, interpretation, container);
2715 neg find mustExist(problem, interpretation, newObject);
2716}
2717pattern createObject_GroundStationNetwork_class_UndefinedPart(
2718 problem:LogicProblem, interpretation:PartialInterpretation,
2719 typeInterpretation:PartialComplexTypeInterpretation)
2720{
2721 find interpretation(problem,interpretation);
2722 neg find hasElementInContainment(problem,interpretation);
2723 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2724 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"GroundStationNetwork class UndefinedPart");
2725 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,newObject);
2726 find mayExist(problem, interpretation, newObject);
2727 neg find mustExist(problem, interpretation, newObject);
2728}
2729pattern createObject_UHFCommSubsystem_class_by_commSubsystem_reference_CommunicatingElement(
2730 problem:LogicProblem, interpretation:PartialInterpretation,
2731 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2732 container:DefinedElement)
2733{
2734 find interpretation(problem,interpretation);
2735 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2736 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"UHFCommSubsystem class");
2737 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2738 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"commSubsystem reference CommunicatingElement");
2739 find mustInstanceOfCommunicatingElement_class(problem,interpretation,container);
2740 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,newObject);
2741 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,container,newObject);
2742 find mustExist(problem, interpretation, container);
2743 neg find mustExist(problem, interpretation, newObject);
2744}
2745pattern createObject_UHFCommSubsystem_class(
2746 problem:LogicProblem, interpretation:PartialInterpretation,
2747 typeInterpretation:PartialComplexTypeInterpretation)
2748{
2749 find interpretation(problem,interpretation);
2750 neg find hasElementInContainment(problem,interpretation);
2751 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2752 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"UHFCommSubsystem class");
2753 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,newObject);
2754 find mayExist(problem, interpretation, newObject);
2755 neg find mustExist(problem, interpretation, newObject);
2756}
2757pattern createObject_SmallSat_class_by_spacecraft_reference_ConstellationMission(
2758 problem:LogicProblem, interpretation:PartialInterpretation,
2759 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2760 container:DefinedElement)
2761{
2762 find interpretation(problem,interpretation);
2763 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2764 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"SmallSat class");
2765 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2766 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission");
2767 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2768 find mayInstanceOfSmallSat_class(problem,interpretation,newObject);
2769 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject);
2770 find mustExist(problem, interpretation, container);
2771 neg find mustExist(problem, interpretation, newObject);
2772}
2773pattern createObject_SmallSat_class(
2774 problem:LogicProblem, interpretation:PartialInterpretation,
2775 typeInterpretation:PartialComplexTypeInterpretation)
2776{
2777 find interpretation(problem,interpretation);
2778 neg find hasElementInContainment(problem,interpretation);
2779 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2780 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"SmallSat class");
2781 find mayInstanceOfSmallSat_class(problem,interpretation,newObject);
2782 find mayExist(problem, interpretation, newObject);
2783 neg find mustExist(problem, interpretation, newObject);
2784}
2785pattern createObject_KaCommSubsystem_class_UndefinedPart_by_commSubsystem_reference_CommunicatingElement(
2786 problem:LogicProblem, interpretation:PartialInterpretation,
2787 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2788 container:DefinedElement)
2789{
2790 find interpretation(problem,interpretation);
2791 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2792 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"KaCommSubsystem class UndefinedPart");
2793 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2794 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"commSubsystem reference CommunicatingElement");
2795 find mustInstanceOfCommunicatingElement_class(problem,interpretation,container);
2796 find mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2797 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,container,newObject);
2798 find mustExist(problem, interpretation, container);
2799 neg find mustExist(problem, interpretation, newObject);
2800}
2801pattern createObject_KaCommSubsystem_class_UndefinedPart(
2802 problem:LogicProblem, interpretation:PartialInterpretation,
2803 typeInterpretation:PartialComplexTypeInterpretation)
2804{
2805 find interpretation(problem,interpretation);
2806 neg find hasElementInContainment(problem,interpretation);
2807 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2808 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"KaCommSubsystem class UndefinedPart");
2809 find mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2810 find mayExist(problem, interpretation, newObject);
2811 neg find mustExist(problem, interpretation, newObject);
2812}
2813pattern createObject_CubeSat3U_class_by_spacecraft_reference_ConstellationMission(
2814 problem:LogicProblem, interpretation:PartialInterpretation,
2815 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2816 container:DefinedElement)
2817{
2818 find interpretation(problem,interpretation);
2819 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2820 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat3U class");
2821 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2822 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission");
2823 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2824 find mayInstanceOfCubeSat3U_class(problem,interpretation,newObject);
2825 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject);
2826 find mustExist(problem, interpretation, container);
2827 neg find mustExist(problem, interpretation, newObject);
2828}
2829pattern createObject_CubeSat3U_class(
2830 problem:LogicProblem, interpretation:PartialInterpretation,
2831 typeInterpretation:PartialComplexTypeInterpretation)
2832{
2833 find interpretation(problem,interpretation);
2834 neg find hasElementInContainment(problem,interpretation);
2835 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2836 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat3U class");
2837 find mayInstanceOfCubeSat3U_class(problem,interpretation,newObject);
2838 find mayExist(problem, interpretation, newObject);
2839 neg find mustExist(problem, interpretation, newObject);
2840}
2841pattern createObject_XCommSubsystem_class_UndefinedPart_by_commSubsystem_reference_CommunicatingElement(
2842 problem:LogicProblem, interpretation:PartialInterpretation,
2843 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2844 container:DefinedElement)
2845{
2846 find interpretation(problem,interpretation);
2847 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2848 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"XCommSubsystem class UndefinedPart");
2849 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2850 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"commSubsystem reference CommunicatingElement");
2851 find mustInstanceOfCommunicatingElement_class(problem,interpretation,container);
2852 find mayInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2853 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,container,newObject);
2854 find mustExist(problem, interpretation, container);
2855 neg find mustExist(problem, interpretation, newObject);
2856}
2857pattern createObject_XCommSubsystem_class_UndefinedPart(
2858 problem:LogicProblem, interpretation:PartialInterpretation,
2859 typeInterpretation:PartialComplexTypeInterpretation)
2860{
2861 find interpretation(problem,interpretation);
2862 neg find hasElementInContainment(problem,interpretation);
2863 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2864 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"XCommSubsystem class UndefinedPart");
2865 find mayInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2866 find mayExist(problem, interpretation, newObject);
2867 neg find mustExist(problem, interpretation, newObject);
2868}
2869pattern createObject_InterferometryMission_class_UndefinedPart(
2870 problem:LogicProblem, interpretation:PartialInterpretation,
2871 typeInterpretation:PartialComplexTypeInterpretation)
2872{
2873 find interpretation(problem,interpretation);
2874 neg find hasElementInContainment(problem,interpretation);
2875 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2876 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryMission class UndefinedPart");
2877 find mayInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,newObject);
2878 find mayExist(problem, interpretation, newObject);
2879 neg find mustExist(problem, interpretation, newObject);
2880}
2881
2882//////////
2883// 4.2 Type refinement
2884//////////
2885pattern refineTypeTo_InterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2886 find interpretation(problem,interpretation);
2887 PartialInterpretation.newElements(interpretation,element);
2888 find mayInstanceOfInterferometryPayload_class(problem,interpretation,element);
2889 neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element);
2890 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2891 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2892 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2893}
2894pattern refineTypeTo_CubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2895 find interpretation(problem,interpretation);
2896 PartialInterpretation.newElements(interpretation,element);
2897 find mayInstanceOfCubeSat6U_class(problem,interpretation,element);
2898 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2899 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
2900 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
2901 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
2902 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2903 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
2904 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2905}
2906pattern refineTypeTo_GroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2907 find interpretation(problem,interpretation);
2908 PartialInterpretation.newElements(interpretation,element);
2909 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element);
2910 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2911 neg find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element);
2912 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2913 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
2914 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2915}
2916pattern refineTypeTo_UHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2917 find interpretation(problem,interpretation);
2918 PartialInterpretation.newElements(interpretation,element);
2919 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
2920 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2921 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2922 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
2923 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
2924 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2925 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
2926}
2927pattern refineTypeTo_SmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2928 find interpretation(problem,interpretation);
2929 PartialInterpretation.newElements(interpretation,element);
2930 find mayInstanceOfSmallSat_class(problem,interpretation,element);
2931 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2932 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
2933 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
2934 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2935 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
2936 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2937}
2938pattern refineTypeTo_KaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2939 find interpretation(problem,interpretation);
2940 PartialInterpretation.newElements(interpretation,element);
2941 find mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2942 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2943 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2944 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
2945 neg find mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2946 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2947 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
2948}
2949pattern refineTypeTo_CubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2950 find interpretation(problem,interpretation);
2951 PartialInterpretation.newElements(interpretation,element);
2952 find mayInstanceOfCubeSat3U_class(problem,interpretation,element);
2953 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2954 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
2955 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
2956 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
2957 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2958 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
2959 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2960}
2961pattern refineTypeTo_XCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2962 find interpretation(problem,interpretation);
2963 PartialInterpretation.newElements(interpretation,element);
2964 find mayInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2965 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2966 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2967 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
2968 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
2969 neg find mustInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2970 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2971}
2972pattern refineTypeTo_InterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2973 find interpretation(problem,interpretation);
2974 PartialInterpretation.newElements(interpretation,element);
2975 find mayInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element);
2976 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2977 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2978 neg find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element);
2979 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2980}
2981
2982//////////
2983// 4.3 Relation refinement
2984//////////
2985pattern refineRelation_target_reference_CommSubsystem(
2986 problem:LogicProblem, interpretation:PartialInterpretation,
2987 relationIterpretation:PartialRelationInterpretation,
2988 from: DefinedElement, to: DefinedElement)
2989{
2990 find interpretation(problem,interpretation);
2991 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2992 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"target reference CommSubsystem");
2993 find mustExist(problem, interpretation, from);
2994 find mustExist(problem, interpretation, to);
2995 find mustInstanceOfCommSubsystem_class(problem,interpretation,from);
2996 find mustInstanceOfCommSubsystem_class(problem,interpretation,to);
2997 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,from,to);
2998 neg find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,from,to);
2999}
3000
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run4/init.partialmodel b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run4/init.partialmodel
deleted file mode 100644
index 01b90968..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run4/init.partialmodel
+++ /dev/null
@@ -1,147 +0,0 @@
1<?xml version="1.0" encoding="ASCII"?>
2<partialinterpretation:PartialInterpretation xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" xmlns:partialinterpretation="http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" minNewElements="32" maxNewElements="64">
3 <problem href="dummy.dummyext#//@problemConainer"/>
4 <partialrelationinterpretation>
5 <interpretationOf href="dummy.dummyext#//@problemConainer/@relations.0"/>
6 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
7 <param1 href="dummy.dummyext#//@problemConainer/@elements.0"/>
8 <param2 href="dummy.dummyext#//@problemConainer/@elements.1"/>
9 </relationlinks>
10 <param1 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.0/@parameters.0"/>
11 <param2 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.0/@parameters.1"/>
12 </partialrelationinterpretation>
13 <partialrelationinterpretation>
14 <interpretationOf href="dummy.dummyext#//@problemConainer/@relations.1"/>
15 <param1 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.1/@parameters.0"/>
16 <param2 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.1/@parameters.1"/>
17 </partialrelationinterpretation>
18 <partialrelationinterpretation>
19 <interpretationOf href="dummy.dummyext#//@problemConainer/@relations.2"/>
20 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
21 <param1 href="dummy.dummyext#//@problemConainer/@elements.1"/>
22 <param2 href="dummy.dummyext#//@problemConainer/@elements.2"/>
23 </relationlinks>
24 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
25 <param1 href="dummy.dummyext#//@problemConainer/@elements.1"/>
26 <param2 href="dummy.dummyext#//@problemConainer/@elements.3"/>
27 </relationlinks>
28 <param1 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.2/@parameters.0"/>
29 <param2 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.2/@parameters.1"/>
30 </partialrelationinterpretation>
31 <partialrelationinterpretation>
32 <interpretationOf href="dummy.dummyext#//@problemConainer/@relations.3"/>
33 <param1 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.3/@parameters.0"/>
34 <param2 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.3/@parameters.1"/>
35 </partialrelationinterpretation>
36 <partialrelationinterpretation>
37 <interpretationOf href="dummy.dummyext#//@problemConainer/@relations.4"/>
38 <param1 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.4/@parameters.0"/>
39 <param2 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.4/@parameters.1"/>
40 </partialrelationinterpretation>
41 <newElements xsi:type="partialinterpretation:BooleanElement" name="true" valueSet="true" value="true"/>
42 <newElements xsi:type="partialinterpretation:BooleanElement" name="false" valueSet="true"/>
43 <partialtypeinterpratation xsi:type="partialinterpretation:PartialBooleanInterpretation" elements="//@newElements.0 //@newElements.1"/>
44 <partialtypeinterpratation xsi:type="partialinterpretation:PartialIntegerInterpretation" elements="//@openWorldElements.0"/>
45 <partialtypeinterpratation xsi:type="partialinterpretation:PartialRealInterpretation" elements="//@openWorldElements.1"/>
46 <partialtypeinterpratation xsi:type="partialinterpretation:PartialStringInterpretation" elements="//@openWorldElements.2"/>
47 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.0">
48 <elements href="dummy.dummyext#//@problemConainer/@elements.0"/>
49 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.0"/>
50 </partialtypeinterpratation>
51 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.1" supertypeInterpretation="//@partialtypeinterpratation.4">
52 <elements href="dummy.dummyext#//@problemConainer/@elements.0"/>
53 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.1"/>
54 </partialtypeinterpratation>
55 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.2">
56 <elements href="dummy.dummyext#//@problemConainer/@elements.1"/>
57 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.2"/>
58 </partialtypeinterpratation>
59 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.3" supertypeInterpretation="//@partialtypeinterpratation.6">
60 <elements href="dummy.dummyext#//@problemConainer/@elements.1"/>
61 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.3"/>
62 </partialtypeinterpratation>
63 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.4" supertypeInterpretation="//@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
64 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.4"/>
65 </partialtypeinterpratation>
66 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.5">
67 <elements href="dummy.dummyext#//@problemConainer/@elements.2"/>
68 <elements href="dummy.dummyext#//@problemConainer/@elements.3"/>
69 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.5"/>
70 </partialtypeinterpratation>
71 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.6">
72 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.6"/>
73 </partialtypeinterpratation>
74 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.7" supertypeInterpretation="//@partialtypeinterpratation.10">
75 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.7"/>
76 </partialtypeinterpratation>
77 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.8" supertypeInterpretation="//@partialtypeinterpratation.15 //@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
78 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.8"/>
79 </partialtypeinterpratation>
80 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.9" supertypeInterpretation="//@partialtypeinterpratation.15 //@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
81 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.9"/>
82 </partialtypeinterpratation>
83 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.10" supertypeInterpretation="//@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
84 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.10"/>
85 </partialtypeinterpratation>
86 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.11" supertypeInterpretation="//@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
87 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.11"/>
88 </partialtypeinterpratation>
89 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.12" supertypeInterpretation="//@partialtypeinterpratation.9 //@partialtypeinterpratation.23">
90 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.12"/>
91 </partialtypeinterpratation>
92 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.13" supertypeInterpretation="//@partialtypeinterpratation.9">
93 <elements href="dummy.dummyext#//@problemConainer/@elements.2"/>
94 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.13"/>
95 </partialtypeinterpratation>
96 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.14" supertypeInterpretation="//@partialtypeinterpratation.9">
97 <elements href="dummy.dummyext#//@problemConainer/@elements.3"/>
98 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.14"/>
99 </partialtypeinterpratation>
100 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.15" supertypeInterpretation="//@partialtypeinterpratation.4">
101 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.16"/>
102 </partialtypeinterpratation>
103 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.16" supertypeInterpretation="//@partialtypeinterpratation.5 //@partialtypeinterpratation.4 //@partialtypeinterpratation.19">
104 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.18"/>
105 </partialtypeinterpratation>
106 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.17" supertypeInterpretation="//@partialtypeinterpratation.6">
107 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.20"/>
108 </partialtypeinterpratation>
109 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.18" supertypeInterpretation="//@partialtypeinterpratation.7 //@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
110 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.22"/>
111 </partialtypeinterpratation>
112 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.19" supertypeInterpretation="//@partialtypeinterpratation.9">
113 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.24"/>
114 </partialtypeinterpratation>
115 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.20" supertypeInterpretation="//@partialtypeinterpratation.17 //@partialtypeinterpratation.9 //@partialtypeinterpratation.23">
116 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.26"/>
117 </partialtypeinterpratation>
118 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.21" supertypeInterpretation="//@partialtypeinterpratation.18 //@partialtypeinterpratation.9 //@partialtypeinterpratation.23">
119 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.28"/>
120 </partialtypeinterpratation>
121 <openWorldElements xsi:type="partialinterpretation:IntegerElement" name="New Integers"/>
122 <openWorldElements xsi:type="partialinterpretation:RealElement" name="New Reals"/>
123 <openWorldElements xsi:type="partialinterpretation:StringElement" name="New Strings"/>
124 <openWorldElements name="New Objects"/>
125 <scopes targetTypeInterpretation="//@partialtypeinterpratation.4"/>
126 <scopes targetTypeInterpretation="//@partialtypeinterpratation.5"/>
127 <scopes targetTypeInterpretation="//@partialtypeinterpratation.6"/>
128 <scopes targetTypeInterpretation="//@partialtypeinterpratation.7"/>
129 <scopes targetTypeInterpretation="//@partialtypeinterpratation.8"/>
130 <scopes targetTypeInterpretation="//@partialtypeinterpratation.9"/>
131 <scopes targetTypeInterpretation="//@partialtypeinterpratation.10"/>
132 <scopes targetTypeInterpretation="//@partialtypeinterpratation.11"/>
133 <scopes targetTypeInterpretation="//@partialtypeinterpratation.12"/>
134 <scopes targetTypeInterpretation="//@partialtypeinterpratation.13"/>
135 <scopes targetTypeInterpretation="//@partialtypeinterpratation.14"/>
136 <scopes targetTypeInterpretation="//@partialtypeinterpratation.15"/>
137 <scopes targetTypeInterpretation="//@partialtypeinterpratation.16"/>
138 <scopes targetTypeInterpretation="//@partialtypeinterpratation.17"/>
139 <scopes targetTypeInterpretation="//@partialtypeinterpratation.18"/>
140 <scopes targetTypeInterpretation="//@partialtypeinterpratation.19"/>
141 <scopes targetTypeInterpretation="//@partialtypeinterpratation.20"/>
142 <scopes targetTypeInterpretation="//@partialtypeinterpratation.21"/>
143 <scopes targetTypeInterpretation="//@partialtypeinterpratation.22"/>
144 <scopes targetTypeInterpretation="//@partialtypeinterpratation.23"/>
145 <scopes targetTypeInterpretation="//@partialtypeinterpratation.24"/>
146 <scopes targetTypeInterpretation="//@partialtypeinterpratation.25"/>
147</partialinterpretation:PartialInterpretation>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run5/generated3valued.vql_deactivated b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run5/generated3valued.vql_deactivated
deleted file mode 100644
index c96a951c..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run5/generated3valued.vql_deactivated
+++ /dev/null
@@ -1,3000 +0,0 @@
1import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage"
2import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem"
3import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language"
4
5//////////
6// 0. Util
7//////////
8private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) {
9 PartialInterpretation.problem(interpretation,problem);
10}
11
12/////////////////////////
13// 0.1 Existence
14/////////////////////////
15private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
16 find interpretation(problem,interpretation);
17 LogicProblem.elements(problem,element);
18} or {
19 find interpretation(problem,interpretation);
20 PartialInterpretation.newElements(interpretation,element);
21}
22
23private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
24 find mustExist(problem,interpretation,element);
25} or {
26 find interpretation(problem,interpretation);
27 neg find elementCloseWorld(element);
28 PartialInterpretation.openWorldElements(interpretation,element);
29}
30
31private pattern elementCloseWorld(element:DefinedElement) {
32 PartialInterpretation.openWorldElements(i,element);
33 PartialInterpretation.maxNewElements(i,0);
34} or {
35 Scope.targetTypeInterpretation(scope,interpretation);
36 PartialTypeInterpratation.elements(interpretation,element);
37 Scope.maxNewElements(scope,0);
38}
39
40////////////////////////
41// 0.2 Equivalence
42////////////////////////
43pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) {
44 find mayExist(problem,interpretation,a);
45 find mayExist(problem,interpretation,b);
46 a == b;
47}
48pattern mustEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) {
49 find mustExist(problem,interpretation,a);
50 find mustExist(problem,interpretation,b);
51 a == b;
52}
53
54////////////////////////
55// 0.3 Required Patterns by TypeIndexer
56////////////////////////
57private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) {
58 find interpretation(problem,interpretation);
59 LogicProblem.types(problem,type);
60 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
61 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
62}
63
64private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) {
65 find interpretation(problem,interpretation);
66 LogicProblem.types(problem,type);
67 TypeDefinition.elements(type,element);
68} or {
69 find interpretation(problem,interpretation);
70 find typeInterpretation(problem,interpretation,type,typeInterpretation);
71 PartialComplexTypeInterpretation.elements(typeInterpretation,element);
72}
73
74private pattern isPrimitive(element: PrimitiveElement) {
75 PrimitiveElement(element);
76}
77
78//////////
79// 1. Problem-Specific Base Indexers
80//////////
81// 1.1 Type Indexers
82//////////
83// 1.1.1 primitive Type Indexers
84//////////
85
86//////////
87// 1.1.2 domain-specific Type Indexers
88//////////
89/**
90 * An element must be an instance of type "ConstellationMission class".
91 */
92private pattern mustInstanceOfConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
93 Type.name(type,"ConstellationMission class");
94 find directInstanceOf(problem,interpretation,element,type);
95}
96private pattern scopeDisallowsNewConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation) {
97 find interpretation(problem,interpretation);
98 PartialInterpretation.scopes(interpretation,scope);
99 Scope.targetTypeInterpretation(scope,typeInterpretation);
100 Scope.maxNewElements(scope,0);
101 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
102 Type.name(type,"ConstellationMission class");
103}
104
105/**
106 * An element may be an instance of type "ConstellationMission class".
107 */
108private pattern mayInstanceOfConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
109{
110 find interpretation(problem,interpretation);
111 PartialInterpretation.newElements(interpretation,element);
112 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
113 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
114 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
115 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
116 neg find mustInstanceOfPayload_class(problem,interpretation,element);
117 neg find scopeDisallowsNewConstellationMission_class(problem, interpretation);
118 neg find isPrimitive(element);
119} or {
120 find interpretation(problem,interpretation);
121 PartialInterpretation.openWorldElements(interpretation,element);
122 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
123 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
124 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
125 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
126 neg find mustInstanceOfPayload_class(problem,interpretation,element);
127 neg find scopeDisallowsNewConstellationMission_class(problem, interpretation);
128 neg find isPrimitive(element);
129} or
130{ find mustInstanceOfConstellationMission_class(problem,interpretation,element); }
131/**
132 * An element must be an instance of type "InterferometryMission class".
133 */
134private pattern mustInstanceOfInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
135 Type.name(type,"InterferometryMission class");
136 find directInstanceOf(problem,interpretation,element,type);
137}
138private pattern scopeDisallowsNewInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation) {
139 find interpretation(problem,interpretation);
140 PartialInterpretation.scopes(interpretation,scope);
141 Scope.targetTypeInterpretation(scope,typeInterpretation);
142 Scope.maxNewElements(scope,0);
143 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
144 Type.name(type,"InterferometryMission class");
145}
146
147/**
148 * An element may be an instance of type "InterferometryMission class".
149 */
150private pattern mayInstanceOfInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
151{
152 find interpretation(problem,interpretation);
153 PartialInterpretation.newElements(interpretation,element);
154 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
155 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
156 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
157 neg find mustInstanceOfPayload_class(problem,interpretation,element);
158 neg find scopeDisallowsNewInterferometryMission_class(problem, interpretation);
159 neg find isPrimitive(element);
160} or {
161 find interpretation(problem,interpretation);
162 PartialInterpretation.openWorldElements(interpretation,element);
163 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
164 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
165 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
166 neg find mustInstanceOfPayload_class(problem,interpretation,element);
167 neg find scopeDisallowsNewInterferometryMission_class(problem, interpretation);
168 neg find isPrimitive(element);
169} or
170{ find mustInstanceOfInterferometryMission_class(problem,interpretation,element); }
171/**
172 * An element must be an instance of type "CommunicatingElement class".
173 */
174private pattern mustInstanceOfCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
175 Type.name(type,"CommunicatingElement class");
176 find directInstanceOf(problem,interpretation,element,type);
177}
178private pattern scopeDisallowsNewCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
179 find interpretation(problem,interpretation);
180 PartialInterpretation.scopes(interpretation,scope);
181 Scope.targetTypeInterpretation(scope,typeInterpretation);
182 Scope.maxNewElements(scope,0);
183 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
184 Type.name(type,"CommunicatingElement class");
185}
186
187/**
188 * An element may be an instance of type "CommunicatingElement class".
189 */
190private pattern mayInstanceOfCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
191{
192 find interpretation(problem,interpretation);
193 PartialInterpretation.newElements(interpretation,element);
194 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
195 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
196 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
197 neg find mustInstanceOfPayload_class(problem,interpretation,element);
198 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
199 neg find scopeDisallowsNewCommunicatingElement_class(problem, interpretation);
200 neg find isPrimitive(element);
201} or {
202 find interpretation(problem,interpretation);
203 PartialInterpretation.openWorldElements(interpretation,element);
204 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
205 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
206 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
207 neg find mustInstanceOfPayload_class(problem,interpretation,element);
208 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
209 neg find scopeDisallowsNewCommunicatingElement_class(problem, interpretation);
210 neg find isPrimitive(element);
211} or
212{ find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); }
213/**
214 * An element must be an instance of type "GroundStationNetwork class".
215 */
216private pattern mustInstanceOfGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
217 Type.name(type,"GroundStationNetwork class");
218 find directInstanceOf(problem,interpretation,element,type);
219}
220private pattern scopeDisallowsNewGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation) {
221 find interpretation(problem,interpretation);
222 PartialInterpretation.scopes(interpretation,scope);
223 Scope.targetTypeInterpretation(scope,typeInterpretation);
224 Scope.maxNewElements(scope,0);
225 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
226 Type.name(type,"GroundStationNetwork class");
227}
228
229/**
230 * An element may be an instance of type "GroundStationNetwork class".
231 */
232private pattern mayInstanceOfGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
233{
234 find interpretation(problem,interpretation);
235 PartialInterpretation.newElements(interpretation,element);
236 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
237 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
238 neg find mustInstanceOfPayload_class(problem,interpretation,element);
239 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
240 neg find scopeDisallowsNewGroundStationNetwork_class(problem, interpretation);
241 neg find isPrimitive(element);
242} or {
243 find interpretation(problem,interpretation);
244 PartialInterpretation.openWorldElements(interpretation,element);
245 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
246 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
247 neg find mustInstanceOfPayload_class(problem,interpretation,element);
248 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
249 neg find scopeDisallowsNewGroundStationNetwork_class(problem, interpretation);
250 neg find isPrimitive(element);
251} or
252{ find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); }
253/**
254 * An element must be an instance of type "Spacecraft class".
255 */
256private pattern mustInstanceOfSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
257 Type.name(type,"Spacecraft class");
258 find directInstanceOf(problem,interpretation,element,type);
259}
260private pattern scopeDisallowsNewSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation) {
261 find interpretation(problem,interpretation);
262 PartialInterpretation.scopes(interpretation,scope);
263 Scope.targetTypeInterpretation(scope,typeInterpretation);
264 Scope.maxNewElements(scope,0);
265 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
266 Type.name(type,"Spacecraft class");
267}
268
269/**
270 * An element may be an instance of type "Spacecraft class".
271 */
272private pattern mayInstanceOfSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
273{
274 find interpretation(problem,interpretation);
275 PartialInterpretation.newElements(interpretation,element);
276 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
277 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
278 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
279 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
280 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
281 neg find mustInstanceOfPayload_class(problem,interpretation,element);
282 neg find scopeDisallowsNewSpacecraft_class(problem, interpretation);
283 neg find isPrimitive(element);
284} or {
285 find interpretation(problem,interpretation);
286 PartialInterpretation.openWorldElements(interpretation,element);
287 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
288 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
289 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
290 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
291 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
292 neg find mustInstanceOfPayload_class(problem,interpretation,element);
293 neg find scopeDisallowsNewSpacecraft_class(problem, interpretation);
294 neg find isPrimitive(element);
295} or
296{ find mustInstanceOfSpacecraft_class(problem,interpretation,element); }
297/**
298 * An element must be an instance of type "CommSubsystem class".
299 */
300private pattern mustInstanceOfCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
301 Type.name(type,"CommSubsystem class");
302 find directInstanceOf(problem,interpretation,element,type);
303}
304private pattern scopeDisallowsNewCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) {
305 find interpretation(problem,interpretation);
306 PartialInterpretation.scopes(interpretation,scope);
307 Scope.targetTypeInterpretation(scope,typeInterpretation);
308 Scope.maxNewElements(scope,0);
309 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
310 Type.name(type,"CommSubsystem class");
311}
312
313/**
314 * An element may be an instance of type "CommSubsystem class".
315 */
316private pattern mayInstanceOfCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
317{
318 find interpretation(problem,interpretation);
319 PartialInterpretation.newElements(interpretation,element);
320 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
321 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
322 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
323 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
324 neg find mustInstanceOfPayload_class(problem,interpretation,element);
325 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
326 neg find scopeDisallowsNewCommSubsystem_class(problem, interpretation);
327 neg find isPrimitive(element);
328} or {
329 find interpretation(problem,interpretation);
330 PartialInterpretation.openWorldElements(interpretation,element);
331 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
332 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
333 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
334 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
335 neg find mustInstanceOfPayload_class(problem,interpretation,element);
336 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
337 neg find scopeDisallowsNewCommSubsystem_class(problem, interpretation);
338 neg find isPrimitive(element);
339} or
340{ find mustInstanceOfCommSubsystem_class(problem,interpretation,element); }
341/**
342 * An element must be an instance of type "Payload class".
343 */
344private pattern mustInstanceOfPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
345 Type.name(type,"Payload class");
346 find directInstanceOf(problem,interpretation,element,type);
347}
348private pattern scopeDisallowsNewPayload_class(problem:LogicProblem, interpretation:PartialInterpretation) {
349 find interpretation(problem,interpretation);
350 PartialInterpretation.scopes(interpretation,scope);
351 Scope.targetTypeInterpretation(scope,typeInterpretation);
352 Scope.maxNewElements(scope,0);
353 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
354 Type.name(type,"Payload class");
355}
356
357/**
358 * An element may be an instance of type "Payload class".
359 */
360private pattern mayInstanceOfPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
361{
362 find interpretation(problem,interpretation);
363 PartialInterpretation.newElements(interpretation,element);
364 neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element);
365 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
366 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
367 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
368 neg find scopeDisallowsNewPayload_class(problem, interpretation);
369 neg find isPrimitive(element);
370} or {
371 find interpretation(problem,interpretation);
372 PartialInterpretation.openWorldElements(interpretation,element);
373 neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element);
374 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
375 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
376 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
377 neg find scopeDisallowsNewPayload_class(problem, interpretation);
378 neg find isPrimitive(element);
379} or
380{ find mustInstanceOfPayload_class(problem,interpretation,element); }
381/**
382 * An element must be an instance of type "InterferometryPayload class".
383 */
384private pattern mustInstanceOfInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
385 Type.name(type,"InterferometryPayload class");
386 find directInstanceOf(problem,interpretation,element,type);
387}
388private pattern scopeDisallowsNewInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation) {
389 find interpretation(problem,interpretation);
390 PartialInterpretation.scopes(interpretation,scope);
391 Scope.targetTypeInterpretation(scope,typeInterpretation);
392 Scope.maxNewElements(scope,0);
393 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
394 Type.name(type,"InterferometryPayload class");
395}
396
397/**
398 * An element may be an instance of type "InterferometryPayload class".
399 */
400private pattern mayInstanceOfInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
401{
402 find interpretation(problem,interpretation);
403 PartialInterpretation.newElements(interpretation,element);
404 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
405 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
406 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
407 neg find scopeDisallowsNewInterferometryPayload_class(problem, interpretation);
408 neg find isPrimitive(element);
409} or {
410 find interpretation(problem,interpretation);
411 PartialInterpretation.openWorldElements(interpretation,element);
412 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
413 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
414 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
415 neg find scopeDisallowsNewInterferometryPayload_class(problem, interpretation);
416 neg find isPrimitive(element);
417} or
418{ find mustInstanceOfInterferometryPayload_class(problem,interpretation,element); }
419/**
420 * An element must be an instance of type "CubeSat3U class".
421 */
422private pattern mustInstanceOfCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
423 Type.name(type,"CubeSat3U class");
424 find directInstanceOf(problem,interpretation,element,type);
425}
426private pattern scopeDisallowsNewCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation) {
427 find interpretation(problem,interpretation);
428 PartialInterpretation.scopes(interpretation,scope);
429 Scope.targetTypeInterpretation(scope,typeInterpretation);
430 Scope.maxNewElements(scope,0);
431 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
432 Type.name(type,"CubeSat3U class");
433}
434
435/**
436 * An element may be an instance of type "CubeSat3U class".
437 */
438private pattern mayInstanceOfCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
439{
440 find interpretation(problem,interpretation);
441 PartialInterpretation.newElements(interpretation,element);
442 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
443 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
444 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
445 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
446 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
447 neg find mustInstanceOfPayload_class(problem,interpretation,element);
448 neg find scopeDisallowsNewCubeSat3U_class(problem, interpretation);
449 neg find isPrimitive(element);
450} or {
451 find interpretation(problem,interpretation);
452 PartialInterpretation.openWorldElements(interpretation,element);
453 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
454 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
455 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
456 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
457 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
458 neg find mustInstanceOfPayload_class(problem,interpretation,element);
459 neg find scopeDisallowsNewCubeSat3U_class(problem, interpretation);
460 neg find isPrimitive(element);
461} or
462{ find mustInstanceOfCubeSat3U_class(problem,interpretation,element); }
463/**
464 * An element must be an instance of type "CubeSat6U class".
465 */
466private pattern mustInstanceOfCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
467 Type.name(type,"CubeSat6U class");
468 find directInstanceOf(problem,interpretation,element,type);
469}
470private pattern scopeDisallowsNewCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation) {
471 find interpretation(problem,interpretation);
472 PartialInterpretation.scopes(interpretation,scope);
473 Scope.targetTypeInterpretation(scope,typeInterpretation);
474 Scope.maxNewElements(scope,0);
475 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
476 Type.name(type,"CubeSat6U class");
477}
478
479/**
480 * An element may be an instance of type "CubeSat6U class".
481 */
482private pattern mayInstanceOfCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
483{
484 find interpretation(problem,interpretation);
485 PartialInterpretation.newElements(interpretation,element);
486 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
487 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
488 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
489 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
490 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
491 neg find mustInstanceOfPayload_class(problem,interpretation,element);
492 neg find scopeDisallowsNewCubeSat6U_class(problem, interpretation);
493 neg find isPrimitive(element);
494} or {
495 find interpretation(problem,interpretation);
496 PartialInterpretation.openWorldElements(interpretation,element);
497 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
498 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
499 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
500 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
501 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
502 neg find mustInstanceOfPayload_class(problem,interpretation,element);
503 neg find scopeDisallowsNewCubeSat6U_class(problem, interpretation);
504 neg find isPrimitive(element);
505} or
506{ find mustInstanceOfCubeSat6U_class(problem,interpretation,element); }
507/**
508 * An element must be an instance of type "SmallSat class".
509 */
510private pattern mustInstanceOfSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
511 Type.name(type,"SmallSat class");
512 find directInstanceOf(problem,interpretation,element,type);
513}
514private pattern scopeDisallowsNewSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation) {
515 find interpretation(problem,interpretation);
516 PartialInterpretation.scopes(interpretation,scope);
517 Scope.targetTypeInterpretation(scope,typeInterpretation);
518 Scope.maxNewElements(scope,0);
519 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
520 Type.name(type,"SmallSat class");
521}
522
523/**
524 * An element may be an instance of type "SmallSat class".
525 */
526private pattern mayInstanceOfSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
527{
528 find interpretation(problem,interpretation);
529 PartialInterpretation.newElements(interpretation,element);
530 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
531 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
532 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
533 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
534 neg find mustInstanceOfPayload_class(problem,interpretation,element);
535 neg find scopeDisallowsNewSmallSat_class(problem, interpretation);
536 neg find isPrimitive(element);
537} or {
538 find interpretation(problem,interpretation);
539 PartialInterpretation.openWorldElements(interpretation,element);
540 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
541 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
542 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
543 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
544 neg find mustInstanceOfPayload_class(problem,interpretation,element);
545 neg find scopeDisallowsNewSmallSat_class(problem, interpretation);
546 neg find isPrimitive(element);
547} or
548{ find mustInstanceOfSmallSat_class(problem,interpretation,element); }
549/**
550 * An element must be an instance of type "CubeSat class".
551 */
552private pattern mustInstanceOfCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
553 Type.name(type,"CubeSat class");
554 find directInstanceOf(problem,interpretation,element,type);
555}
556private pattern scopeDisallowsNewCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation) {
557 find interpretation(problem,interpretation);
558 PartialInterpretation.scopes(interpretation,scope);
559 Scope.targetTypeInterpretation(scope,typeInterpretation);
560 Scope.maxNewElements(scope,0);
561 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
562 Type.name(type,"CubeSat class");
563}
564
565/**
566 * An element may be an instance of type "CubeSat class".
567 */
568private pattern mayInstanceOfCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
569{
570 find interpretation(problem,interpretation);
571 PartialInterpretation.newElements(interpretation,element);
572 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
573 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
574 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
575 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
576 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
577 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
578 neg find mustInstanceOfPayload_class(problem,interpretation,element);
579 neg find scopeDisallowsNewCubeSat_class(problem, interpretation);
580 neg find isPrimitive(element);
581} or {
582 find interpretation(problem,interpretation);
583 PartialInterpretation.openWorldElements(interpretation,element);
584 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
585 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
586 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
587 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
588 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
589 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
590 neg find mustInstanceOfPayload_class(problem,interpretation,element);
591 neg find scopeDisallowsNewCubeSat_class(problem, interpretation);
592 neg find isPrimitive(element);
593} or
594{ find mustInstanceOfCubeSat_class(problem,interpretation,element); }
595/**
596 * An element must be an instance of type "UHFCommSubsystem class".
597 */
598private pattern mustInstanceOfUHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
599 Type.name(type,"UHFCommSubsystem class");
600 find directInstanceOf(problem,interpretation,element,type);
601}
602private pattern scopeDisallowsNewUHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) {
603 find interpretation(problem,interpretation);
604 PartialInterpretation.scopes(interpretation,scope);
605 Scope.targetTypeInterpretation(scope,typeInterpretation);
606 Scope.maxNewElements(scope,0);
607 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
608 Type.name(type,"UHFCommSubsystem class");
609}
610
611/**
612 * An element may be an instance of type "UHFCommSubsystem class".
613 */
614private pattern mayInstanceOfUHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
615{
616 find interpretation(problem,interpretation);
617 PartialInterpretation.newElements(interpretation,element);
618 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
619 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
620 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
621 neg find mustInstanceOfPayload_class(problem,interpretation,element);
622 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
623 neg find scopeDisallowsNewUHFCommSubsystem_class(problem, interpretation);
624 neg find isPrimitive(element);
625} or {
626 find interpretation(problem,interpretation);
627 PartialInterpretation.openWorldElements(interpretation,element);
628 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
629 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
630 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
631 neg find mustInstanceOfPayload_class(problem,interpretation,element);
632 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
633 neg find scopeDisallowsNewUHFCommSubsystem_class(problem, interpretation);
634 neg find isPrimitive(element);
635} or
636{ find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element); }
637/**
638 * An element must be an instance of type "XCommSubsystem class".
639 */
640private pattern mustInstanceOfXCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
641 Type.name(type,"XCommSubsystem class");
642 find directInstanceOf(problem,interpretation,element,type);
643}
644private pattern scopeDisallowsNewXCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) {
645 find interpretation(problem,interpretation);
646 PartialInterpretation.scopes(interpretation,scope);
647 Scope.targetTypeInterpretation(scope,typeInterpretation);
648 Scope.maxNewElements(scope,0);
649 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
650 Type.name(type,"XCommSubsystem class");
651}
652
653/**
654 * An element may be an instance of type "XCommSubsystem class".
655 */
656private pattern mayInstanceOfXCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
657{
658 find interpretation(problem,interpretation);
659 PartialInterpretation.newElements(interpretation,element);
660 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
661 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
662 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
663 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
664 neg find mustInstanceOfPayload_class(problem,interpretation,element);
665 neg find scopeDisallowsNewXCommSubsystem_class(problem, interpretation);
666 neg find isPrimitive(element);
667} or {
668 find interpretation(problem,interpretation);
669 PartialInterpretation.openWorldElements(interpretation,element);
670 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
671 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
672 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
673 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
674 neg find mustInstanceOfPayload_class(problem,interpretation,element);
675 neg find scopeDisallowsNewXCommSubsystem_class(problem, interpretation);
676 neg find isPrimitive(element);
677} or
678{ find mustInstanceOfXCommSubsystem_class(problem,interpretation,element); }
679/**
680 * An element must be an instance of type "KaCommSubsystem class".
681 */
682private pattern mustInstanceOfKaCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
683 Type.name(type,"KaCommSubsystem class");
684 find directInstanceOf(problem,interpretation,element,type);
685}
686private pattern scopeDisallowsNewKaCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) {
687 find interpretation(problem,interpretation);
688 PartialInterpretation.scopes(interpretation,scope);
689 Scope.targetTypeInterpretation(scope,typeInterpretation);
690 Scope.maxNewElements(scope,0);
691 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
692 Type.name(type,"KaCommSubsystem class");
693}
694
695/**
696 * An element may be an instance of type "KaCommSubsystem class".
697 */
698private pattern mayInstanceOfKaCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
699{
700 find interpretation(problem,interpretation);
701 PartialInterpretation.newElements(interpretation,element);
702 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
703 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
704 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
705 neg find mustInstanceOfPayload_class(problem,interpretation,element);
706 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
707 neg find scopeDisallowsNewKaCommSubsystem_class(problem, interpretation);
708 neg find isPrimitive(element);
709} or {
710 find interpretation(problem,interpretation);
711 PartialInterpretation.openWorldElements(interpretation,element);
712 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
713 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
714 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
715 neg find mustInstanceOfPayload_class(problem,interpretation,element);
716 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
717 neg find scopeDisallowsNewKaCommSubsystem_class(problem, interpretation);
718 neg find isPrimitive(element);
719} or
720{ find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element); }
721/**
722 * An element must be an instance of type "ConstellationMission class DefinedPart".
723 */
724private pattern mustInstanceOfConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
725 Type.name(type,"ConstellationMission class DefinedPart");
726 find directInstanceOf(problem,interpretation,element,type);
727}
728private pattern scopeDisallowsNewConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
729 find interpretation(problem,interpretation);
730 PartialInterpretation.scopes(interpretation,scope);
731 Scope.targetTypeInterpretation(scope,typeInterpretation);
732 Scope.maxNewElements(scope,0);
733 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
734 Type.name(type,"ConstellationMission class DefinedPart");
735}
736
737/**
738 * An element may be an instance of type "ConstellationMission class DefinedPart".
739 */
740private pattern mayInstanceOfConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
741{ find mustInstanceOfConstellationMission_class_DefinedPart(problem,interpretation,element); }
742/**
743 * An element must be an instance of type "ConstellationMission class UndefinedPart".
744 */
745private pattern mustInstanceOfConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
746 Type.name(type,"ConstellationMission class UndefinedPart");
747 find directInstanceOf(problem,interpretation,element,type);
748}
749private pattern scopeDisallowsNewConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
750 find interpretation(problem,interpretation);
751 PartialInterpretation.scopes(interpretation,scope);
752 Scope.targetTypeInterpretation(scope,typeInterpretation);
753 Scope.maxNewElements(scope,0);
754 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
755 Type.name(type,"ConstellationMission class UndefinedPart");
756}
757
758/**
759 * An element may be an instance of type "ConstellationMission class UndefinedPart".
760 */
761private pattern mayInstanceOfConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
762{
763 find interpretation(problem,interpretation);
764 PartialInterpretation.newElements(interpretation,element);
765 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
766 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
767 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
768 neg find mustInstanceOfPayload_class(problem,interpretation,element);
769 neg find scopeDisallowsNewConstellationMission_class_UndefinedPart(problem, interpretation);
770 neg find isPrimitive(element);
771} or {
772 find interpretation(problem,interpretation);
773 PartialInterpretation.openWorldElements(interpretation,element);
774 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
775 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
776 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
777 neg find mustInstanceOfPayload_class(problem,interpretation,element);
778 neg find scopeDisallowsNewConstellationMission_class_UndefinedPart(problem, interpretation);
779 neg find isPrimitive(element);
780} or
781{ find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element); }
782/**
783 * An element must be an instance of type "InterferometryMission class DefinedPart".
784 */
785private pattern mustInstanceOfInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
786 Type.name(type,"InterferometryMission class DefinedPart");
787 find directInstanceOf(problem,interpretation,element,type);
788}
789private pattern scopeDisallowsNewInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
790 find interpretation(problem,interpretation);
791 PartialInterpretation.scopes(interpretation,scope);
792 Scope.targetTypeInterpretation(scope,typeInterpretation);
793 Scope.maxNewElements(scope,0);
794 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
795 Type.name(type,"InterferometryMission class DefinedPart");
796}
797
798/**
799 * An element may be an instance of type "InterferometryMission class DefinedPart".
800 */
801private pattern mayInstanceOfInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
802{ find mustInstanceOfInterferometryMission_class_DefinedPart(problem,interpretation,element); }
803/**
804 * An element must be an instance of type "InterferometryMission class UndefinedPart".
805 */
806private pattern mustInstanceOfInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
807 Type.name(type,"InterferometryMission class UndefinedPart");
808 find directInstanceOf(problem,interpretation,element,type);
809}
810private pattern scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
811 find interpretation(problem,interpretation);
812 PartialInterpretation.scopes(interpretation,scope);
813 Scope.targetTypeInterpretation(scope,typeInterpretation);
814 Scope.maxNewElements(scope,0);
815 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
816 Type.name(type,"InterferometryMission class UndefinedPart");
817}
818
819/**
820 * An element may be an instance of type "InterferometryMission class UndefinedPart".
821 */
822private pattern mayInstanceOfInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
823{
824 find interpretation(problem,interpretation);
825 PartialInterpretation.newElements(interpretation,element);
826 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
827 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
828 neg find mustInstanceOfPayload_class(problem,interpretation,element);
829 neg find scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem, interpretation);
830 neg find isPrimitive(element);
831} or {
832 find interpretation(problem,interpretation);
833 PartialInterpretation.openWorldElements(interpretation,element);
834 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
835 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
836 neg find mustInstanceOfPayload_class(problem,interpretation,element);
837 neg find scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem, interpretation);
838 neg find isPrimitive(element);
839} or
840{ find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element); }
841/**
842 * An element must be an instance of type "CommunicatingElement class DefinedPart".
843 */
844private pattern mustInstanceOfCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
845 Type.name(type,"CommunicatingElement class DefinedPart");
846 find directInstanceOf(problem,interpretation,element,type);
847}
848private pattern scopeDisallowsNewCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
849 find interpretation(problem,interpretation);
850 PartialInterpretation.scopes(interpretation,scope);
851 Scope.targetTypeInterpretation(scope,typeInterpretation);
852 Scope.maxNewElements(scope,0);
853 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
854 Type.name(type,"CommunicatingElement class DefinedPart");
855}
856
857/**
858 * An element may be an instance of type "CommunicatingElement class DefinedPart".
859 */
860private pattern mayInstanceOfCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
861{ find mustInstanceOfCommunicatingElement_class_DefinedPart(problem,interpretation,element); }
862/**
863 * An element must be an instance of type "CommunicatingElement class UndefinedPart".
864 */
865private pattern mustInstanceOfCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
866 Type.name(type,"CommunicatingElement class UndefinedPart");
867 find directInstanceOf(problem,interpretation,element,type);
868}
869private pattern scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
870 find interpretation(problem,interpretation);
871 PartialInterpretation.scopes(interpretation,scope);
872 Scope.targetTypeInterpretation(scope,typeInterpretation);
873 Scope.maxNewElements(scope,0);
874 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
875 Type.name(type,"CommunicatingElement class UndefinedPart");
876}
877
878/**
879 * An element may be an instance of type "CommunicatingElement class UndefinedPart".
880 */
881private pattern mayInstanceOfCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
882{
883 find interpretation(problem,interpretation);
884 PartialInterpretation.newElements(interpretation,element);
885 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
886 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
887 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
888 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
889 neg find mustInstanceOfPayload_class(problem,interpretation,element);
890 neg find scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem, interpretation);
891 neg find isPrimitive(element);
892} or {
893 find interpretation(problem,interpretation);
894 PartialInterpretation.openWorldElements(interpretation,element);
895 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
896 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
897 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
898 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
899 neg find mustInstanceOfPayload_class(problem,interpretation,element);
900 neg find scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem, interpretation);
901 neg find isPrimitive(element);
902} or
903{ find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element); }
904/**
905 * An element must be an instance of type "GroundStationNetwork class DefinedPart".
906 */
907private pattern mustInstanceOfGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
908 Type.name(type,"GroundStationNetwork class DefinedPart");
909 find directInstanceOf(problem,interpretation,element,type);
910}
911private pattern scopeDisallowsNewGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
912 find interpretation(problem,interpretation);
913 PartialInterpretation.scopes(interpretation,scope);
914 Scope.targetTypeInterpretation(scope,typeInterpretation);
915 Scope.maxNewElements(scope,0);
916 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
917 Type.name(type,"GroundStationNetwork class DefinedPart");
918}
919
920/**
921 * An element may be an instance of type "GroundStationNetwork class DefinedPart".
922 */
923private pattern mayInstanceOfGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
924{ find mustInstanceOfGroundStationNetwork_class_DefinedPart(problem,interpretation,element); }
925/**
926 * An element must be an instance of type "GroundStationNetwork class UndefinedPart".
927 */
928private pattern mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
929 Type.name(type,"GroundStationNetwork class UndefinedPart");
930 find directInstanceOf(problem,interpretation,element,type);
931}
932private pattern scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
933 find interpretation(problem,interpretation);
934 PartialInterpretation.scopes(interpretation,scope);
935 Scope.targetTypeInterpretation(scope,typeInterpretation);
936 Scope.maxNewElements(scope,0);
937 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
938 Type.name(type,"GroundStationNetwork class UndefinedPart");
939}
940
941/**
942 * An element may be an instance of type "GroundStationNetwork class UndefinedPart".
943 */
944private pattern mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
945{
946 find interpretation(problem,interpretation);
947 PartialInterpretation.newElements(interpretation,element);
948 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
949 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
950 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
951 neg find mustInstanceOfPayload_class(problem,interpretation,element);
952 neg find scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem, interpretation);
953 neg find isPrimitive(element);
954} or {
955 find interpretation(problem,interpretation);
956 PartialInterpretation.openWorldElements(interpretation,element);
957 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
958 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
959 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
960 neg find mustInstanceOfPayload_class(problem,interpretation,element);
961 neg find scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem, interpretation);
962 neg find isPrimitive(element);
963} or
964{ find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element); }
965/**
966 * An element must be an instance of type "CommSubsystem class DefinedPart".
967 */
968private pattern mustInstanceOfCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
969 Type.name(type,"CommSubsystem class DefinedPart");
970 find directInstanceOf(problem,interpretation,element,type);
971}
972private pattern scopeDisallowsNewCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
973 find interpretation(problem,interpretation);
974 PartialInterpretation.scopes(interpretation,scope);
975 Scope.targetTypeInterpretation(scope,typeInterpretation);
976 Scope.maxNewElements(scope,0);
977 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
978 Type.name(type,"CommSubsystem class DefinedPart");
979}
980
981/**
982 * An element may be an instance of type "CommSubsystem class DefinedPart".
983 */
984private pattern mayInstanceOfCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
985{ find mustInstanceOfCommSubsystem_class_DefinedPart(problem,interpretation,element); }
986/**
987 * An element must be an instance of type "CommSubsystem class UndefinedPart".
988 */
989private pattern mustInstanceOfCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
990 Type.name(type,"CommSubsystem class UndefinedPart");
991 find directInstanceOf(problem,interpretation,element,type);
992}
993private pattern scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
994 find interpretation(problem,interpretation);
995 PartialInterpretation.scopes(interpretation,scope);
996 Scope.targetTypeInterpretation(scope,typeInterpretation);
997 Scope.maxNewElements(scope,0);
998 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
999 Type.name(type,"CommSubsystem class UndefinedPart");
1000}
1001
1002/**
1003 * An element may be an instance of type "CommSubsystem class UndefinedPart".
1004 */
1005private pattern mayInstanceOfCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1006{
1007 find interpretation(problem,interpretation);
1008 PartialInterpretation.newElements(interpretation,element);
1009 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1010 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1011 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1012 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
1013 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1014 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
1015 neg find scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem, interpretation);
1016 neg find isPrimitive(element);
1017} or {
1018 find interpretation(problem,interpretation);
1019 PartialInterpretation.openWorldElements(interpretation,element);
1020 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1021 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1022 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1023 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
1024 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1025 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
1026 neg find scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem, interpretation);
1027 neg find isPrimitive(element);
1028} or
1029{ find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element); }
1030/**
1031 * An element must be an instance of type "XCommSubsystem class DefinedPart".
1032 */
1033private pattern mustInstanceOfXCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
1034 Type.name(type,"XCommSubsystem class DefinedPart");
1035 find directInstanceOf(problem,interpretation,element,type);
1036}
1037private pattern scopeDisallowsNewXCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
1038 find interpretation(problem,interpretation);
1039 PartialInterpretation.scopes(interpretation,scope);
1040 Scope.targetTypeInterpretation(scope,typeInterpretation);
1041 Scope.maxNewElements(scope,0);
1042 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
1043 Type.name(type,"XCommSubsystem class DefinedPart");
1044}
1045
1046/**
1047 * An element may be an instance of type "XCommSubsystem class DefinedPart".
1048 */
1049private pattern mayInstanceOfXCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1050{ find mustInstanceOfXCommSubsystem_class_DefinedPart(problem,interpretation,element); }
1051/**
1052 * An element must be an instance of type "XCommSubsystem class UndefinedPart".
1053 */
1054private pattern mustInstanceOfXCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
1055 Type.name(type,"XCommSubsystem class UndefinedPart");
1056 find directInstanceOf(problem,interpretation,element,type);
1057}
1058private pattern scopeDisallowsNewXCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
1059 find interpretation(problem,interpretation);
1060 PartialInterpretation.scopes(interpretation,scope);
1061 Scope.targetTypeInterpretation(scope,typeInterpretation);
1062 Scope.maxNewElements(scope,0);
1063 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
1064 Type.name(type,"XCommSubsystem class UndefinedPart");
1065}
1066
1067/**
1068 * An element may be an instance of type "XCommSubsystem class UndefinedPart".
1069 */
1070private pattern mayInstanceOfXCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1071{
1072 find interpretation(problem,interpretation);
1073 PartialInterpretation.newElements(interpretation,element);
1074 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1075 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1076 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1077 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
1078 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1079 neg find scopeDisallowsNewXCommSubsystem_class_UndefinedPart(problem, interpretation);
1080 neg find isPrimitive(element);
1081} or {
1082 find interpretation(problem,interpretation);
1083 PartialInterpretation.openWorldElements(interpretation,element);
1084 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1085 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1086 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1087 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
1088 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1089 neg find scopeDisallowsNewXCommSubsystem_class_UndefinedPart(problem, interpretation);
1090 neg find isPrimitive(element);
1091} or
1092{ find mustInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,element); }
1093/**
1094 * An element must be an instance of type "KaCommSubsystem class DefinedPart".
1095 */
1096private pattern mustInstanceOfKaCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
1097 Type.name(type,"KaCommSubsystem class DefinedPart");
1098 find directInstanceOf(problem,interpretation,element,type);
1099}
1100private pattern scopeDisallowsNewKaCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
1101 find interpretation(problem,interpretation);
1102 PartialInterpretation.scopes(interpretation,scope);
1103 Scope.targetTypeInterpretation(scope,typeInterpretation);
1104 Scope.maxNewElements(scope,0);
1105 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
1106 Type.name(type,"KaCommSubsystem class DefinedPart");
1107}
1108
1109/**
1110 * An element may be an instance of type "KaCommSubsystem class DefinedPart".
1111 */
1112private pattern mayInstanceOfKaCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1113{ find mustInstanceOfKaCommSubsystem_class_DefinedPart(problem,interpretation,element); }
1114/**
1115 * An element must be an instance of type "KaCommSubsystem class UndefinedPart".
1116 */
1117private pattern mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
1118 Type.name(type,"KaCommSubsystem class UndefinedPart");
1119 find directInstanceOf(problem,interpretation,element,type);
1120}
1121private pattern scopeDisallowsNewKaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
1122 find interpretation(problem,interpretation);
1123 PartialInterpretation.scopes(interpretation,scope);
1124 Scope.targetTypeInterpretation(scope,typeInterpretation);
1125 Scope.maxNewElements(scope,0);
1126 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
1127 Type.name(type,"KaCommSubsystem class UndefinedPart");
1128}
1129
1130/**
1131 * An element may be an instance of type "KaCommSubsystem class UndefinedPart".
1132 */
1133private pattern mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1134{
1135 find interpretation(problem,interpretation);
1136 PartialInterpretation.newElements(interpretation,element);
1137 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1138 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1139 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1140 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1141 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
1142 neg find scopeDisallowsNewKaCommSubsystem_class_UndefinedPart(problem, interpretation);
1143 neg find isPrimitive(element);
1144} or {
1145 find interpretation(problem,interpretation);
1146 PartialInterpretation.openWorldElements(interpretation,element);
1147 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1148 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1149 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1150 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1151 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
1152 neg find scopeDisallowsNewKaCommSubsystem_class_UndefinedPart(problem, interpretation);
1153 neg find isPrimitive(element);
1154} or
1155{ find mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,element); }
1156
1157//////////
1158// 1.2 Relation Declaration Indexers
1159//////////
1160/**
1161 * Matcher for detecting tuples t where []groundStationNetwork reference ConstellationMission(source,target)
1162 */
1163private pattern mustInRelationgroundStationNetwork_reference_ConstellationMission(
1164 problem:LogicProblem, interpretation:PartialInterpretation,
1165 source: DefinedElement, target:DefinedElement)
1166{
1167 find interpretation(problem,interpretation);
1168 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1169 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"groundStationNetwork reference ConstellationMission");
1170 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1171 BinaryElementRelationLink.param1(link,source);
1172 BinaryElementRelationLink.param2(link,target);
1173}
1174/**
1175 * Matcher for detecting tuples t where <>groundStationNetwork reference ConstellationMission(source,target)
1176 */
1177private pattern mayInRelationgroundStationNetwork_reference_ConstellationMission(
1178 problem:LogicProblem, interpretation:PartialInterpretation,
1179 source: DefinedElement, target:DefinedElement)
1180{
1181 find interpretation(problem,interpretation);
1182 // The two endpoint of the link have to exist
1183 find mayExist(problem, interpretation, source);
1184 find mayExist(problem, interpretation, target);
1185 // Type consistency
1186 find mayInstanceOfConstellationMission_class(problem,interpretation,source);
1187 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,target);
1188 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1189 // the upper bound of the multiplicity should be considered.
1190 numberOfExistingReferences == count find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,_);
1191 check(numberOfExistingReferences < 1);
1192 // The reference is containment, then a new reference cannot be create if:
1193 // 1. Multiple parents
1194 neg find mustContains4(problem,interpretation,_,target);
1195 // 2. Circle in the containment hierarchy
1196 neg find mustTransitiveContains(source,target);
1197} or {
1198 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,target);
1199}
1200/**
1201 * Matcher for detecting tuples t where []spacecraft reference ConstellationMission(source,target)
1202 */
1203private pattern mustInRelationspacecraft_reference_ConstellationMission(
1204 problem:LogicProblem, interpretation:PartialInterpretation,
1205 source: DefinedElement, target:DefinedElement)
1206{
1207 find interpretation(problem,interpretation);
1208 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1209 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"spacecraft reference ConstellationMission");
1210 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1211 BinaryElementRelationLink.param1(link,source);
1212 BinaryElementRelationLink.param2(link,target);
1213}
1214/**
1215 * Matcher for detecting tuples t where <>spacecraft reference ConstellationMission(source,target)
1216 */
1217private pattern mayInRelationspacecraft_reference_ConstellationMission(
1218 problem:LogicProblem, interpretation:PartialInterpretation,
1219 source: DefinedElement, target:DefinedElement)
1220{
1221 find interpretation(problem,interpretation);
1222 // The two endpoint of the link have to exist
1223 find mayExist(problem, interpretation, source);
1224 find mayExist(problem, interpretation, target);
1225 // Type consistency
1226 find mayInstanceOfConstellationMission_class(problem,interpretation,source);
1227 find mayInstanceOfSpacecraft_class(problem,interpretation,target);
1228 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1229 // the upper bound of the multiplicity should be considered.
1230 numberOfExistingReferences == count find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,_);
1231 check(numberOfExistingReferences < 50);
1232 // The reference is containment, then a new reference cannot be create if:
1233 // 1. Multiple parents
1234 neg find mustContains4(problem,interpretation,_,target);
1235 // 2. Circle in the containment hierarchy
1236 neg find mustTransitiveContains(source,target);
1237} or {
1238 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,target);
1239}
1240/**
1241 * Matcher for detecting tuples t where []commSubsystem reference CommunicatingElement(source,target)
1242 */
1243private pattern mustInRelationcommSubsystem_reference_CommunicatingElement(
1244 problem:LogicProblem, interpretation:PartialInterpretation,
1245 source: DefinedElement, target:DefinedElement)
1246{
1247 find interpretation(problem,interpretation);
1248 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1249 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"commSubsystem reference CommunicatingElement");
1250 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1251 BinaryElementRelationLink.param1(link,source);
1252 BinaryElementRelationLink.param2(link,target);
1253}
1254/**
1255 * Matcher for detecting tuples t where <>commSubsystem reference CommunicatingElement(source,target)
1256 */
1257private pattern mayInRelationcommSubsystem_reference_CommunicatingElement(
1258 problem:LogicProblem, interpretation:PartialInterpretation,
1259 source: DefinedElement, target:DefinedElement)
1260{
1261 find interpretation(problem,interpretation);
1262 // The two endpoint of the link have to exist
1263 find mayExist(problem, interpretation, source);
1264 find mayExist(problem, interpretation, target);
1265 // Type consistency
1266 find mayInstanceOfCommunicatingElement_class(problem,interpretation,source);
1267 find mayInstanceOfCommSubsystem_class(problem,interpretation,target);
1268 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1269 // the upper bound of the multiplicity should be considered.
1270 numberOfExistingReferences == count find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,_);
1271 check(numberOfExistingReferences < 2);
1272 // The reference is containment, then a new reference cannot be create if:
1273 // 1. Multiple parents
1274 neg find mustContains4(problem,interpretation,_,target);
1275 // 2. Circle in the containment hierarchy
1276 neg find mustTransitiveContains(source,target);
1277} or {
1278 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,target);
1279}
1280/**
1281 * Matcher for detecting tuples t where []payload reference Spacecraft(source,target)
1282 */
1283private pattern mustInRelationpayload_reference_Spacecraft(
1284 problem:LogicProblem, interpretation:PartialInterpretation,
1285 source: DefinedElement, target:DefinedElement)
1286{
1287 find interpretation(problem,interpretation);
1288 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1289 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"payload reference Spacecraft");
1290 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1291 BinaryElementRelationLink.param1(link,source);
1292 BinaryElementRelationLink.param2(link,target);
1293}
1294/**
1295 * Matcher for detecting tuples t where <>payload reference Spacecraft(source,target)
1296 */
1297private pattern mayInRelationpayload_reference_Spacecraft(
1298 problem:LogicProblem, interpretation:PartialInterpretation,
1299 source: DefinedElement, target:DefinedElement)
1300{
1301 find interpretation(problem,interpretation);
1302 // The two endpoint of the link have to exist
1303 find mayExist(problem, interpretation, source);
1304 find mayExist(problem, interpretation, target);
1305 // Type consistency
1306 find mayInstanceOfSpacecraft_class(problem,interpretation,source);
1307 find mayInstanceOfPayload_class(problem,interpretation,target);
1308 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1309 // the upper bound of the multiplicity should be considered.
1310 numberOfExistingReferences == count find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,_);
1311 check(numberOfExistingReferences < 1);
1312 // The reference is containment, then a new reference cannot be create if:
1313 // 1. Multiple parents
1314 neg find mustContains4(problem,interpretation,_,target);
1315 // 2. Circle in the containment hierarchy
1316 neg find mustTransitiveContains(source,target);
1317} or {
1318 find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,target);
1319}
1320/**
1321 * Matcher for detecting tuples t where []target reference CommSubsystem(source,target)
1322 */
1323private pattern mustInRelationtarget_reference_CommSubsystem(
1324 problem:LogicProblem, interpretation:PartialInterpretation,
1325 source: DefinedElement, target:DefinedElement)
1326{
1327 find interpretation(problem,interpretation);
1328 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1329 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"target reference CommSubsystem");
1330 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1331 BinaryElementRelationLink.param1(link,source);
1332 BinaryElementRelationLink.param2(link,target);
1333}
1334/**
1335 * Matcher for detecting tuples t where <>target reference CommSubsystem(source,target)
1336 */
1337private pattern mayInRelationtarget_reference_CommSubsystem(
1338 problem:LogicProblem, interpretation:PartialInterpretation,
1339 source: DefinedElement, target:DefinedElement)
1340{
1341 find interpretation(problem,interpretation);
1342 // The two endpoint of the link have to exist
1343 find mayExist(problem, interpretation, source);
1344 find mayExist(problem, interpretation, target);
1345 // Type consistency
1346 find mayInstanceOfCommSubsystem_class(problem,interpretation,source);
1347 find mayInstanceOfCommSubsystem_class(problem,interpretation,target);
1348 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1349 // the upper bound of the multiplicity should be considered.
1350 numberOfExistingReferences == count find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,source,_);
1351 check(numberOfExistingReferences < 1);
1352} or {
1353 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,source,target);
1354}
1355
1356//////////
1357// 1.3 Relation Definition Indexers
1358//////////
1359// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries communicationLinkDoesNotStartAtContainingElement
1360private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(
1361 problem:LogicProblem, interpretation:PartialInterpretation,
1362 var_Element)
1363{
1364 find interpretation(problem,interpretation);
1365 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1366 // Element is exported
1367 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm1);
1368 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm2);
1369 neg find mayEquivalent(problem, interpretation, var_Comm1, var_Comm2);
1370}
1371private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(
1372 problem:LogicProblem, interpretation:PartialInterpretation,
1373 var_Element)
1374{
1375 find interpretation(problem,interpretation);
1376 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1377 // Element is exported
1378 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm1);
1379 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm2);
1380 neg find mustEquivalent(problem, interpretation, var_Comm1, var_Comm2);
1381}
1382private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(
1383 problem:LogicProblem, interpretation:PartialInterpretation,
1384 var_Element)
1385{
1386 find interpretation(problem,interpretation);
1387 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1388 // Element is exported
1389 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm1);
1390 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm2);
1391 neg find mustEquivalent(problem, interpretation, var_Comm1, var_Comm2);
1392}
1393// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries transmittingCommSubsystem
1394private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(
1395 problem:LogicProblem, interpretation:PartialInterpretation,
1396 var_Element, var_Comm)
1397{
1398 find interpretation(problem,interpretation);
1399 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1400 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1401 // Element is exported
1402 // Comm is exported
1403 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1404 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0);
1405 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1406 find mustEquivalent(problem, interpretation, var_virtual0, var_Comm);
1407 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1408 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1409 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1410 find mustEquivalent(problem, interpretation, var_virtual1, _var__0);
1411}
1412private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(
1413 problem:LogicProblem, interpretation:PartialInterpretation,
1414 var_Element, var_Comm)
1415{
1416 find interpretation(problem,interpretation);
1417 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1418 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1419 // Element is exported
1420 // Comm is exported
1421 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1422 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0);
1423 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1424 find mayEquivalent(problem, interpretation, var_virtual0, var_Comm);
1425 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1426 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1427 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1428 find mayEquivalent(problem, interpretation, var_virtual1, _var__0);
1429}
1430private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(
1431 problem:LogicProblem, interpretation:PartialInterpretation,
1432 var_Element, var_Comm)
1433{
1434 find interpretation(problem,interpretation);
1435 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1436 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1437 // Element is exported
1438 // Comm is exported
1439 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1440 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0);
1441 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1442 find mustEquivalent(problem, interpretation, var_virtual0, var_Comm);
1443 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1444 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1445 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1446 find mustEquivalent(problem, interpretation, var_virtual1, _var__0);
1447}
1448// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries notEnoughInterferometryPayloads
1449private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(
1450 problem:LogicProblem, interpretation:PartialInterpretation,
1451 var_Mission)
1452{
1453 find interpretation(problem,interpretation);
1454 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1455 // Mission is exported
1456 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1457 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission);
1458}
1459private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(
1460 problem:LogicProblem, interpretation:PartialInterpretation,
1461 var_Mission)
1462{
1463 find interpretation(problem,interpretation);
1464 find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1465 // Mission is exported
1466 find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1467 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission);
1468}
1469private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(
1470 problem:LogicProblem, interpretation:PartialInterpretation,
1471 var_Mission)
1472{
1473 find interpretation(problem,interpretation);
1474 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1475 // Mission is exported
1476 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1477 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission);
1478}
1479// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries atLeastTwoInterferometryPayloads
1480private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(
1481 problem:LogicProblem, interpretation:PartialInterpretation,
1482 var_Mission)
1483{
1484 find interpretation(problem,interpretation);
1485 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1486 // Mission is exported
1487 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1);
1488 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2);
1489 neg find mayEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2);
1490}
1491private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(
1492 problem:LogicProblem, interpretation:PartialInterpretation,
1493 var_Mission)
1494{
1495 find interpretation(problem,interpretation);
1496 find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1497 // Mission is exported
1498 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1);
1499 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2);
1500 neg find mustEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2);
1501}
1502private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(
1503 problem:LogicProblem, interpretation:PartialInterpretation,
1504 var_Mission)
1505{
1506 find interpretation(problem,interpretation);
1507 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1508 // Mission is exported
1509 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1);
1510 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2);
1511 neg find mustEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2);
1512}
1513// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries spacecraftWithInterferometryPayload
1514private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(
1515 problem:LogicProblem, interpretation:PartialInterpretation,
1516 var_Mission, var_Spacecraft)
1517{
1518 find interpretation(problem,interpretation);
1519 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1520 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1521 // Mission is exported
1522 // Spacecraft is exported
1523 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1524 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1525 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual0);
1526 find mustEquivalent(problem, interpretation, var_virtual0, var_Spacecraft);
1527 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1528 find mustInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1);
1529 find mustInstanceOfPayload_class(problem,interpretation,var_virtual1);
1530 find mustEquivalent(problem, interpretation, var_virtual1, var_Payload);
1531 find mustInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload);
1532}
1533private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(
1534 problem:LogicProblem, interpretation:PartialInterpretation,
1535 var_Mission, var_Spacecraft)
1536{
1537 find interpretation(problem,interpretation);
1538 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1539 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1540 // Mission is exported
1541 // Spacecraft is exported
1542 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1543 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1544 find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual0);
1545 find mayEquivalent(problem, interpretation, var_virtual0, var_Spacecraft);
1546 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1547 find mayInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1);
1548 find mayInstanceOfPayload_class(problem,interpretation,var_virtual1);
1549 find mayEquivalent(problem, interpretation, var_virtual1, var_Payload);
1550 find mayInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload);
1551}
1552private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(
1553 problem:LogicProblem, interpretation:PartialInterpretation,
1554 var_Mission, var_Spacecraft)
1555{
1556 find interpretation(problem,interpretation);
1557 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1558 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1559 // Mission is exported
1560 // Spacecraft is exported
1561 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1562 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1563 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual0);
1564 find mustEquivalent(problem, interpretation, var_virtual0, var_Spacecraft);
1565 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1566 find mustInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1);
1567 find mustInstanceOfPayload_class(problem,interpretation,var_virtual1);
1568 find mustEquivalent(problem, interpretation, var_virtual1, var_Payload);
1569 find mustInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload);
1570}
1571// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries noLinkToGroundStation
1572private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(
1573 problem:LogicProblem, interpretation:PartialInterpretation,
1574 var_Spacecraft)
1575{
1576 find interpretation(problem,interpretation);
1577 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1578 // Spacecraft is exported
1579 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1580 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1581 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1582 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1583 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1584 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1585 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1586 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1587 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation);
1588}
1589private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(
1590 problem:LogicProblem, interpretation:PartialInterpretation,
1591 var_Spacecraft)
1592{
1593 find interpretation(problem,interpretation);
1594 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1595 // Spacecraft is exported
1596 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1597 find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1598 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1599 find mayEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1600 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1601 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1602 find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1603 find mayEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1604 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation);
1605}
1606private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(
1607 problem:LogicProblem, interpretation:PartialInterpretation,
1608 var_Spacecraft)
1609{
1610 find interpretation(problem,interpretation);
1611 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1612 // Spacecraft is exported
1613 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1614 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1615 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1616 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1617 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1618 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1619 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1620 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1621 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation);
1622}
1623// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries noPotentialLinkToGroundStation
1624private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(
1625 problem:LogicProblem, interpretation:PartialInterpretation,
1626 var_Spacecraft)
1627{
1628 find interpretation(problem,interpretation);
1629 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1630 // Spacecraft is exported
1631 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1632 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1633 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1634 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1635 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1636 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1637 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1638 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1639 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation);
1640}
1641private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(
1642 problem:LogicProblem, interpretation:PartialInterpretation,
1643 var_Spacecraft)
1644{
1645 find interpretation(problem,interpretation);
1646 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1647 // Spacecraft is exported
1648 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1649 find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1650 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1651 find mayEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1652 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1653 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1654 find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1655 find mayEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1656 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation);
1657}
1658private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(
1659 problem:LogicProblem, interpretation:PartialInterpretation,
1660 var_Spacecraft)
1661{
1662 find interpretation(problem,interpretation);
1663 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1664 // Spacecraft is exported
1665 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1666 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1667 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1668 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1669 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1670 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1671 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1672 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1673 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation);
1674}
1675// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries indirectLinkAllowed
1676private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(
1677 problem:LogicProblem, interpretation:PartialInterpretation,
1678 var_From, var_To)
1679{
1680 find interpretation(problem,interpretation);
1681 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1682 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1683 // From is exported
1684 // To is exported
1685 find twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To);
1686}
1687private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(
1688 problem:LogicProblem, interpretation:PartialInterpretation,
1689 var_From, var_To)
1690{
1691 find interpretation(problem,interpretation);
1692 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1693 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1694 // From is exported
1695 // To is exported
1696 find twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To);
1697}
1698private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(
1699 problem:LogicProblem, interpretation:PartialInterpretation,
1700 var_From, var_To)
1701{
1702 find interpretation(problem,interpretation);
1703 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1704 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1705 // From is exported
1706 // To is exported
1707 find twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To);
1708}
1709// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries linkAllowed
1710private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(
1711 problem:LogicProblem, interpretation:PartialInterpretation,
1712 var_From, var_To)
1713{
1714 find interpretation(problem,interpretation);
1715 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1716 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1717 // From is exported
1718 // To is exported
1719 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1720 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From);
1721}or{
1722 find interpretation(problem,interpretation);
1723 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1724 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1725 // From is exported
1726 // To is exported
1727 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1728 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1729}or{
1730 find interpretation(problem,interpretation);
1731 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1732 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1733 // From is exported
1734 // To is exported
1735 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1736 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1737 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_To);
1738}
1739private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(
1740 problem:LogicProblem, interpretation:PartialInterpretation,
1741 var_From, var_To)
1742{
1743 find interpretation(problem,interpretation);
1744 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1745 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1746 // From is exported
1747 // To is exported
1748 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1749 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From);
1750}or{
1751 find interpretation(problem,interpretation);
1752 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1753 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1754 // From is exported
1755 // To is exported
1756 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1757 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1758}or{
1759 find interpretation(problem,interpretation);
1760 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1761 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1762 // From is exported
1763 // To is exported
1764 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1765 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1766 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_To);
1767}
1768private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(
1769 problem:LogicProblem, interpretation:PartialInterpretation,
1770 var_From, var_To)
1771{
1772 find interpretation(problem,interpretation);
1773 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1774 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1775 // From is exported
1776 // To is exported
1777 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1778 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From);
1779}or{
1780 find interpretation(problem,interpretation);
1781 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1782 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1783 // From is exported
1784 // To is exported
1785 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1786 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1787}or{
1788 find interpretation(problem,interpretation);
1789 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1790 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1791 // From is exported
1792 // To is exported
1793 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1794 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1795 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_To);
1796}
1797private pattern twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) {
1798 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To);
1799}
1800private pattern twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) {
1801 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To);
1802}
1803private pattern twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) {
1804 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To);
1805}
1806// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries matchingAntenna
1807private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(
1808 problem:LogicProblem, interpretation:PartialInterpretation,
1809 var_From, var_To)
1810{
1811 find interpretation(problem,interpretation);
1812 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1813 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1814 // From is exported
1815 // To is exported
1816 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_From);
1817 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0);
1818 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1819 find mustEquivalent(problem, interpretation, var_virtual0, var_FromSys);
1820 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1821 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual1);
1822 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1823 find mustEquivalent(problem, interpretation, var_virtual1, var_ToSys);
1824 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_FromSys,var_ToSys);
1825}
1826private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(
1827 problem:LogicProblem, interpretation:PartialInterpretation,
1828 var_From, var_To)
1829{
1830 find interpretation(problem,interpretation);
1831 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1832 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1833 // From is exported
1834 // To is exported
1835 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_From);
1836 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0);
1837 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1838 find mayEquivalent(problem, interpretation, var_virtual0, var_FromSys);
1839 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1840 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual1);
1841 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1842 find mayEquivalent(problem, interpretation, var_virtual1, var_ToSys);
1843 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_FromSys,var_ToSys);
1844}
1845private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(
1846 problem:LogicProblem, interpretation:PartialInterpretation,
1847 var_From, var_To)
1848{
1849 find interpretation(problem,interpretation);
1850 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1851 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1852 // From is exported
1853 // To is exported
1854 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_From);
1855 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0);
1856 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1857 find mustEquivalent(problem, interpretation, var_virtual0, var_FromSys);
1858 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1859 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual1);
1860 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1861 find mustEquivalent(problem, interpretation, var_virtual1, var_ToSys);
1862 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_FromSys,var_ToSys);
1863}
1864// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries matchingCommSubsystem
1865private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(
1866 problem:LogicProblem, interpretation:PartialInterpretation,
1867 var_From, var_To)
1868{
1869 find interpretation(problem,interpretation);
1870 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1871 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1872 // From is exported
1873 // To is exported
1874 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_From);
1875 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_To);
1876}or{
1877 find interpretation(problem,interpretation);
1878 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1879 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1880 // From is exported
1881 // To is exported
1882 find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_From);
1883 find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_To);
1884}or{
1885 find interpretation(problem,interpretation);
1886 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1887 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1888 // From is exported
1889 // To is exported
1890 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_From);
1891 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_To);
1892}
1893private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(
1894 problem:LogicProblem, interpretation:PartialInterpretation,
1895 var_From, var_To)
1896{
1897 find interpretation(problem,interpretation);
1898 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1899 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1900 // From is exported
1901 // To is exported
1902 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_From);
1903 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_To);
1904}or{
1905 find interpretation(problem,interpretation);
1906 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1907 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1908 // From is exported
1909 // To is exported
1910 find mayInstanceOfXCommSubsystem_class(problem,interpretation,var_From);
1911 find mayInstanceOfXCommSubsystem_class(problem,interpretation,var_To);
1912}or{
1913 find interpretation(problem,interpretation);
1914 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1915 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1916 // From is exported
1917 // To is exported
1918 find mayInstanceOfKaCommSubsystem_class(problem,interpretation,var_From);
1919 find mayInstanceOfKaCommSubsystem_class(problem,interpretation,var_To);
1920}
1921private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(
1922 problem:LogicProblem, interpretation:PartialInterpretation,
1923 var_From, var_To)
1924{
1925 find interpretation(problem,interpretation);
1926 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1927 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1928 // From is exported
1929 // To is exported
1930 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_From);
1931 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_To);
1932}or{
1933 find interpretation(problem,interpretation);
1934 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1935 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1936 // From is exported
1937 // To is exported
1938 find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_From);
1939 find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_To);
1940}or{
1941 find interpretation(problem,interpretation);
1942 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1943 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1944 // From is exported
1945 // To is exported
1946 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_From);
1947 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_To);
1948}
1949// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries cubeSat3U
1950private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(
1951 problem:LogicProblem, interpretation:PartialInterpretation,
1952 var_Sat)
1953{
1954 find interpretation(problem,interpretation);
1955 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1956 // Sat is exported
1957 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1958}
1959private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(
1960 problem:LogicProblem, interpretation:PartialInterpretation,
1961 var_Sat)
1962{
1963 find interpretation(problem,interpretation);
1964 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1965 // Sat is exported
1966 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1967}
1968private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(
1969 problem:LogicProblem, interpretation:PartialInterpretation,
1970 var_Sat)
1971{
1972 find interpretation(problem,interpretation);
1973 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1974 // Sat is exported
1975 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1976}
1977// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries cubeSat6U
1978private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat6U(
1979 problem:LogicProblem, interpretation:PartialInterpretation,
1980 var_Sat)
1981{
1982 find interpretation(problem,interpretation);
1983 find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
1984 // Sat is exported
1985 find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
1986}
1987private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat6U(
1988 problem:LogicProblem, interpretation:PartialInterpretation,
1989 var_Sat)
1990{
1991 find interpretation(problem,interpretation);
1992 find mayInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
1993 // Sat is exported
1994 find mayInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
1995}
1996private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat6U(
1997 problem:LogicProblem, interpretation:PartialInterpretation,
1998 var_Sat)
1999{
2000 find interpretation(problem,interpretation);
2001 find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
2002 // Sat is exported
2003 find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
2004}
2005// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries communicationLoop
2006private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(
2007 problem:LogicProblem, interpretation:PartialInterpretation,
2008 var_Element)
2009{
2010 find interpretation(problem,interpretation);
2011 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
2012 // Element is exported
2013 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element);
2014}
2015private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(
2016 problem:LogicProblem, interpretation:PartialInterpretation,
2017 var_Element)
2018{
2019 find interpretation(problem,interpretation);
2020 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
2021 // Element is exported
2022 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element);
2023}
2024private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(
2025 problem:LogicProblem, interpretation:PartialInterpretation,
2026 var_Element)
2027{
2028 find interpretation(problem,interpretation);
2029 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
2030 // Element is exported
2031 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element);
2032}
2033// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries indirectCommunicationLink
2034private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(
2035 problem:LogicProblem, interpretation:PartialInterpretation,
2036 var_Source, var_Target)
2037{
2038 find interpretation(problem,interpretation);
2039 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2040 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2041 // Source is exported
2042 // Target is exported
2043 find twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target);
2044}
2045private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(
2046 problem:LogicProblem, interpretation:PartialInterpretation,
2047 var_Source, var_Target)
2048{
2049 find interpretation(problem,interpretation);
2050 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2051 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2052 // Source is exported
2053 // Target is exported
2054 find twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target);
2055}
2056private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(
2057 problem:LogicProblem, interpretation:PartialInterpretation,
2058 var_Source, var_Target)
2059{
2060 find interpretation(problem,interpretation);
2061 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2062 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2063 // Source is exported
2064 // Target is exported
2065 find twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target);
2066}
2067// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries directCommunicationLink
2068private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(
2069 problem:LogicProblem, interpretation:PartialInterpretation,
2070 var_Source, var_Target)
2071{
2072 find interpretation(problem,interpretation);
2073 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2074 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2075 // Source is exported
2076 // Target is exported
2077 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2078 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2079 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2080 find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2081 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2082 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual1);
2083 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2084 find mustEquivalent(problem, interpretation, var_virtual1, var_SourceSubsystem);
2085 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2086 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2087 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2088 find mustEquivalent(problem, interpretation, var_virtual2, var_TargetSubsystem);
2089}
2090private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(
2091 problem:LogicProblem, interpretation:PartialInterpretation,
2092 var_Source, var_Target)
2093{
2094 find interpretation(problem,interpretation);
2095 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2096 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2097 // Source is exported
2098 // Target is exported
2099 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2100 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2101 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2102 find mayEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2103 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2104 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual1);
2105 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2106 find mayEquivalent(problem, interpretation, var_virtual1, var_SourceSubsystem);
2107 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2108 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2109 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2110 find mayEquivalent(problem, interpretation, var_virtual2, var_TargetSubsystem);
2111}
2112private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(
2113 problem:LogicProblem, interpretation:PartialInterpretation,
2114 var_Source, var_Target)
2115{
2116 find interpretation(problem,interpretation);
2117 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2118 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2119 // Source is exported
2120 // Target is exported
2121 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2122 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2123 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2124 find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2125 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2126 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual1);
2127 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2128 find mustEquivalent(problem, interpretation, var_virtual1, var_SourceSubsystem);
2129 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2130 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2131 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2132 find mustEquivalent(problem, interpretation, var_virtual2, var_TargetSubsystem);
2133}
2134private pattern twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) {
2135 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target);
2136}
2137private pattern twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) {
2138 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target);
2139}
2140private pattern twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) {
2141 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target);
2142}
2143// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetBand
2144private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(
2145 problem:LogicProblem, interpretation:PartialInterpretation,
2146 var_SourceSubsystem)
2147{
2148 find interpretation(problem,interpretation);
2149 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2150 // SourceSubsystem is exported
2151 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2152 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2153 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2154 find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2155 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_SourceSubsystem,var_TargetSubsystem);
2156}
2157private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(
2158 problem:LogicProblem, interpretation:PartialInterpretation,
2159 var_SourceSubsystem)
2160{
2161 find interpretation(problem,interpretation);
2162 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2163 // SourceSubsystem is exported
2164 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2165 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2166 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2167 find mayEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2168 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_SourceSubsystem,var_TargetSubsystem);
2169}
2170private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(
2171 problem:LogicProblem, interpretation:PartialInterpretation,
2172 var_SourceSubsystem)
2173{
2174 find interpretation(problem,interpretation);
2175 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2176 // SourceSubsystem is exported
2177 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2178 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2179 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2180 find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2181 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_SourceSubsystem,var_TargetSubsystem);
2182}
2183// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries threeUCubeSatWithNonUhfCrossLink
2184private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(
2185 problem:LogicProblem, interpretation:PartialInterpretation,
2186 var_Sat)
2187{
2188 find interpretation(problem,interpretation);
2189 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
2190 // Sat is exported
2191 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat);
2192 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0);
2193 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2194 find mustEquivalent(problem, interpretation, var_virtual0, var_SourceComm);
2195 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm);
2196 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceComm);
2197 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceComm,var_virtual1);
2198 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2199 find mustEquivalent(problem, interpretation, var_virtual1, var_TargetComm);
2200 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2201 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2202 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2203 find mustEquivalent(problem, interpretation, var_virtual2, var_TargetComm);
2204 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target);
2205}
2206private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(
2207 problem:LogicProblem, interpretation:PartialInterpretation,
2208 var_Sat)
2209{
2210 find interpretation(problem,interpretation);
2211 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
2212 // Sat is exported
2213 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat);
2214 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0);
2215 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2216 find mayEquivalent(problem, interpretation, var_virtual0, var_SourceComm);
2217 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm);
2218 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceComm);
2219 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceComm,var_virtual1);
2220 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2221 find mayEquivalent(problem, interpretation, var_virtual1, var_TargetComm);
2222 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2223 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2224 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2225 find mayEquivalent(problem, interpretation, var_virtual2, var_TargetComm);
2226 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target);
2227}
2228private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(
2229 problem:LogicProblem, interpretation:PartialInterpretation,
2230 var_Sat)
2231{
2232 find interpretation(problem,interpretation);
2233 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
2234 // Sat is exported
2235 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat);
2236 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0);
2237 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2238 find mustEquivalent(problem, interpretation, var_virtual0, var_SourceComm);
2239 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm);
2240 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceComm);
2241 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceComm,var_virtual1);
2242 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2243 find mustEquivalent(problem, interpretation, var_virtual1, var_TargetComm);
2244 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2245 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2246 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2247 find mustEquivalent(problem, interpretation, var_virtual2, var_TargetComm);
2248 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target);
2249}
2250// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemBandUhf
2251private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(
2252 problem:LogicProblem, interpretation:PartialInterpretation,
2253 var_Comm)
2254{
2255 find interpretation(problem,interpretation);
2256 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2257 // Comm is exported
2258 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2259}
2260private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(
2261 problem:LogicProblem, interpretation:PartialInterpretation,
2262 var_Comm)
2263{
2264 find interpretation(problem,interpretation);
2265 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2266 // Comm is exported
2267 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2268}
2269private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(
2270 problem:LogicProblem, interpretation:PartialInterpretation,
2271 var_Comm)
2272{
2273 find interpretation(problem,interpretation);
2274 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2275 // Comm is exported
2276 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2277}
2278// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries groundStationNetwork
2279private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(
2280 problem:LogicProblem, interpretation:PartialInterpretation,
2281 var_Network)
2282{
2283 find interpretation(problem,interpretation);
2284 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2285 // Network is exported
2286 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2287}
2288private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(
2289 problem:LogicProblem, interpretation:PartialInterpretation,
2290 var_Network)
2291{
2292 find interpretation(problem,interpretation);
2293 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2294 // Network is exported
2295 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2296}
2297private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(
2298 problem:LogicProblem, interpretation:PartialInterpretation,
2299 var_Network)
2300{
2301 find interpretation(problem,interpretation);
2302 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2303 // Network is exported
2304 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2305}
2306// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries cubeSatWithKaAntenna
2307private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(
2308 problem:LogicProblem, interpretation:PartialInterpretation,
2309 var_Spacecraft)
2310{
2311 find interpretation(problem,interpretation);
2312 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2313 // Spacecraft is exported
2314 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft);
2315 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual0);
2316 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2317 find mustEquivalent(problem, interpretation, var_virtual0, var_Comm);
2318 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_Comm);
2319 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft);
2320}
2321private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(
2322 problem:LogicProblem, interpretation:PartialInterpretation,
2323 var_Spacecraft)
2324{
2325 find interpretation(problem,interpretation);
2326 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2327 // Spacecraft is exported
2328 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft);
2329 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual0);
2330 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2331 find mayEquivalent(problem, interpretation, var_virtual0, var_Comm);
2332 find mayInstanceOfKaCommSubsystem_class(problem,interpretation,var_Comm);
2333 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft);
2334}
2335private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(
2336 problem:LogicProblem, interpretation:PartialInterpretation,
2337 var_Spacecraft)
2338{
2339 find interpretation(problem,interpretation);
2340 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2341 // Spacecraft is exported
2342 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft);
2343 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual0);
2344 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2345 find mustEquivalent(problem, interpretation, var_virtual0, var_Comm);
2346 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_Comm);
2347 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft);
2348}
2349// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries smallSat
2350private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(
2351 problem:LogicProblem, interpretation:PartialInterpretation,
2352 var_Sat)
2353{
2354 find interpretation(problem,interpretation);
2355 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2356 // Sat is exported
2357 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2358}
2359private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(
2360 problem:LogicProblem, interpretation:PartialInterpretation,
2361 var_Sat)
2362{
2363 find interpretation(problem,interpretation);
2364 find mayInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2365 // Sat is exported
2366 find mayInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2367}
2368private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(
2369 problem:LogicProblem, interpretation:PartialInterpretation,
2370 var_Sat)
2371{
2372 find interpretation(problem,interpretation);
2373 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2374 // Sat is exported
2375 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2376}
2377
2378//////////
2379// 1.4 Containment Indexer
2380//////////
2381private pattern mustContains2(source: DefinedElement, target: DefinedElement) {
2382 find mustContains4(_,_,source,target);
2383}
2384
2385private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation,
2386 source: DefinedElement, target: DefinedElement)
2387 { find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,target); }or
2388
2389 { find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,target); }or
2390
2391 { find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,target); }or
2392
2393 { find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,target); }
2394
2395private pattern mustTransitiveContains(source,target) {
2396 find mustContains2+(source,target);
2397}
2398
2399//////////
2400// 2. Invalidation Indexers
2401//////////
2402// 2.1 Invalidated by WF Queries
2403//////////
2404pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem:LogicProblem, interpretation:PartialInterpretation,
2405 var_Element)
2406{
2407 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem,interpretation,var_Element);
2408}
2409pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem:LogicProblem, interpretation:PartialInterpretation,
2410 var_Mission)
2411{
2412 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem,interpretation,var_Mission);
2413}
2414pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2415 var_Spacecraft)
2416{
2417 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem,interpretation,var_Spacecraft);
2418}
2419pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2420 var_Spacecraft)
2421{
2422 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem,interpretation,var_Spacecraft);
2423}
2424pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem:LogicProblem, interpretation:PartialInterpretation,
2425 var_Element)
2426{
2427 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem,interpretation,var_Element);
2428}
2429pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem:LogicProblem, interpretation:PartialInterpretation,
2430 var_SourceSubsystem)
2431{
2432 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem,interpretation,var_SourceSubsystem);
2433}
2434pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem:LogicProblem, interpretation:PartialInterpretation,
2435 var_Sat)
2436{
2437 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem,interpretation,var_Sat);
2438}
2439pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem:LogicProblem, interpretation:PartialInterpretation,
2440 var_Spacecraft)
2441{
2442 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem,interpretation,var_Spacecraft);
2443}
2444
2445//////////
2446// 3. Unfinishedness Indexers
2447//////////
2448// 3.1 Unfinishedness Measured by Multiplicity
2449//////////
2450pattern unfinishedLowerMultiplicity_groundStationNetwork_reference_ConstellationMission(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
2451 find interpretation(problem,interpretation);
2452 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2453 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"groundStationNetwork reference ConstellationMission");
2454 find mustInstanceOfConstellationMission_class(problem,interpretation,object);
2455 numberOfExistingReferences == count find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,object,_);
2456 check(numberOfExistingReferences < 1);
2457 missingMultiplicity == eval(1-numberOfExistingReferences);
2458}
2459pattern unfinishedLowerMultiplicity_spacecraft_reference_ConstellationMission(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
2460 find interpretation(problem,interpretation);
2461 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2462 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"spacecraft reference ConstellationMission");
2463 find mustInstanceOfConstellationMission_class(problem,interpretation,object);
2464 numberOfExistingReferences == count find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,object,_);
2465 check(numberOfExistingReferences < 2);
2466 missingMultiplicity == eval(2-numberOfExistingReferences);
2467}
2468pattern unfinishedLowerMultiplicity_commSubsystem_reference_CommunicatingElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
2469 find interpretation(problem,interpretation);
2470 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2471 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"commSubsystem reference CommunicatingElement");
2472 find mustInstanceOfCommunicatingElement_class(problem,interpretation,object);
2473 numberOfExistingReferences == count find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,object,_);
2474 check(numberOfExistingReferences < 1);
2475 missingMultiplicity == eval(1-numberOfExistingReferences);
2476}
2477
2478//////////
2479// 3.2 Unfinishedness Measured by WF Queries
2480//////////
2481pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem:LogicProblem, interpretation:PartialInterpretation,
2482 var_Element)
2483{
2484 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem,interpretation,var_Element);
2485}
2486pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem:LogicProblem, interpretation:PartialInterpretation,
2487 var_Mission)
2488{
2489 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem,interpretation,var_Mission);
2490}
2491pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2492 var_Spacecraft)
2493{
2494 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem,interpretation,var_Spacecraft);
2495}
2496pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2497 var_Spacecraft)
2498{
2499 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem,interpretation,var_Spacecraft);
2500}
2501pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem:LogicProblem, interpretation:PartialInterpretation,
2502 var_Element)
2503{
2504 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem,interpretation,var_Element);
2505}
2506pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem:LogicProblem, interpretation:PartialInterpretation,
2507 var_SourceSubsystem)
2508{
2509 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem,interpretation,var_SourceSubsystem);
2510}
2511pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem:LogicProblem, interpretation:PartialInterpretation,
2512 var_Sat)
2513{
2514 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem,interpretation,var_Sat);
2515}
2516pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem:LogicProblem, interpretation:PartialInterpretation,
2517 var_Spacecraft)
2518{
2519 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem,interpretation,var_Spacecraft);
2520}
2521
2522//////////
2523// 4. Refinement Indexers
2524//////////
2525// 4.1 Object constructors
2526//////////
2527private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
2528{
2529 find interpretation(problem,interpretation);
2530 find mustInstanceOfCommunicatingElement_class(problem,interpretation,root);
2531 find mustExist(problem, interpretation, root);
2532}or{
2533 find interpretation(problem,interpretation);
2534 find mustInstanceOfConstellationMission_class(problem,interpretation,root);
2535 find mustExist(problem, interpretation, root);
2536}or{
2537 find interpretation(problem,interpretation);
2538 find mustInstanceOfInterferometryPayload_class(problem,interpretation,root);
2539 find mustExist(problem, interpretation, root);
2540}or{
2541 find interpretation(problem,interpretation);
2542 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,root);
2543 find mustExist(problem, interpretation, root);
2544}or{
2545 find interpretation(problem,interpretation);
2546 find mustInstanceOfCommSubsystem_class(problem,interpretation,root);
2547 find mustExist(problem, interpretation, root);
2548}or{
2549 find interpretation(problem,interpretation);
2550 find mustInstanceOfPayload_class(problem,interpretation,root);
2551 find mustExist(problem, interpretation, root);
2552}or{
2553 find interpretation(problem,interpretation);
2554 find mustInstanceOfCubeSat6U_class(problem,interpretation,root);
2555 find mustExist(problem, interpretation, root);
2556}or{
2557 find interpretation(problem,interpretation);
2558 find mustInstanceOfXCommSubsystem_class(problem,interpretation,root);
2559 find mustExist(problem, interpretation, root);
2560}or{
2561 find interpretation(problem,interpretation);
2562 find mustInstanceOfCubeSat3U_class(problem,interpretation,root);
2563 find mustExist(problem, interpretation, root);
2564}or{
2565 find interpretation(problem,interpretation);
2566 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,root);
2567 find mustExist(problem, interpretation, root);
2568}or{
2569 find interpretation(problem,interpretation);
2570 find mustInstanceOfSpacecraft_class(problem,interpretation,root);
2571 find mustExist(problem, interpretation, root);
2572}or{
2573 find interpretation(problem,interpretation);
2574 find mustInstanceOfInterferometryMission_class(problem,interpretation,root);
2575 find mustExist(problem, interpretation, root);
2576}or{
2577 find interpretation(problem,interpretation);
2578 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,root);
2579 find mustExist(problem, interpretation, root);
2580}or{
2581 find interpretation(problem,interpretation);
2582 find mustInstanceOfSmallSat_class(problem,interpretation,root);
2583 find mustExist(problem, interpretation, root);
2584}or{
2585 find interpretation(problem,interpretation);
2586 find mustInstanceOfCubeSat_class(problem,interpretation,root);
2587 find mustExist(problem, interpretation, root);
2588}or{
2589 find interpretation(problem,interpretation);
2590 find mustInstanceOfConstellationMission_class_DefinedPart(problem,interpretation,root);
2591 find mustExist(problem, interpretation, root);
2592}or{
2593 find interpretation(problem,interpretation);
2594 find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,root);
2595 find mustExist(problem, interpretation, root);
2596}or{
2597 find interpretation(problem,interpretation);
2598 find mustInstanceOfInterferometryMission_class_DefinedPart(problem,interpretation,root);
2599 find mustExist(problem, interpretation, root);
2600}or{
2601 find interpretation(problem,interpretation);
2602 find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,root);
2603 find mustExist(problem, interpretation, root);
2604}or{
2605 find interpretation(problem,interpretation);
2606 find mustInstanceOfCommunicatingElement_class_DefinedPart(problem,interpretation,root);
2607 find mustExist(problem, interpretation, root);
2608}or{
2609 find interpretation(problem,interpretation);
2610 find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,root);
2611 find mustExist(problem, interpretation, root);
2612}or{
2613 find interpretation(problem,interpretation);
2614 find mustInstanceOfGroundStationNetwork_class_DefinedPart(problem,interpretation,root);
2615 find mustExist(problem, interpretation, root);
2616}or{
2617 find interpretation(problem,interpretation);
2618 find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,root);
2619 find mustExist(problem, interpretation, root);
2620}or{
2621 find interpretation(problem,interpretation);
2622 find mustInstanceOfCommSubsystem_class_DefinedPart(problem,interpretation,root);
2623 find mustExist(problem, interpretation, root);
2624}or{
2625 find interpretation(problem,interpretation);
2626 find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,root);
2627 find mustExist(problem, interpretation, root);
2628}or{
2629 find interpretation(problem,interpretation);
2630 find mustInstanceOfXCommSubsystem_class_DefinedPart(problem,interpretation,root);
2631 find mustExist(problem, interpretation, root);
2632}or{
2633 find interpretation(problem,interpretation);
2634 find mustInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,root);
2635 find mustExist(problem, interpretation, root);
2636}or{
2637 find interpretation(problem,interpretation);
2638 find mustInstanceOfKaCommSubsystem_class_DefinedPart(problem,interpretation,root);
2639 find mustExist(problem, interpretation, root);
2640}or{
2641 find interpretation(problem,interpretation);
2642 find mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,root);
2643 find mustExist(problem, interpretation, root);
2644}
2645pattern createObject_InterferometryPayload_class_by_payload_reference_Spacecraft(
2646 problem:LogicProblem, interpretation:PartialInterpretation,
2647 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2648 container:DefinedElement)
2649{
2650 find interpretation(problem,interpretation);
2651 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2652 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryPayload class");
2653 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2654 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"payload reference Spacecraft");
2655 find mustInstanceOfSpacecraft_class(problem,interpretation,container);
2656 find mayInstanceOfInterferometryPayload_class(problem,interpretation,newObject);
2657 find mayInRelationpayload_reference_Spacecraft(problem,interpretation,container,newObject);
2658 find mustExist(problem, interpretation, container);
2659 neg find mustExist(problem, interpretation, newObject);
2660}
2661pattern createObject_InterferometryPayload_class(
2662 problem:LogicProblem, interpretation:PartialInterpretation,
2663 typeInterpretation:PartialComplexTypeInterpretation)
2664{
2665 find interpretation(problem,interpretation);
2666 neg find hasElementInContainment(problem,interpretation);
2667 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2668 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryPayload class");
2669 find mayInstanceOfInterferometryPayload_class(problem,interpretation,newObject);
2670 find mayExist(problem, interpretation, newObject);
2671 neg find mustExist(problem, interpretation, newObject);
2672}
2673pattern createObject_CubeSat6U_class_by_spacecraft_reference_ConstellationMission(
2674 problem:LogicProblem, interpretation:PartialInterpretation,
2675 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2676 container:DefinedElement)
2677{
2678 find interpretation(problem,interpretation);
2679 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2680 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat6U class");
2681 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2682 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission");
2683 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2684 find mayInstanceOfCubeSat6U_class(problem,interpretation,newObject);
2685 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject);
2686 find mustExist(problem, interpretation, container);
2687 neg find mustExist(problem, interpretation, newObject);
2688}
2689pattern createObject_CubeSat6U_class(
2690 problem:LogicProblem, interpretation:PartialInterpretation,
2691 typeInterpretation:PartialComplexTypeInterpretation)
2692{
2693 find interpretation(problem,interpretation);
2694 neg find hasElementInContainment(problem,interpretation);
2695 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2696 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat6U class");
2697 find mayInstanceOfCubeSat6U_class(problem,interpretation,newObject);
2698 find mayExist(problem, interpretation, newObject);
2699 neg find mustExist(problem, interpretation, newObject);
2700}
2701pattern createObject_GroundStationNetwork_class_UndefinedPart_by_groundStationNetwork_reference_ConstellationMission(
2702 problem:LogicProblem, interpretation:PartialInterpretation,
2703 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2704 container:DefinedElement)
2705{
2706 find interpretation(problem,interpretation);
2707 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2708 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"GroundStationNetwork class UndefinedPart");
2709 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2710 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"groundStationNetwork reference ConstellationMission");
2711 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2712 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,newObject);
2713 find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,container,newObject);
2714 find mustExist(problem, interpretation, container);
2715 neg find mustExist(problem, interpretation, newObject);
2716}
2717pattern createObject_GroundStationNetwork_class_UndefinedPart(
2718 problem:LogicProblem, interpretation:PartialInterpretation,
2719 typeInterpretation:PartialComplexTypeInterpretation)
2720{
2721 find interpretation(problem,interpretation);
2722 neg find hasElementInContainment(problem,interpretation);
2723 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2724 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"GroundStationNetwork class UndefinedPart");
2725 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,newObject);
2726 find mayExist(problem, interpretation, newObject);
2727 neg find mustExist(problem, interpretation, newObject);
2728}
2729pattern createObject_UHFCommSubsystem_class_by_commSubsystem_reference_CommunicatingElement(
2730 problem:LogicProblem, interpretation:PartialInterpretation,
2731 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2732 container:DefinedElement)
2733{
2734 find interpretation(problem,interpretation);
2735 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2736 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"UHFCommSubsystem class");
2737 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2738 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"commSubsystem reference CommunicatingElement");
2739 find mustInstanceOfCommunicatingElement_class(problem,interpretation,container);
2740 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,newObject);
2741 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,container,newObject);
2742 find mustExist(problem, interpretation, container);
2743 neg find mustExist(problem, interpretation, newObject);
2744}
2745pattern createObject_UHFCommSubsystem_class(
2746 problem:LogicProblem, interpretation:PartialInterpretation,
2747 typeInterpretation:PartialComplexTypeInterpretation)
2748{
2749 find interpretation(problem,interpretation);
2750 neg find hasElementInContainment(problem,interpretation);
2751 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2752 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"UHFCommSubsystem class");
2753 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,newObject);
2754 find mayExist(problem, interpretation, newObject);
2755 neg find mustExist(problem, interpretation, newObject);
2756}
2757pattern createObject_SmallSat_class_by_spacecraft_reference_ConstellationMission(
2758 problem:LogicProblem, interpretation:PartialInterpretation,
2759 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2760 container:DefinedElement)
2761{
2762 find interpretation(problem,interpretation);
2763 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2764 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"SmallSat class");
2765 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2766 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission");
2767 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2768 find mayInstanceOfSmallSat_class(problem,interpretation,newObject);
2769 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject);
2770 find mustExist(problem, interpretation, container);
2771 neg find mustExist(problem, interpretation, newObject);
2772}
2773pattern createObject_SmallSat_class(
2774 problem:LogicProblem, interpretation:PartialInterpretation,
2775 typeInterpretation:PartialComplexTypeInterpretation)
2776{
2777 find interpretation(problem,interpretation);
2778 neg find hasElementInContainment(problem,interpretation);
2779 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2780 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"SmallSat class");
2781 find mayInstanceOfSmallSat_class(problem,interpretation,newObject);
2782 find mayExist(problem, interpretation, newObject);
2783 neg find mustExist(problem, interpretation, newObject);
2784}
2785pattern createObject_KaCommSubsystem_class_UndefinedPart_by_commSubsystem_reference_CommunicatingElement(
2786 problem:LogicProblem, interpretation:PartialInterpretation,
2787 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2788 container:DefinedElement)
2789{
2790 find interpretation(problem,interpretation);
2791 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2792 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"KaCommSubsystem class UndefinedPart");
2793 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2794 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"commSubsystem reference CommunicatingElement");
2795 find mustInstanceOfCommunicatingElement_class(problem,interpretation,container);
2796 find mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2797 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,container,newObject);
2798 find mustExist(problem, interpretation, container);
2799 neg find mustExist(problem, interpretation, newObject);
2800}
2801pattern createObject_KaCommSubsystem_class_UndefinedPart(
2802 problem:LogicProblem, interpretation:PartialInterpretation,
2803 typeInterpretation:PartialComplexTypeInterpretation)
2804{
2805 find interpretation(problem,interpretation);
2806 neg find hasElementInContainment(problem,interpretation);
2807 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2808 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"KaCommSubsystem class UndefinedPart");
2809 find mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2810 find mayExist(problem, interpretation, newObject);
2811 neg find mustExist(problem, interpretation, newObject);
2812}
2813pattern createObject_CubeSat3U_class_by_spacecraft_reference_ConstellationMission(
2814 problem:LogicProblem, interpretation:PartialInterpretation,
2815 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2816 container:DefinedElement)
2817{
2818 find interpretation(problem,interpretation);
2819 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2820 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat3U class");
2821 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2822 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission");
2823 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2824 find mayInstanceOfCubeSat3U_class(problem,interpretation,newObject);
2825 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject);
2826 find mustExist(problem, interpretation, container);
2827 neg find mustExist(problem, interpretation, newObject);
2828}
2829pattern createObject_CubeSat3U_class(
2830 problem:LogicProblem, interpretation:PartialInterpretation,
2831 typeInterpretation:PartialComplexTypeInterpretation)
2832{
2833 find interpretation(problem,interpretation);
2834 neg find hasElementInContainment(problem,interpretation);
2835 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2836 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat3U class");
2837 find mayInstanceOfCubeSat3U_class(problem,interpretation,newObject);
2838 find mayExist(problem, interpretation, newObject);
2839 neg find mustExist(problem, interpretation, newObject);
2840}
2841pattern createObject_XCommSubsystem_class_UndefinedPart_by_commSubsystem_reference_CommunicatingElement(
2842 problem:LogicProblem, interpretation:PartialInterpretation,
2843 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2844 container:DefinedElement)
2845{
2846 find interpretation(problem,interpretation);
2847 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2848 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"XCommSubsystem class UndefinedPart");
2849 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2850 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"commSubsystem reference CommunicatingElement");
2851 find mustInstanceOfCommunicatingElement_class(problem,interpretation,container);
2852 find mayInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2853 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,container,newObject);
2854 find mustExist(problem, interpretation, container);
2855 neg find mustExist(problem, interpretation, newObject);
2856}
2857pattern createObject_XCommSubsystem_class_UndefinedPart(
2858 problem:LogicProblem, interpretation:PartialInterpretation,
2859 typeInterpretation:PartialComplexTypeInterpretation)
2860{
2861 find interpretation(problem,interpretation);
2862 neg find hasElementInContainment(problem,interpretation);
2863 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2864 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"XCommSubsystem class UndefinedPart");
2865 find mayInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2866 find mayExist(problem, interpretation, newObject);
2867 neg find mustExist(problem, interpretation, newObject);
2868}
2869pattern createObject_InterferometryMission_class_UndefinedPart(
2870 problem:LogicProblem, interpretation:PartialInterpretation,
2871 typeInterpretation:PartialComplexTypeInterpretation)
2872{
2873 find interpretation(problem,interpretation);
2874 neg find hasElementInContainment(problem,interpretation);
2875 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2876 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryMission class UndefinedPart");
2877 find mayInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,newObject);
2878 find mayExist(problem, interpretation, newObject);
2879 neg find mustExist(problem, interpretation, newObject);
2880}
2881
2882//////////
2883// 4.2 Type refinement
2884//////////
2885pattern refineTypeTo_InterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2886 find interpretation(problem,interpretation);
2887 PartialInterpretation.newElements(interpretation,element);
2888 find mayInstanceOfInterferometryPayload_class(problem,interpretation,element);
2889 neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element);
2890 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2891 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2892 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2893}
2894pattern refineTypeTo_CubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2895 find interpretation(problem,interpretation);
2896 PartialInterpretation.newElements(interpretation,element);
2897 find mayInstanceOfCubeSat6U_class(problem,interpretation,element);
2898 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2899 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
2900 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
2901 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
2902 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2903 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
2904 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2905}
2906pattern refineTypeTo_GroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2907 find interpretation(problem,interpretation);
2908 PartialInterpretation.newElements(interpretation,element);
2909 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element);
2910 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2911 neg find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element);
2912 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2913 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
2914 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2915}
2916pattern refineTypeTo_UHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2917 find interpretation(problem,interpretation);
2918 PartialInterpretation.newElements(interpretation,element);
2919 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
2920 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2921 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2922 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
2923 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
2924 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2925 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
2926}
2927pattern refineTypeTo_SmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2928 find interpretation(problem,interpretation);
2929 PartialInterpretation.newElements(interpretation,element);
2930 find mayInstanceOfSmallSat_class(problem,interpretation,element);
2931 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2932 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
2933 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
2934 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2935 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
2936 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2937}
2938pattern refineTypeTo_KaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2939 find interpretation(problem,interpretation);
2940 PartialInterpretation.newElements(interpretation,element);
2941 find mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2942 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2943 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2944 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
2945 neg find mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2946 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2947 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
2948}
2949pattern refineTypeTo_CubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2950 find interpretation(problem,interpretation);
2951 PartialInterpretation.newElements(interpretation,element);
2952 find mayInstanceOfCubeSat3U_class(problem,interpretation,element);
2953 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2954 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
2955 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
2956 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
2957 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2958 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
2959 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2960}
2961pattern refineTypeTo_XCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2962 find interpretation(problem,interpretation);
2963 PartialInterpretation.newElements(interpretation,element);
2964 find mayInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2965 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2966 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2967 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
2968 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
2969 neg find mustInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2970 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2971}
2972pattern refineTypeTo_InterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2973 find interpretation(problem,interpretation);
2974 PartialInterpretation.newElements(interpretation,element);
2975 find mayInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element);
2976 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2977 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2978 neg find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element);
2979 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2980}
2981
2982//////////
2983// 4.3 Relation refinement
2984//////////
2985pattern refineRelation_target_reference_CommSubsystem(
2986 problem:LogicProblem, interpretation:PartialInterpretation,
2987 relationIterpretation:PartialRelationInterpretation,
2988 from: DefinedElement, to: DefinedElement)
2989{
2990 find interpretation(problem,interpretation);
2991 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2992 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"target reference CommSubsystem");
2993 find mustExist(problem, interpretation, from);
2994 find mustExist(problem, interpretation, to);
2995 find mustInstanceOfCommSubsystem_class(problem,interpretation,from);
2996 find mustInstanceOfCommSubsystem_class(problem,interpretation,to);
2997 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,from,to);
2998 neg find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,from,to);
2999}
3000
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run5/init.partialmodel b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run5/init.partialmodel
deleted file mode 100644
index 01b90968..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run5/init.partialmodel
+++ /dev/null
@@ -1,147 +0,0 @@
1<?xml version="1.0" encoding="ASCII"?>
2<partialinterpretation:PartialInterpretation xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" xmlns:partialinterpretation="http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" minNewElements="32" maxNewElements="64">
3 <problem href="dummy.dummyext#//@problemConainer"/>
4 <partialrelationinterpretation>
5 <interpretationOf href="dummy.dummyext#//@problemConainer/@relations.0"/>
6 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
7 <param1 href="dummy.dummyext#//@problemConainer/@elements.0"/>
8 <param2 href="dummy.dummyext#//@problemConainer/@elements.1"/>
9 </relationlinks>
10 <param1 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.0/@parameters.0"/>
11 <param2 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.0/@parameters.1"/>
12 </partialrelationinterpretation>
13 <partialrelationinterpretation>
14 <interpretationOf href="dummy.dummyext#//@problemConainer/@relations.1"/>
15 <param1 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.1/@parameters.0"/>
16 <param2 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.1/@parameters.1"/>
17 </partialrelationinterpretation>
18 <partialrelationinterpretation>
19 <interpretationOf href="dummy.dummyext#//@problemConainer/@relations.2"/>
20 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
21 <param1 href="dummy.dummyext#//@problemConainer/@elements.1"/>
22 <param2 href="dummy.dummyext#//@problemConainer/@elements.2"/>
23 </relationlinks>
24 <relationlinks xsi:type="partialinterpretation:BinaryElementRelationLink">
25 <param1 href="dummy.dummyext#//@problemConainer/@elements.1"/>
26 <param2 href="dummy.dummyext#//@problemConainer/@elements.3"/>
27 </relationlinks>
28 <param1 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.2/@parameters.0"/>
29 <param2 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.2/@parameters.1"/>
30 </partialrelationinterpretation>
31 <partialrelationinterpretation>
32 <interpretationOf href="dummy.dummyext#//@problemConainer/@relations.3"/>
33 <param1 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.3/@parameters.0"/>
34 <param2 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.3/@parameters.1"/>
35 </partialrelationinterpretation>
36 <partialrelationinterpretation>
37 <interpretationOf href="dummy.dummyext#//@problemConainer/@relations.4"/>
38 <param1 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.4/@parameters.0"/>
39 <param2 xsi:type="language:ComplexTypeReference" href="dummy.dummyext#//@problemConainer/@relations.4/@parameters.1"/>
40 </partialrelationinterpretation>
41 <newElements xsi:type="partialinterpretation:BooleanElement" name="true" valueSet="true" value="true"/>
42 <newElements xsi:type="partialinterpretation:BooleanElement" name="false" valueSet="true"/>
43 <partialtypeinterpratation xsi:type="partialinterpretation:PartialBooleanInterpretation" elements="//@newElements.0 //@newElements.1"/>
44 <partialtypeinterpratation xsi:type="partialinterpretation:PartialIntegerInterpretation" elements="//@openWorldElements.0"/>
45 <partialtypeinterpratation xsi:type="partialinterpretation:PartialRealInterpretation" elements="//@openWorldElements.1"/>
46 <partialtypeinterpratation xsi:type="partialinterpretation:PartialStringInterpretation" elements="//@openWorldElements.2"/>
47 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.0">
48 <elements href="dummy.dummyext#//@problemConainer/@elements.0"/>
49 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.0"/>
50 </partialtypeinterpratation>
51 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.1" supertypeInterpretation="//@partialtypeinterpratation.4">
52 <elements href="dummy.dummyext#//@problemConainer/@elements.0"/>
53 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.1"/>
54 </partialtypeinterpratation>
55 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.2">
56 <elements href="dummy.dummyext#//@problemConainer/@elements.1"/>
57 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.2"/>
58 </partialtypeinterpratation>
59 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.3" supertypeInterpretation="//@partialtypeinterpratation.6">
60 <elements href="dummy.dummyext#//@problemConainer/@elements.1"/>
61 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.3"/>
62 </partialtypeinterpratation>
63 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.4" supertypeInterpretation="//@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
64 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.4"/>
65 </partialtypeinterpratation>
66 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.5">
67 <elements href="dummy.dummyext#//@problemConainer/@elements.2"/>
68 <elements href="dummy.dummyext#//@problemConainer/@elements.3"/>
69 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.5"/>
70 </partialtypeinterpratation>
71 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.6">
72 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.6"/>
73 </partialtypeinterpratation>
74 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.7" supertypeInterpretation="//@partialtypeinterpratation.10">
75 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.7"/>
76 </partialtypeinterpratation>
77 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.8" supertypeInterpretation="//@partialtypeinterpratation.15 //@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
78 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.8"/>
79 </partialtypeinterpratation>
80 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.9" supertypeInterpretation="//@partialtypeinterpratation.15 //@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
81 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.9"/>
82 </partialtypeinterpratation>
83 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.10" supertypeInterpretation="//@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
84 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.10"/>
85 </partialtypeinterpratation>
86 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.11" supertypeInterpretation="//@partialtypeinterpratation.8 //@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
87 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.11"/>
88 </partialtypeinterpratation>
89 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.12" supertypeInterpretation="//@partialtypeinterpratation.9 //@partialtypeinterpratation.23">
90 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.12"/>
91 </partialtypeinterpratation>
92 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.13" supertypeInterpretation="//@partialtypeinterpratation.9">
93 <elements href="dummy.dummyext#//@problemConainer/@elements.2"/>
94 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.13"/>
95 </partialtypeinterpratation>
96 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.14" supertypeInterpretation="//@partialtypeinterpratation.9">
97 <elements href="dummy.dummyext#//@problemConainer/@elements.3"/>
98 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.14"/>
99 </partialtypeinterpratation>
100 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.15" supertypeInterpretation="//@partialtypeinterpratation.4">
101 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.16"/>
102 </partialtypeinterpratation>
103 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.16" supertypeInterpretation="//@partialtypeinterpratation.5 //@partialtypeinterpratation.4 //@partialtypeinterpratation.19">
104 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.18"/>
105 </partialtypeinterpratation>
106 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.17" supertypeInterpretation="//@partialtypeinterpratation.6">
107 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.20"/>
108 </partialtypeinterpratation>
109 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.18" supertypeInterpretation="//@partialtypeinterpratation.7 //@partialtypeinterpratation.6 //@partialtypeinterpratation.21">
110 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.22"/>
111 </partialtypeinterpratation>
112 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.19" supertypeInterpretation="//@partialtypeinterpratation.9">
113 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.24"/>
114 </partialtypeinterpratation>
115 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.20" supertypeInterpretation="//@partialtypeinterpratation.17 //@partialtypeinterpratation.9 //@partialtypeinterpratation.23">
116 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.26"/>
117 </partialtypeinterpratation>
118 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.21" supertypeInterpretation="//@partialtypeinterpratation.18 //@partialtypeinterpratation.9 //@partialtypeinterpratation.23">
119 <interpretationOf href="dummy.dummyext#//@problemConainer/@types.28"/>
120 </partialtypeinterpratation>
121 <openWorldElements xsi:type="partialinterpretation:IntegerElement" name="New Integers"/>
122 <openWorldElements xsi:type="partialinterpretation:RealElement" name="New Reals"/>
123 <openWorldElements xsi:type="partialinterpretation:StringElement" name="New Strings"/>
124 <openWorldElements name="New Objects"/>
125 <scopes targetTypeInterpretation="//@partialtypeinterpratation.4"/>
126 <scopes targetTypeInterpretation="//@partialtypeinterpratation.5"/>
127 <scopes targetTypeInterpretation="//@partialtypeinterpratation.6"/>
128 <scopes targetTypeInterpretation="//@partialtypeinterpratation.7"/>
129 <scopes targetTypeInterpretation="//@partialtypeinterpratation.8"/>
130 <scopes targetTypeInterpretation="//@partialtypeinterpratation.9"/>
131 <scopes targetTypeInterpretation="//@partialtypeinterpratation.10"/>
132 <scopes targetTypeInterpretation="//@partialtypeinterpratation.11"/>
133 <scopes targetTypeInterpretation="//@partialtypeinterpratation.12"/>
134 <scopes targetTypeInterpretation="//@partialtypeinterpratation.13"/>
135 <scopes targetTypeInterpretation="//@partialtypeinterpratation.14"/>
136 <scopes targetTypeInterpretation="//@partialtypeinterpratation.15"/>
137 <scopes targetTypeInterpretation="//@partialtypeinterpratation.16"/>
138 <scopes targetTypeInterpretation="//@partialtypeinterpratation.17"/>
139 <scopes targetTypeInterpretation="//@partialtypeinterpratation.18"/>
140 <scopes targetTypeInterpretation="//@partialtypeinterpratation.19"/>
141 <scopes targetTypeInterpretation="//@partialtypeinterpratation.20"/>
142 <scopes targetTypeInterpretation="//@partialtypeinterpratation.21"/>
143 <scopes targetTypeInterpretation="//@partialtypeinterpratation.22"/>
144 <scopes targetTypeInterpretation="//@partialtypeinterpratation.23"/>
145 <scopes targetTypeInterpretation="//@partialtypeinterpratation.24"/>
146 <scopes targetTypeInterpretation="//@partialtypeinterpratation.25"/>
147</partialinterpretation:PartialInterpretation>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/log.txt b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/log.txt
deleted file mode 100644
index 1d3c9f62..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/log.txt
+++ /dev/null
@@ -1 +0,0 @@
1Model generation started
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run1/1_1.gml b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run1/1_1.gml
deleted file mode 100644
index 68fc38e5..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run1/1_1.gml
+++ /dev/null
@@ -1,2452 +0,0 @@
1graph
2[
3 node
4 [
5 id 0
6 graphics
7 [
8 w 315.70000000000005
9 h 82
10 type "rectangle"
11 fill "#FFFFFF"
12 fill2 "#FFFFFF"
13 outline "#000000"
14 ]
15 LabelGraphics
16 [
17 text "o 1"
18 outline "#000000"
19 fill "#FFFFFF"
20 fontSize 16
21 fontName "Monospace"
22 autoSizePolicy "node_width"
23 anchor "t"
24 borderDistance 0.0
25 ]
26 LabelGraphics
27 [
28 text "
29 ConstellationMission class DefinedPart
30 InterferometryMission class DefinedPart
31 ConstellationMission class
32 InterferometryMission class
33 "
34 fontSize 14
35 fontName "Consolas"
36 alignment "left"
37 anchor "tl"
38 borderDistance 6
39 ]
40 ]
41
42 node
43 [
44 id 1
45 graphics
46 [
47 w 308.0
48 h 82
49 type "rectangle"
50 fill "#FFFFFF"
51 fill2 "#FFFFFF"
52 outline "#000000"
53 ]
54 LabelGraphics
55 [
56 text "o 2"
57 outline "#000000"
58 fill "#FFFFFF"
59 fontSize 16
60 fontName "Monospace"
61 autoSizePolicy "node_width"
62 anchor "t"
63 borderDistance 0.0
64 ]
65 LabelGraphics
66 [
67 text "
68 CommunicatingElement class DefinedPart
69 GroundStationNetwork class DefinedPart
70 CommunicatingElement class
71 GroundStationNetwork class
72 "
73 fontSize 14
74 fontName "Consolas"
75 alignment "left"
76 anchor "tl"
77 borderDistance 6
78 ]
79 ]
80
81 node
82 [
83 id 2
84 graphics
85 [
86 w 261.8
87 h 82
88 type "rectangle"
89 fill "#FFFFFF"
90 fill2 "#FFFFFF"
91 outline "#000000"
92 ]
93 LabelGraphics
94 [
95 text "o 3"
96 outline "#000000"
97 fill "#FFFFFF"
98 fontSize 16
99 fontName "Monospace"
100 autoSizePolicy "node_width"
101 anchor "t"
102 borderDistance 0.0
103 ]
104 LabelGraphics
105 [
106 text "
107 CommSubsystem class DefinedPart
108 XCommSubsystem class DefinedPart
109 CommSubsystem class
110 XCommSubsystem class
111 "
112 fontSize 14
113 fontName "Consolas"
114 alignment "left"
115 anchor "tl"
116 borderDistance 6
117 ]
118 ]
119
120 node
121 [
122 id 3
123 graphics
124 [
125 w 269.5
126 h 82
127 type "rectangle"
128 fill "#FFFFFF"
129 fill2 "#FFFFFF"
130 outline "#000000"
131 ]
132 LabelGraphics
133 [
134 text "o 4"
135 outline "#000000"
136 fill "#FFFFFF"
137 fontSize 16
138 fontName "Monospace"
139 autoSizePolicy "node_width"
140 anchor "t"
141 borderDistance 0.0
142 ]
143 LabelGraphics
144 [
145 text "
146 CommSubsystem class DefinedPart
147 KaCommSubsystem class DefinedPart
148 CommSubsystem class
149 KaCommSubsystem class
150 "
151 fontSize 14
152 fontName "Consolas"
153 alignment "left"
154 anchor "tl"
155 borderDistance 6
156 ]
157 ]
158
159 node
160 [
161 id 4
162 graphics
163 [
164 w 41.800000000000004
165 h 26
166 type "rectangle"
167 fill "#FFFFFF"
168 fill2 "#FFFFFF"
169 outline "#000000"
170 ]
171 LabelGraphics
172 [
173 text "true"
174 outline "#000000"
175 fill "#FFFFFF"
176 fontSize 16
177 fontName "Monospace"
178 autoSizePolicy "node_width"
179 anchor "t"
180 borderDistance 0.0
181 ]
182 LabelGraphics
183 [
184 text "
185 "
186 fontSize 14
187 fontName "Consolas"
188 alignment "left"
189 anchor "tl"
190 borderDistance 6
191 ]
192 ]
193
194 node
195 [
196 id 5
197 graphics
198 [
199 w 50.6
200 h 26
201 type "rectangle"
202 fill "#FFFFFF"
203 fill2 "#FFFFFF"
204 outline "#000000"
205 ]
206 LabelGraphics
207 [
208 text "false"
209 outline "#000000"
210 fill "#FFFFFF"
211 fontSize 16
212 fontName "Monospace"
213 autoSizePolicy "node_width"
214 anchor "t"
215 borderDistance 0.0
216 ]
217 LabelGraphics
218 [
219 text "
220 "
221 fontSize 14
222 fontName "Consolas"
223 alignment "left"
224 anchor "tl"
225 borderDistance 6
226 ]
227 ]
228
229 node
230 [
231 id 6
232 graphics
233 [
234 w 323.40000000000003
235 h 82
236 type "rectangle"
237 fill "#FFFFFF"
238 fill2 "#FFFFFF"
239 outline "#000000"
240 ]
241 LabelGraphics
242 [
243 text "null"
244 outline "#000000"
245 fill "#FFFFFF"
246 fontSize 16
247 fontName "Monospace"
248 autoSizePolicy "node_width"
249 anchor "t"
250 borderDistance 0.0
251 ]
252 LabelGraphics
253 [
254 text "
255 CommunicatingElement class
256 Spacecraft class
257 SmallSat class
258 CommunicatingElement class UndefinedPart
259 "
260 fontSize 14
261 fontName "Consolas"
262 alignment "left"
263 anchor "tl"
264 borderDistance 6
265 ]
266 ]
267
268 node
269 [
270 id 7
271 graphics
272 [
273 w 223.3
274 h 54
275 type "rectangle"
276 fill "#FFFFFF"
277 fill2 "#FFFFFF"
278 outline "#000000"
279 ]
280 LabelGraphics
281 [
282 text "null"
283 outline "#000000"
284 fill "#FFFFFF"
285 fontSize 16
286 fontName "Monospace"
287 autoSizePolicy "node_width"
288 anchor "t"
289 borderDistance 0.0
290 ]
291 LabelGraphics
292 [
293 text "
294 Payload class
295 InterferometryPayload class
296 "
297 fontSize 14
298 fontName "Consolas"
299 alignment "left"
300 anchor "tl"
301 borderDistance 6
302 ]
303 ]
304
305 node
306 [
307 id 8
308 graphics
309 [
310 w 269.5
311 h 68
312 type "rectangle"
313 fill "#FFFFFF"
314 fill2 "#FFFFFF"
315 outline "#000000"
316 ]
317 LabelGraphics
318 [
319 text "null"
320 outline "#000000"
321 fill "#FFFFFF"
322 fontSize 16
323 fontName "Monospace"
324 autoSizePolicy "node_width"
325 anchor "t"
326 borderDistance 0.0
327 ]
328 LabelGraphics
329 [
330 text "
331 CommSubsystem class
332 UHFCommSubsystem class
333 CommSubsystem class UndefinedPart
334 "
335 fontSize 14
336 fontName "Consolas"
337 alignment "left"
338 anchor "tl"
339 borderDistance 6
340 ]
341 ]
342
343 node
344 [
345 id 9
346 graphics
347 [
348 w 277.20000000000005
349 h 82
350 type "rectangle"
351 fill "#FFFFFF"
352 fill2 "#FFFFFF"
353 outline "#000000"
354 ]
355 LabelGraphics
356 [
357 text "null"
358 outline "#000000"
359 fill "#FFFFFF"
360 fontSize 16
361 fontName "Monospace"
362 autoSizePolicy "node_width"
363 anchor "t"
364 borderDistance 0.0
365 ]
366 LabelGraphics
367 [
368 text "
369 CommSubsystem class
370 XCommSubsystem class
371 CommSubsystem class UndefinedPart
372 XCommSubsystem class UndefinedPart
373 "
374 fontSize 14
375 fontName "Consolas"
376 alignment "left"
377 anchor "tl"
378 borderDistance 6
379 ]
380 ]
381
382 node
383 [
384 id 10
385 graphics
386 [
387 w 323.40000000000003
388 h 96
389 type "rectangle"
390 fill "#FFFFFF"
391 fill2 "#FFFFFF"
392 outline "#000000"
393 ]
394 LabelGraphics
395 [
396 text "null"
397 outline "#000000"
398 fill "#FFFFFF"
399 fontSize 16
400 fontName "Monospace"
401 autoSizePolicy "node_width"
402 anchor "t"
403 borderDistance 0.0
404 ]
405 LabelGraphics
406 [
407 text "
408 CommunicatingElement class
409 Spacecraft class
410 CubeSat3U class
411 CubeSat class
412 CommunicatingElement class UndefinedPart
413 "
414 fontSize 14
415 fontName "Consolas"
416 alignment "left"
417 anchor "tl"
418 borderDistance 6
419 ]
420 ]
421
422 node
423 [
424 id 11
425 graphics
426 [
427 w 277.20000000000005
428 h 82
429 type "rectangle"
430 fill "#FFFFFF"
431 fill2 "#FFFFFF"
432 outline "#000000"
433 ]
434 LabelGraphics
435 [
436 text "null"
437 outline "#000000"
438 fill "#FFFFFF"
439 fontSize 16
440 fontName "Monospace"
441 autoSizePolicy "node_width"
442 anchor "t"
443 borderDistance 0.0
444 ]
445 LabelGraphics
446 [
447 text "
448 CommSubsystem class
449 XCommSubsystem class
450 CommSubsystem class UndefinedPart
451 XCommSubsystem class UndefinedPart
452 "
453 fontSize 14
454 fontName "Consolas"
455 alignment "left"
456 anchor "tl"
457 borderDistance 6
458 ]
459 ]
460
461 node
462 [
463 id 12
464 graphics
465 [
466 w 269.5
467 h 68
468 type "rectangle"
469 fill "#FFFFFF"
470 fill2 "#FFFFFF"
471 outline "#000000"
472 ]
473 LabelGraphics
474 [
475 text "null"
476 outline "#000000"
477 fill "#FFFFFF"
478 fontSize 16
479 fontName "Monospace"
480 autoSizePolicy "node_width"
481 anchor "t"
482 borderDistance 0.0
483 ]
484 LabelGraphics
485 [
486 text "
487 CommSubsystem class
488 UHFCommSubsystem class
489 CommSubsystem class UndefinedPart
490 "
491 fontSize 14
492 fontName "Consolas"
493 alignment "left"
494 anchor "tl"
495 borderDistance 6
496 ]
497 ]
498
499 node
500 [
501 id 13
502 graphics
503 [
504 w 223.3
505 h 54
506 type "rectangle"
507 fill "#FFFFFF"
508 fill2 "#FFFFFF"
509 outline "#000000"
510 ]
511 LabelGraphics
512 [
513 text "null"
514 outline "#000000"
515 fill "#FFFFFF"
516 fontSize 16
517 fontName "Monospace"
518 autoSizePolicy "node_width"
519 anchor "t"
520 borderDistance 0.0
521 ]
522 LabelGraphics
523 [
524 text "
525 Payload class
526 InterferometryPayload class
527 "
528 fontSize 14
529 fontName "Consolas"
530 alignment "left"
531 anchor "tl"
532 borderDistance 6
533 ]
534 ]
535
536 node
537 [
538 id 14
539 graphics
540 [
541 w 323.40000000000003
542 h 82
543 type "rectangle"
544 fill "#FFFFFF"
545 fill2 "#FFFFFF"
546 outline "#000000"
547 ]
548 LabelGraphics
549 [
550 text "null"
551 outline "#000000"
552 fill "#FFFFFF"
553 fontSize 16
554 fontName "Monospace"
555 autoSizePolicy "node_width"
556 anchor "t"
557 borderDistance 0.0
558 ]
559 LabelGraphics
560 [
561 text "
562 CommunicatingElement class
563 Spacecraft class
564 SmallSat class
565 CommunicatingElement class UndefinedPart
566 "
567 fontSize 14
568 fontName "Consolas"
569 alignment "left"
570 anchor "tl"
571 borderDistance 6
572 ]
573 ]
574
575 node
576 [
577 id 15
578 graphics
579 [
580 w 269.5
581 h 68
582 type "rectangle"
583 fill "#FFFFFF"
584 fill2 "#FFFFFF"
585 outline "#000000"
586 ]
587 LabelGraphics
588 [
589 text "null"
590 outline "#000000"
591 fill "#FFFFFF"
592 fontSize 16
593 fontName "Monospace"
594 autoSizePolicy "node_width"
595 anchor "t"
596 borderDistance 0.0
597 ]
598 LabelGraphics
599 [
600 text "
601 CommSubsystem class
602 UHFCommSubsystem class
603 CommSubsystem class UndefinedPart
604 "
605 fontSize 14
606 fontName "Consolas"
607 alignment "left"
608 anchor "tl"
609 borderDistance 6
610 ]
611 ]
612
613 node
614 [
615 id 16
616 graphics
617 [
618 w 284.90000000000003
619 h 82
620 type "rectangle"
621 fill "#FFFFFF"
622 fill2 "#FFFFFF"
623 outline "#000000"
624 ]
625 LabelGraphics
626 [
627 text "null"
628 outline "#000000"
629 fill "#FFFFFF"
630 fontSize 16
631 fontName "Monospace"
632 autoSizePolicy "node_width"
633 anchor "t"
634 borderDistance 0.0
635 ]
636 LabelGraphics
637 [
638 text "
639 CommSubsystem class
640 KaCommSubsystem class
641 CommSubsystem class UndefinedPart
642 KaCommSubsystem class UndefinedPart
643 "
644 fontSize 14
645 fontName "Consolas"
646 alignment "left"
647 anchor "tl"
648 borderDistance 6
649 ]
650 ]
651
652 node
653 [
654 id 17
655 graphics
656 [
657 w 223.3
658 h 54
659 type "rectangle"
660 fill "#FFFFFF"
661 fill2 "#FFFFFF"
662 outline "#000000"
663 ]
664 LabelGraphics
665 [
666 text "null"
667 outline "#000000"
668 fill "#FFFFFF"
669 fontSize 16
670 fontName "Monospace"
671 autoSizePolicy "node_width"
672 anchor "t"
673 borderDistance 0.0
674 ]
675 LabelGraphics
676 [
677 text "
678 Payload class
679 InterferometryPayload class
680 "
681 fontSize 14
682 fontName "Consolas"
683 alignment "left"
684 anchor "tl"
685 borderDistance 6
686 ]
687 ]
688
689 node
690 [
691 id 18
692 graphics
693 [
694 w 323.40000000000003
695 h 96
696 type "rectangle"
697 fill "#FFFFFF"
698 fill2 "#FFFFFF"
699 outline "#000000"
700 ]
701 LabelGraphics
702 [
703 text "null"
704 outline "#000000"
705 fill "#FFFFFF"
706 fontSize 16
707 fontName "Monospace"
708 autoSizePolicy "node_width"
709 anchor "t"
710 borderDistance 0.0
711 ]
712 LabelGraphics
713 [
714 text "
715 CommunicatingElement class
716 Spacecraft class
717 CubeSat6U class
718 CubeSat class
719 CommunicatingElement class UndefinedPart
720 "
721 fontSize 14
722 fontName "Consolas"
723 alignment "left"
724 anchor "tl"
725 borderDistance 6
726 ]
727 ]
728
729 node
730 [
731 id 19
732 graphics
733 [
734 w 277.20000000000005
735 h 82
736 type "rectangle"
737 fill "#FFFFFF"
738 fill2 "#FFFFFF"
739 outline "#000000"
740 ]
741 LabelGraphics
742 [
743 text "null"
744 outline "#000000"
745 fill "#FFFFFF"
746 fontSize 16
747 fontName "Monospace"
748 autoSizePolicy "node_width"
749 anchor "t"
750 borderDistance 0.0
751 ]
752 LabelGraphics
753 [
754 text "
755 CommSubsystem class
756 XCommSubsystem class
757 CommSubsystem class UndefinedPart
758 XCommSubsystem class UndefinedPart
759 "
760 fontSize 14
761 fontName "Consolas"
762 alignment "left"
763 anchor "tl"
764 borderDistance 6
765 ]
766 ]
767
768 node
769 [
770 id 20
771 graphics
772 [
773 w 277.20000000000005
774 h 82
775 type "rectangle"
776 fill "#FFFFFF"
777 fill2 "#FFFFFF"
778 outline "#000000"
779 ]
780 LabelGraphics
781 [
782 text "null"
783 outline "#000000"
784 fill "#FFFFFF"
785 fontSize 16
786 fontName "Monospace"
787 autoSizePolicy "node_width"
788 anchor "t"
789 borderDistance 0.0
790 ]
791 LabelGraphics
792 [
793 text "
794 CommSubsystem class
795 XCommSubsystem class
796 CommSubsystem class UndefinedPart
797 XCommSubsystem class UndefinedPart
798 "
799 fontSize 14
800 fontName "Consolas"
801 alignment "left"
802 anchor "tl"
803 borderDistance 6
804 ]
805 ]
806
807 node
808 [
809 id 21
810 graphics
811 [
812 w 223.3
813 h 54
814 type "rectangle"
815 fill "#FFFFFF"
816 fill2 "#FFFFFF"
817 outline "#000000"
818 ]
819 LabelGraphics
820 [
821 text "null"
822 outline "#000000"
823 fill "#FFFFFF"
824 fontSize 16
825 fontName "Monospace"
826 autoSizePolicy "node_width"
827 anchor "t"
828 borderDistance 0.0
829 ]
830 LabelGraphics
831 [
832 text "
833 Payload class
834 InterferometryPayload class
835 "
836 fontSize 14
837 fontName "Consolas"
838 alignment "left"
839 anchor "tl"
840 borderDistance 6
841 ]
842 ]
843
844 node
845 [
846 id 22
847 graphics
848 [
849 w 323.40000000000003
850 h 96
851 type "rectangle"
852 fill "#FFFFFF"
853 fill2 "#FFFFFF"
854 outline "#000000"
855 ]
856 LabelGraphics
857 [
858 text "null"
859 outline "#000000"
860 fill "#FFFFFF"
861 fontSize 16
862 fontName "Monospace"
863 autoSizePolicy "node_width"
864 anchor "t"
865 borderDistance 0.0
866 ]
867 LabelGraphics
868 [
869 text "
870 CommunicatingElement class
871 Spacecraft class
872 CubeSat3U class
873 CubeSat class
874 CommunicatingElement class UndefinedPart
875 "
876 fontSize 14
877 fontName "Consolas"
878 alignment "left"
879 anchor "tl"
880 borderDistance 6
881 ]
882 ]
883
884 node
885 [
886 id 23
887 graphics
888 [
889 w 269.5
890 h 68
891 type "rectangle"
892 fill "#FFFFFF"
893 fill2 "#FFFFFF"
894 outline "#000000"
895 ]
896 LabelGraphics
897 [
898 text "null"
899 outline "#000000"
900 fill "#FFFFFF"
901 fontSize 16
902 fontName "Monospace"
903 autoSizePolicy "node_width"
904 anchor "t"
905 borderDistance 0.0
906 ]
907 LabelGraphics
908 [
909 text "
910 CommSubsystem class
911 UHFCommSubsystem class
912 CommSubsystem class UndefinedPart
913 "
914 fontSize 14
915 fontName "Consolas"
916 alignment "left"
917 anchor "tl"
918 borderDistance 6
919 ]
920 ]
921
922 node
923 [
924 id 24
925 graphics
926 [
927 w 277.20000000000005
928 h 82
929 type "rectangle"
930 fill "#FFFFFF"
931 fill2 "#FFFFFF"
932 outline "#000000"
933 ]
934 LabelGraphics
935 [
936 text "null"
937 outline "#000000"
938 fill "#FFFFFF"
939 fontSize 16
940 fontName "Monospace"
941 autoSizePolicy "node_width"
942 anchor "t"
943 borderDistance 0.0
944 ]
945 LabelGraphics
946 [
947 text "
948 CommSubsystem class
949 XCommSubsystem class
950 CommSubsystem class UndefinedPart
951 XCommSubsystem class UndefinedPart
952 "
953 fontSize 14
954 fontName "Consolas"
955 alignment "left"
956 anchor "tl"
957 borderDistance 6
958 ]
959 ]
960
961 node
962 [
963 id 25
964 graphics
965 [
966 w 223.3
967 h 54
968 type "rectangle"
969 fill "#FFFFFF"
970 fill2 "#FFFFFF"
971 outline "#000000"
972 ]
973 LabelGraphics
974 [
975 text "null"
976 outline "#000000"
977 fill "#FFFFFF"
978 fontSize 16
979 fontName "Monospace"
980 autoSizePolicy "node_width"
981 anchor "t"
982 borderDistance 0.0
983 ]
984 LabelGraphics
985 [
986 text "
987 Payload class
988 InterferometryPayload class
989 "
990 fontSize 14
991 fontName "Consolas"
992 alignment "left"
993 anchor "tl"
994 borderDistance 6
995 ]
996 ]
997
998 node
999 [
1000 id 26
1001 graphics
1002 [
1003 w 323.40000000000003
1004 h 96
1005 type "rectangle"
1006 fill "#FFFFFF"
1007 fill2 "#FFFFFF"
1008 outline "#000000"
1009 ]
1010 LabelGraphics
1011 [
1012 text "null"
1013 outline "#000000"
1014 fill "#FFFFFF"
1015 fontSize 16
1016 fontName "Monospace"
1017 autoSizePolicy "node_width"
1018 anchor "t"
1019 borderDistance 0.0
1020 ]
1021 LabelGraphics
1022 [
1023 text "
1024 CommunicatingElement class
1025 Spacecraft class
1026 CubeSat3U class
1027 CubeSat class
1028 CommunicatingElement class UndefinedPart
1029 "
1030 fontSize 14
1031 fontName "Consolas"
1032 alignment "left"
1033 anchor "tl"
1034 borderDistance 6
1035 ]
1036 ]
1037
1038 node
1039 [
1040 id 27
1041 graphics
1042 [
1043 w 269.5
1044 h 68
1045 type "rectangle"
1046 fill "#FFFFFF"
1047 fill2 "#FFFFFF"
1048 outline "#000000"
1049 ]
1050 LabelGraphics
1051 [
1052 text "null"
1053 outline "#000000"
1054 fill "#FFFFFF"
1055 fontSize 16
1056 fontName "Monospace"
1057 autoSizePolicy "node_width"
1058 anchor "t"
1059 borderDistance 0.0
1060 ]
1061 LabelGraphics
1062 [
1063 text "
1064 CommSubsystem class
1065 UHFCommSubsystem class
1066 CommSubsystem class UndefinedPart
1067 "
1068 fontSize 14
1069 fontName "Consolas"
1070 alignment "left"
1071 anchor "tl"
1072 borderDistance 6
1073 ]
1074 ]
1075
1076 node
1077 [
1078 id 28
1079 graphics
1080 [
1081 w 277.20000000000005
1082 h 82
1083 type "rectangle"
1084 fill "#FFFFFF"
1085 fill2 "#FFFFFF"
1086 outline "#000000"
1087 ]
1088 LabelGraphics
1089 [
1090 text "null"
1091 outline "#000000"
1092 fill "#FFFFFF"
1093 fontSize 16
1094 fontName "Monospace"
1095 autoSizePolicy "node_width"
1096 anchor "t"
1097 borderDistance 0.0
1098 ]
1099 LabelGraphics
1100 [
1101 text "
1102 CommSubsystem class
1103 XCommSubsystem class
1104 CommSubsystem class UndefinedPart
1105 XCommSubsystem class UndefinedPart
1106 "
1107 fontSize 14
1108 fontName "Consolas"
1109 alignment "left"
1110 anchor "tl"
1111 borderDistance 6
1112 ]
1113 ]
1114
1115 node
1116 [
1117 id 29
1118 graphics
1119 [
1120 w 223.3
1121 h 54
1122 type "rectangle"
1123 fill "#FFFFFF"
1124 fill2 "#FFFFFF"
1125 outline "#000000"
1126 ]
1127 LabelGraphics
1128 [
1129 text "null"
1130 outline "#000000"
1131 fill "#FFFFFF"
1132 fontSize 16
1133 fontName "Monospace"
1134 autoSizePolicy "node_width"
1135 anchor "t"
1136 borderDistance 0.0
1137 ]
1138 LabelGraphics
1139 [
1140 text "
1141 Payload class
1142 InterferometryPayload class
1143 "
1144 fontSize 14
1145 fontName "Consolas"
1146 alignment "left"
1147 anchor "tl"
1148 borderDistance 6
1149 ]
1150 ]
1151
1152 node
1153 [
1154 id 30
1155 graphics
1156 [
1157 w 323.40000000000003
1158 h 96
1159 type "rectangle"
1160 fill "#FFFFFF"
1161 fill2 "#FFFFFF"
1162 outline "#000000"
1163 ]
1164 LabelGraphics
1165 [
1166 text "null"
1167 outline "#000000"
1168 fill "#FFFFFF"
1169 fontSize 16
1170 fontName "Monospace"
1171 autoSizePolicy "node_width"
1172 anchor "t"
1173 borderDistance 0.0
1174 ]
1175 LabelGraphics
1176 [
1177 text "
1178 CommunicatingElement class
1179 Spacecraft class
1180 CubeSat3U class
1181 CubeSat class
1182 CommunicatingElement class UndefinedPart
1183 "
1184 fontSize 14
1185 fontName "Consolas"
1186 alignment "left"
1187 anchor "tl"
1188 borderDistance 6
1189 ]
1190 ]
1191
1192 node
1193 [
1194 id 31
1195 graphics
1196 [
1197 w 223.3
1198 h 54
1199 type "rectangle"
1200 fill "#FFFFFF"
1201 fill2 "#FFFFFF"
1202 outline "#000000"
1203 ]
1204 LabelGraphics
1205 [
1206 text "null"
1207 outline "#000000"
1208 fill "#FFFFFF"
1209 fontSize 16
1210 fontName "Monospace"
1211 autoSizePolicy "node_width"
1212 anchor "t"
1213 borderDistance 0.0
1214 ]
1215 LabelGraphics
1216 [
1217 text "
1218 Payload class
1219 InterferometryPayload class
1220 "
1221 fontSize 14
1222 fontName "Consolas"
1223 alignment "left"
1224 anchor "tl"
1225 borderDistance 6
1226 ]
1227 ]
1228
1229 node
1230 [
1231 id 32
1232 graphics
1233 [
1234 w 269.5
1235 h 68
1236 type "rectangle"
1237 fill "#FFFFFF"
1238 fill2 "#FFFFFF"
1239 outline "#000000"
1240 ]
1241 LabelGraphics
1242 [
1243 text "null"
1244 outline "#000000"
1245 fill "#FFFFFF"
1246 fontSize 16
1247 fontName "Monospace"
1248 autoSizePolicy "node_width"
1249 anchor "t"
1250 borderDistance 0.0
1251 ]
1252 LabelGraphics
1253 [
1254 text "
1255 CommSubsystem class
1256 UHFCommSubsystem class
1257 CommSubsystem class UndefinedPart
1258 "
1259 fontSize 14
1260 fontName "Consolas"
1261 alignment "left"
1262 anchor "tl"
1263 borderDistance 6
1264 ]
1265 ]
1266
1267 node
1268 [
1269 id 33
1270 graphics
1271 [
1272 w 277.20000000000005
1273 h 82
1274 type "rectangle"
1275 fill "#FFFFFF"
1276 fill2 "#FFFFFF"
1277 outline "#000000"
1278 ]
1279 LabelGraphics
1280 [
1281 text "null"
1282 outline "#000000"
1283 fill "#FFFFFF"
1284 fontSize 16
1285 fontName "Monospace"
1286 autoSizePolicy "node_width"
1287 anchor "t"
1288 borderDistance 0.0
1289 ]
1290 LabelGraphics
1291 [
1292 text "
1293 CommSubsystem class
1294 XCommSubsystem class
1295 CommSubsystem class UndefinedPart
1296 XCommSubsystem class UndefinedPart
1297 "
1298 fontSize 14
1299 fontName "Consolas"
1300 alignment "left"
1301 anchor "tl"
1302 borderDistance 6
1303 ]
1304 ]
1305
1306 node
1307 [
1308 id 34
1309 graphics
1310 [
1311 w 323.40000000000003
1312 h 82
1313 type "rectangle"
1314 fill "#FFFFFF"
1315 fill2 "#FFFFFF"
1316 outline "#000000"
1317 ]
1318 LabelGraphics
1319 [
1320 text "null"
1321 outline "#000000"
1322 fill "#FFFFFF"
1323 fontSize 16
1324 fontName "Monospace"
1325 autoSizePolicy "node_width"
1326 anchor "t"
1327 borderDistance 0.0
1328 ]
1329 LabelGraphics
1330 [
1331 text "
1332 CommunicatingElement class
1333 Spacecraft class
1334 SmallSat class
1335 CommunicatingElement class UndefinedPart
1336 "
1337 fontSize 14
1338 fontName "Consolas"
1339 alignment "left"
1340 anchor "tl"
1341 borderDistance 6
1342 ]
1343 ]
1344
1345 node
1346 [
1347 id 35
1348 graphics
1349 [
1350 w 284.90000000000003
1351 h 82
1352 type "rectangle"
1353 fill "#FFFFFF"
1354 fill2 "#FFFFFF"
1355 outline "#000000"
1356 ]
1357 LabelGraphics
1358 [
1359 text "null"
1360 outline "#000000"
1361 fill "#FFFFFF"
1362 fontSize 16
1363 fontName "Monospace"
1364 autoSizePolicy "node_width"
1365 anchor "t"
1366 borderDistance 0.0
1367 ]
1368 LabelGraphics
1369 [
1370 text "
1371 CommSubsystem class
1372 KaCommSubsystem class
1373 CommSubsystem class UndefinedPart
1374 KaCommSubsystem class UndefinedPart
1375 "
1376 fontSize 14
1377 fontName "Consolas"
1378 alignment "left"
1379 anchor "tl"
1380 borderDistance 6
1381 ]
1382 ]
1383
1384 node
1385 [
1386 id 36
1387 graphics
1388 [
1389 w 223.3
1390 h 54
1391 type "rectangle"
1392 fill "#FFFFFF"
1393 fill2 "#FFFFFF"
1394 outline "#000000"
1395 ]
1396 LabelGraphics
1397 [
1398 text "null"
1399 outline "#000000"
1400 fill "#FFFFFF"
1401 fontSize 16
1402 fontName "Monospace"
1403 autoSizePolicy "node_width"
1404 anchor "t"
1405 borderDistance 0.0
1406 ]
1407 LabelGraphics
1408 [
1409 text "
1410 Payload class
1411 InterferometryPayload class
1412 "
1413 fontSize 14
1414 fontName "Consolas"
1415 alignment "left"
1416 anchor "tl"
1417 borderDistance 6
1418 ]
1419 ]
1420
1421 node
1422 [
1423 id 37
1424 graphics
1425 [
1426 w 277.20000000000005
1427 h 82
1428 type "rectangle"
1429 fill "#FFFFFF"
1430 fill2 "#FFFFFF"
1431 outline "#000000"
1432 ]
1433 LabelGraphics
1434 [
1435 text "null"
1436 outline "#000000"
1437 fill "#FFFFFF"
1438 fontSize 16
1439 fontName "Monospace"
1440 autoSizePolicy "node_width"
1441 anchor "t"
1442 borderDistance 0.0
1443 ]
1444 LabelGraphics
1445 [
1446 text "
1447 CommSubsystem class
1448 XCommSubsystem class
1449 CommSubsystem class UndefinedPart
1450 XCommSubsystem class UndefinedPart
1451 "
1452 fontSize 14
1453 fontName "Consolas"
1454 alignment "left"
1455 anchor "tl"
1456 borderDistance 6
1457 ]
1458 ]
1459
1460 node
1461 [
1462 id 38
1463 graphics
1464 [
1465 w 112.2
1466 h 26
1467 type "rectangle"
1468 fill "#FFFFFF"
1469 fill2 "#FFFFFF"
1470 outline "#000000"
1471 ]
1472 LabelGraphics
1473 [
1474 text "New Integers"
1475 outline "#000000"
1476 fill "#FFFFFF"
1477 fontSize 16
1478 fontName "Monospace"
1479 autoSizePolicy "node_width"
1480 anchor "t"
1481 borderDistance 0.0
1482 ]
1483 LabelGraphics
1484 [
1485 text "
1486 "
1487 fontSize 14
1488 fontName "Consolas"
1489 alignment "left"
1490 anchor "tl"
1491 borderDistance 6
1492 ]
1493 ]
1494
1495 node
1496 [
1497 id 39
1498 graphics
1499 [
1500 w 85.80000000000001
1501 h 26
1502 type "rectangle"
1503 fill "#FFFFFF"
1504 fill2 "#FFFFFF"
1505 outline "#000000"
1506 ]
1507 LabelGraphics
1508 [
1509 text "New Reals"
1510 outline "#000000"
1511 fill "#FFFFFF"
1512 fontSize 16
1513 fontName "Monospace"
1514 autoSizePolicy "node_width"
1515 anchor "t"
1516 borderDistance 0.0
1517 ]
1518 LabelGraphics
1519 [
1520 text "
1521 "
1522 fontSize 14
1523 fontName "Consolas"
1524 alignment "left"
1525 anchor "tl"
1526 borderDistance 6
1527 ]
1528 ]
1529
1530 node
1531 [
1532 id 40
1533 graphics
1534 [
1535 w 103.4
1536 h 26
1537 type "rectangle"
1538 fill "#FFFFFF"
1539 fill2 "#FFFFFF"
1540 outline "#000000"
1541 ]
1542 LabelGraphics
1543 [
1544 text "New Strings"
1545 outline "#000000"
1546 fill "#FFFFFF"
1547 fontSize 16
1548 fontName "Monospace"
1549 autoSizePolicy "node_width"
1550 anchor "t"
1551 borderDistance 0.0
1552 ]
1553 LabelGraphics
1554 [
1555 text "
1556 "
1557 fontSize 14
1558 fontName "Consolas"
1559 alignment "left"
1560 anchor "tl"
1561 borderDistance 6
1562 ]
1563 ]
1564
1565 node
1566 [
1567 id 41
1568 graphics
1569 [
1570 w 103.4
1571 h 26
1572 type "rectangle"
1573 fill "#FFFFFF"
1574 fill2 "#FFFFFF"
1575 outline "#000000"
1576 ]
1577 LabelGraphics
1578 [
1579 text "New Objects"
1580 outline "#000000"
1581 fill "#FFFFFF"
1582 fontSize 16
1583 fontName "Monospace"
1584 autoSizePolicy "node_width"
1585 anchor "t"
1586 borderDistance 0.0
1587 ]
1588 LabelGraphics
1589 [
1590 text "
1591 "
1592 fontSize 14
1593 fontName "Consolas"
1594 alignment "left"
1595 anchor "tl"
1596 borderDistance 6
1597 ]
1598 ]
1599 edge
1600 [
1601 source 0
1602 target 1
1603 graphics
1604 [
1605 fill "#000000"
1606 width 3
1607 targetArrow "standard"
1608 ]
1609 LabelGraphics
1610 [
1611 text "groundStationNetwork reference ConstellationMission"
1612 fontSize 14
1613 fontName "Consolas"
1614 configuration "AutoFlippingLabel"
1615 model "six_pos"
1616 position "thead"
1617 ]
1618 ]
1619 edge
1620 [
1621 source 0
1622 target 6
1623 graphics
1624 [
1625 fill "#000000"
1626 width 3
1627 targetArrow "standard"
1628 ]
1629 LabelGraphics
1630 [
1631 text "spacecraft reference ConstellationMission"
1632 fontSize 14
1633 fontName "Consolas"
1634 configuration "AutoFlippingLabel"
1635 model "six_pos"
1636 position "thead"
1637 ]
1638 ]
1639 edge
1640 [
1641 source 0
1642 target 10
1643 graphics
1644 [
1645 fill "#000000"
1646 width 3
1647 targetArrow "standard"
1648 ]
1649 LabelGraphics
1650 [
1651 text "spacecraft reference ConstellationMission"
1652 fontSize 14
1653 fontName "Consolas"
1654 configuration "AutoFlippingLabel"
1655 model "six_pos"
1656 position "thead"
1657 ]
1658 ]
1659 edge
1660 [
1661 source 0
1662 target 14
1663 graphics
1664 [
1665 fill "#000000"
1666 width 3
1667 targetArrow "standard"
1668 ]
1669 LabelGraphics
1670 [
1671 text "spacecraft reference ConstellationMission"
1672 fontSize 14
1673 fontName "Consolas"
1674 configuration "AutoFlippingLabel"
1675 model "six_pos"
1676 position "thead"
1677 ]
1678 ]
1679 edge
1680 [
1681 source 0
1682 target 18
1683 graphics
1684 [
1685 fill "#000000"
1686 width 3
1687 targetArrow "standard"
1688 ]
1689 LabelGraphics
1690 [
1691 text "spacecraft reference ConstellationMission"
1692 fontSize 14
1693 fontName "Consolas"
1694 configuration "AutoFlippingLabel"
1695 model "six_pos"
1696 position "thead"
1697 ]
1698 ]
1699 edge
1700 [
1701 source 0
1702 target 22
1703 graphics
1704 [
1705 fill "#000000"
1706 width 3
1707 targetArrow "standard"
1708 ]
1709 LabelGraphics
1710 [
1711 text "spacecraft reference ConstellationMission"
1712 fontSize 14
1713 fontName "Consolas"
1714 configuration "AutoFlippingLabel"
1715 model "six_pos"
1716 position "thead"
1717 ]
1718 ]
1719 edge
1720 [
1721 source 0
1722 target 26
1723 graphics
1724 [
1725 fill "#000000"
1726 width 3
1727 targetArrow "standard"
1728 ]
1729 LabelGraphics
1730 [
1731 text "spacecraft reference ConstellationMission"
1732 fontSize 14
1733 fontName "Consolas"
1734 configuration "AutoFlippingLabel"
1735 model "six_pos"
1736 position "thead"
1737 ]
1738 ]
1739 edge
1740 [
1741 source 0
1742 target 30
1743 graphics
1744 [
1745 fill "#000000"
1746 width 3
1747 targetArrow "standard"
1748 ]
1749 LabelGraphics
1750 [
1751 text "spacecraft reference ConstellationMission"
1752 fontSize 14
1753 fontName "Consolas"
1754 configuration "AutoFlippingLabel"
1755 model "six_pos"
1756 position "thead"
1757 ]
1758 ]
1759 edge
1760 [
1761 source 0
1762 target 34
1763 graphics
1764 [
1765 fill "#000000"
1766 width 3
1767 targetArrow "standard"
1768 ]
1769 LabelGraphics
1770 [
1771 text "spacecraft reference ConstellationMission"
1772 fontSize 14
1773 fontName "Consolas"
1774 configuration "AutoFlippingLabel"
1775 model "six_pos"
1776 position "thead"
1777 ]
1778 ]
1779 edge
1780 [
1781 source 1
1782 target 2
1783 graphics
1784 [
1785 fill "#000000"
1786 width 3
1787 targetArrow "standard"
1788 ]
1789 LabelGraphics
1790 [
1791 text "commSubsystem reference CommunicatingElement"
1792 fontSize 14
1793 fontName "Consolas"
1794 configuration "AutoFlippingLabel"
1795 model "six_pos"
1796 position "thead"
1797 ]
1798 ]
1799 edge
1800 [
1801 source 1
1802 target 3
1803 graphics
1804 [
1805 fill "#000000"
1806 width 3
1807 targetArrow "standard"
1808 ]
1809 LabelGraphics
1810 [
1811 text "commSubsystem reference CommunicatingElement"
1812 fontSize 14
1813 fontName "Consolas"
1814 configuration "AutoFlippingLabel"
1815 model "six_pos"
1816 position "thead"
1817 ]
1818 ]
1819 edge
1820 [
1821 source 6
1822 target 8
1823 graphics
1824 [
1825 fill "#000000"
1826 width 3
1827 targetArrow "standard"
1828 ]
1829 LabelGraphics
1830 [
1831 text "commSubsystem reference CommunicatingElement"
1832 fontSize 14
1833 fontName "Consolas"
1834 configuration "AutoFlippingLabel"
1835 model "six_pos"
1836 position "thead"
1837 ]
1838 ]
1839 edge
1840 [
1841 source 6
1842 target 9
1843 graphics
1844 [
1845 fill "#000000"
1846 width 3
1847 targetArrow "standard"
1848 ]
1849 LabelGraphics
1850 [
1851 text "commSubsystem reference CommunicatingElement"
1852 fontSize 14
1853 fontName "Consolas"
1854 configuration "AutoFlippingLabel"
1855 model "six_pos"
1856 position "thead"
1857 ]
1858 ]
1859 edge
1860 [
1861 source 10
1862 target 11
1863 graphics
1864 [
1865 fill "#000000"
1866 width 3
1867 targetArrow "standard"
1868 ]
1869 LabelGraphics
1870 [
1871 text "commSubsystem reference CommunicatingElement"
1872 fontSize 14
1873 fontName "Consolas"
1874 configuration "AutoFlippingLabel"
1875 model "six_pos"
1876 position "thead"
1877 ]
1878 ]
1879 edge
1880 [
1881 source 10
1882 target 12
1883 graphics
1884 [
1885 fill "#000000"
1886 width 3
1887 targetArrow "standard"
1888 ]
1889 LabelGraphics
1890 [
1891 text "commSubsystem reference CommunicatingElement"
1892 fontSize 14
1893 fontName "Consolas"
1894 configuration "AutoFlippingLabel"
1895 model "six_pos"
1896 position "thead"
1897 ]
1898 ]
1899 edge
1900 [
1901 source 14
1902 target 15
1903 graphics
1904 [
1905 fill "#000000"
1906 width 3
1907 targetArrow "standard"
1908 ]
1909 LabelGraphics
1910 [
1911 text "commSubsystem reference CommunicatingElement"
1912 fontSize 14
1913 fontName "Consolas"
1914 configuration "AutoFlippingLabel"
1915 model "six_pos"
1916 position "thead"
1917 ]
1918 ]
1919 edge
1920 [
1921 source 14
1922 target 16
1923 graphics
1924 [
1925 fill "#000000"
1926 width 3
1927 targetArrow "standard"
1928 ]
1929 LabelGraphics
1930 [
1931 text "commSubsystem reference CommunicatingElement"
1932 fontSize 14
1933 fontName "Consolas"
1934 configuration "AutoFlippingLabel"
1935 model "six_pos"
1936 position "thead"
1937 ]
1938 ]
1939 edge
1940 [
1941 source 18
1942 target 19
1943 graphics
1944 [
1945 fill "#000000"
1946 width 3
1947 targetArrow "standard"
1948 ]
1949 LabelGraphics
1950 [
1951 text "commSubsystem reference CommunicatingElement"
1952 fontSize 14
1953 fontName "Consolas"
1954 configuration "AutoFlippingLabel"
1955 model "six_pos"
1956 position "thead"
1957 ]
1958 ]
1959 edge
1960 [
1961 source 18
1962 target 20
1963 graphics
1964 [
1965 fill "#000000"
1966 width 3
1967 targetArrow "standard"
1968 ]
1969 LabelGraphics
1970 [
1971 text "commSubsystem reference CommunicatingElement"
1972 fontSize 14
1973 fontName "Consolas"
1974 configuration "AutoFlippingLabel"
1975 model "six_pos"
1976 position "thead"
1977 ]
1978 ]
1979 edge
1980 [
1981 source 22
1982 target 23
1983 graphics
1984 [
1985 fill "#000000"
1986 width 3
1987 targetArrow "standard"
1988 ]
1989 LabelGraphics
1990 [
1991 text "commSubsystem reference CommunicatingElement"
1992 fontSize 14
1993 fontName "Consolas"
1994 configuration "AutoFlippingLabel"
1995 model "six_pos"
1996 position "thead"
1997 ]
1998 ]
1999 edge
2000 [
2001 source 22
2002 target 24
2003 graphics
2004 [
2005 fill "#000000"
2006 width 3
2007 targetArrow "standard"
2008 ]
2009 LabelGraphics
2010 [
2011 text "commSubsystem reference CommunicatingElement"
2012 fontSize 14
2013 fontName "Consolas"
2014 configuration "AutoFlippingLabel"
2015 model "six_pos"
2016 position "thead"
2017 ]
2018 ]
2019 edge
2020 [
2021 source 26
2022 target 27
2023 graphics
2024 [
2025 fill "#000000"
2026 width 3
2027 targetArrow "standard"
2028 ]
2029 LabelGraphics
2030 [
2031 text "commSubsystem reference CommunicatingElement"
2032 fontSize 14
2033 fontName "Consolas"
2034 configuration "AutoFlippingLabel"
2035 model "six_pos"
2036 position "thead"
2037 ]
2038 ]
2039 edge
2040 [
2041 source 26
2042 target 28
2043 graphics
2044 [
2045 fill "#000000"
2046 width 3
2047 targetArrow "standard"
2048 ]
2049 LabelGraphics
2050 [
2051 text "commSubsystem reference CommunicatingElement"
2052 fontSize 14
2053 fontName "Consolas"
2054 configuration "AutoFlippingLabel"
2055 model "six_pos"
2056 position "thead"
2057 ]
2058 ]
2059 edge
2060 [
2061 source 30
2062 target 32
2063 graphics
2064 [
2065 fill "#000000"
2066 width 3
2067 targetArrow "standard"
2068 ]
2069 LabelGraphics
2070 [
2071 text "commSubsystem reference CommunicatingElement"
2072 fontSize 14
2073 fontName "Consolas"
2074 configuration "AutoFlippingLabel"
2075 model "six_pos"
2076 position "thead"
2077 ]
2078 ]
2079 edge
2080 [
2081 source 30
2082 target 33
2083 graphics
2084 [
2085 fill "#000000"
2086 width 3
2087 targetArrow "standard"
2088 ]
2089 LabelGraphics
2090 [
2091 text "commSubsystem reference CommunicatingElement"
2092 fontSize 14
2093 fontName "Consolas"
2094 configuration "AutoFlippingLabel"
2095 model "six_pos"
2096 position "thead"
2097 ]
2098 ]
2099 edge
2100 [
2101 source 34
2102 target 35
2103 graphics
2104 [
2105 fill "#000000"
2106 width 3
2107 targetArrow "standard"
2108 ]
2109 LabelGraphics
2110 [
2111 text "commSubsystem reference CommunicatingElement"
2112 fontSize 14
2113 fontName "Consolas"
2114 configuration "AutoFlippingLabel"
2115 model "six_pos"
2116 position "thead"
2117 ]
2118 ]
2119 edge
2120 [
2121 source 34
2122 target 37
2123 graphics
2124 [
2125 fill "#000000"
2126 width 3
2127 targetArrow "standard"
2128 ]
2129 LabelGraphics
2130 [
2131 text "commSubsystem reference CommunicatingElement"
2132 fontSize 14
2133 fontName "Consolas"
2134 configuration "AutoFlippingLabel"
2135 model "six_pos"
2136 position "thead"
2137 ]
2138 ]
2139 edge
2140 [
2141 source 6
2142 target 7
2143 graphics
2144 [
2145 fill "#000000"
2146 width 3
2147 targetArrow "standard"
2148 ]
2149 LabelGraphics
2150 [
2151 text "payload reference Spacecraft"
2152 fontSize 14
2153 fontName "Consolas"
2154 configuration "AutoFlippingLabel"
2155 model "six_pos"
2156 position "thead"
2157 ]
2158 ]
2159 edge
2160 [
2161 source 10
2162 target 13
2163 graphics
2164 [
2165 fill "#000000"
2166 width 3
2167 targetArrow "standard"
2168 ]
2169 LabelGraphics
2170 [
2171 text "payload reference Spacecraft"
2172 fontSize 14
2173 fontName "Consolas"
2174 configuration "AutoFlippingLabel"
2175 model "six_pos"
2176 position "thead"
2177 ]
2178 ]
2179 edge
2180 [
2181 source 14
2182 target 17
2183 graphics
2184 [
2185 fill "#000000"
2186 width 3
2187 targetArrow "standard"
2188 ]
2189 LabelGraphics
2190 [
2191 text "payload reference Spacecraft"
2192 fontSize 14
2193 fontName "Consolas"
2194 configuration "AutoFlippingLabel"
2195 model "six_pos"
2196 position "thead"
2197 ]
2198 ]
2199 edge
2200 [
2201 source 18
2202 target 21
2203 graphics
2204 [
2205 fill "#000000"
2206 width 3
2207 targetArrow "standard"
2208 ]
2209 LabelGraphics
2210 [
2211 text "payload reference Spacecraft"
2212 fontSize 14
2213 fontName "Consolas"
2214 configuration "AutoFlippingLabel"
2215 model "six_pos"
2216 position "thead"
2217 ]
2218 ]
2219 edge
2220 [
2221 source 22
2222 target 25
2223 graphics
2224 [
2225 fill "#000000"
2226 width 3
2227 targetArrow "standard"
2228 ]
2229 LabelGraphics
2230 [
2231 text "payload reference Spacecraft"
2232 fontSize 14
2233 fontName "Consolas"
2234 configuration "AutoFlippingLabel"
2235 model "six_pos"
2236 position "thead"
2237 ]
2238 ]
2239 edge
2240 [
2241 source 26
2242 target 29
2243 graphics
2244 [
2245 fill "#000000"
2246 width 3
2247 targetArrow "standard"
2248 ]
2249 LabelGraphics
2250 [
2251 text "payload reference Spacecraft"
2252 fontSize 14
2253 fontName "Consolas"
2254 configuration "AutoFlippingLabel"
2255 model "six_pos"
2256 position "thead"
2257 ]
2258 ]
2259 edge
2260 [
2261 source 30
2262 target 31
2263 graphics
2264 [
2265 fill "#000000"
2266 width 3
2267 targetArrow "standard"
2268 ]
2269 LabelGraphics
2270 [
2271 text "payload reference Spacecraft"
2272 fontSize 14
2273 fontName "Consolas"
2274 configuration "AutoFlippingLabel"
2275 model "six_pos"
2276 position "thead"
2277 ]
2278 ]
2279 edge
2280 [
2281 source 34
2282 target 36
2283 graphics
2284 [
2285 fill "#000000"
2286 width 3
2287 targetArrow "standard"
2288 ]
2289 LabelGraphics
2290 [
2291 text "payload reference Spacecraft"
2292 fontSize 14
2293 fontName "Consolas"
2294 configuration "AutoFlippingLabel"
2295 model "six_pos"
2296 position "thead"
2297 ]
2298 ]
2299 edge
2300 [
2301 source 9
2302 target 2
2303 graphics
2304 [
2305 fill "#000000"
2306 targetArrow "standard"
2307 ]
2308 LabelGraphics
2309 [
2310 text "target reference CommSubsystem"
2311 fontSize 14
2312 fontName "Consolas"
2313 configuration "AutoFlippingLabel"
2314 model "six_pos"
2315 position "thead"
2316 ]
2317 ]
2318 edge
2319 [
2320 source 12
2321 target 8
2322 graphics
2323 [
2324 fill "#000000"
2325 targetArrow "standard"
2326 ]
2327 LabelGraphics
2328 [
2329 text "target reference CommSubsystem"
2330 fontSize 14
2331 fontName "Consolas"
2332 configuration "AutoFlippingLabel"
2333 model "six_pos"
2334 position "thead"
2335 ]
2336 ]
2337 edge
2338 [
2339 source 16
2340 target 3
2341 graphics
2342 [
2343 fill "#000000"
2344 targetArrow "standard"
2345 ]
2346 LabelGraphics
2347 [
2348 text "target reference CommSubsystem"
2349 fontSize 14
2350 fontName "Consolas"
2351 configuration "AutoFlippingLabel"
2352 model "six_pos"
2353 position "thead"
2354 ]
2355 ]
2356 edge
2357 [
2358 source 19
2359 target 9
2360 graphics
2361 [
2362 fill "#000000"
2363 targetArrow "standard"
2364 ]
2365 LabelGraphics
2366 [
2367 text "target reference CommSubsystem"
2368 fontSize 14
2369 fontName "Consolas"
2370 configuration "AutoFlippingLabel"
2371 model "six_pos"
2372 position "thead"
2373 ]
2374 ]
2375 edge
2376 [
2377 source 23
2378 target 12
2379 graphics
2380 [
2381 fill "#000000"
2382 targetArrow "standard"
2383 ]
2384 LabelGraphics
2385 [
2386 text "target reference CommSubsystem"
2387 fontSize 14
2388 fontName "Consolas"
2389 configuration "AutoFlippingLabel"
2390 model "six_pos"
2391 position "thead"
2392 ]
2393 ]
2394 edge
2395 [
2396 source 27
2397 target 15
2398 graphics
2399 [
2400 fill "#000000"
2401 targetArrow "standard"
2402 ]
2403 LabelGraphics
2404 [
2405 text "target reference CommSubsystem"
2406 fontSize 14
2407 fontName "Consolas"
2408 configuration "AutoFlippingLabel"
2409 model "six_pos"
2410 position "thead"
2411 ]
2412 ]
2413 edge
2414 [
2415 source 32
2416 target 15
2417 graphics
2418 [
2419 fill "#000000"
2420 targetArrow "standard"
2421 ]
2422 LabelGraphics
2423 [
2424 text "target reference CommSubsystem"
2425 fontSize 14
2426 fontName "Consolas"
2427 configuration "AutoFlippingLabel"
2428 model "six_pos"
2429 position "thead"
2430 ]
2431 ]
2432 edge
2433 [
2434 source 35
2435 target 16
2436 graphics
2437 [
2438 fill "#000000"
2439 targetArrow "standard"
2440 ]
2441 LabelGraphics
2442 [
2443 text "target reference CommSubsystem"
2444 fontSize 14
2445 fontName "Consolas"
2446 configuration "AutoFlippingLabel"
2447 model "six_pos"
2448 position "thead"
2449 ]
2450 ]
2451]
2452
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run1/1_1.png b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run1/1_1.png
deleted file mode 100644
index 7484e249..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run1/1_1.png
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run1/1_1.xmi b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run1/1_1.xmi
deleted file mode 100644
index ba3eec9b..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run1/1_1.xmi
+++ /dev/null
@@ -1,47 +0,0 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
5 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:SmallSat">
8 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@spacecraft.3/@commSubsystem.0"/>
9 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
10 <payload xsi:type="satellite:InterferometryPayload"/>
11 </spacecraft>
12 <spacecraft xsi:type="satellite:CubeSat3U">
13 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.4/@commSubsystem.0"/>
14 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
15 <payload xsi:type="satellite:InterferometryPayload"/>
16 </spacecraft>
17 <spacecraft xsi:type="satellite:CubeSat3U">
18 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
19 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.3/@commSubsystem.1"/>
20 <payload xsi:type="satellite:InterferometryPayload"/>
21 </spacecraft>
22 <spacecraft xsi:type="satellite:SmallSat">
23 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0"/>
24 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
25 <payload xsi:type="satellite:InterferometryPayload"/>
26 </spacecraft>
27 <spacecraft xsi:type="satellite:SmallSat">
28 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
29 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
30 <payload xsi:type="satellite:InterferometryPayload"/>
31 </spacecraft>
32 <spacecraft xsi:type="satellite:CubeSat3U">
33 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
34 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.1/@commSubsystem.0"/>
35 <payload xsi:type="satellite:InterferometryPayload"/>
36 </spacecraft>
37 <spacecraft xsi:type="satellite:CubeSat6U">
38 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
39 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.4/@commSubsystem.1"/>
40 <payload xsi:type="satellite:InterferometryPayload"/>
41 </spacecraft>
42 <spacecraft xsi:type="satellite:CubeSat3U">
43 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.3/@commSubsystem.1"/>
44 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
45 <payload xsi:type="satellite:InterferometryPayload"/>
46 </spacecraft>
47</satellite:InterferometryMission>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run2/2_1.gml b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run2/2_1.gml
deleted file mode 100644
index 00045cb3..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run2/2_1.gml
+++ /dev/null
@@ -1,2451 +0,0 @@
1graph
2[
3 node
4 [
5 id 0
6 graphics
7 [
8 w 315.70000000000005
9 h 82
10 type "rectangle"
11 fill "#FFFFFF"
12 fill2 "#FFFFFF"
13 outline "#000000"
14 ]
15 LabelGraphics
16 [
17 text "o 1"
18 outline "#000000"
19 fill "#FFFFFF"
20 fontSize 16
21 fontName "Monospace"
22 autoSizePolicy "node_width"
23 anchor "t"
24 borderDistance 0.0
25 ]
26 LabelGraphics
27 [
28 text "
29 ConstellationMission class DefinedPart
30 InterferometryMission class DefinedPart
31 ConstellationMission class
32 InterferometryMission class
33 "
34 fontSize 14
35 fontName "Consolas"
36 alignment "left"
37 anchor "tl"
38 borderDistance 6
39 ]
40 ]
41
42 node
43 [
44 id 1
45 graphics
46 [
47 w 308.0
48 h 82
49 type "rectangle"
50 fill "#FFFFFF"
51 fill2 "#FFFFFF"
52 outline "#000000"
53 ]
54 LabelGraphics
55 [
56 text "o 2"
57 outline "#000000"
58 fill "#FFFFFF"
59 fontSize 16
60 fontName "Monospace"
61 autoSizePolicy "node_width"
62 anchor "t"
63 borderDistance 0.0
64 ]
65 LabelGraphics
66 [
67 text "
68 CommunicatingElement class DefinedPart
69 GroundStationNetwork class DefinedPart
70 CommunicatingElement class
71 GroundStationNetwork class
72 "
73 fontSize 14
74 fontName "Consolas"
75 alignment "left"
76 anchor "tl"
77 borderDistance 6
78 ]
79 ]
80
81 node
82 [
83 id 2
84 graphics
85 [
86 w 261.8
87 h 82
88 type "rectangle"
89 fill "#FFFFFF"
90 fill2 "#FFFFFF"
91 outline "#000000"
92 ]
93 LabelGraphics
94 [
95 text "o 3"
96 outline "#000000"
97 fill "#FFFFFF"
98 fontSize 16
99 fontName "Monospace"
100 autoSizePolicy "node_width"
101 anchor "t"
102 borderDistance 0.0
103 ]
104 LabelGraphics
105 [
106 text "
107 CommSubsystem class DefinedPart
108 XCommSubsystem class DefinedPart
109 CommSubsystem class
110 XCommSubsystem class
111 "
112 fontSize 14
113 fontName "Consolas"
114 alignment "left"
115 anchor "tl"
116 borderDistance 6
117 ]
118 ]
119
120 node
121 [
122 id 3
123 graphics
124 [
125 w 269.5
126 h 82
127 type "rectangle"
128 fill "#FFFFFF"
129 fill2 "#FFFFFF"
130 outline "#000000"
131 ]
132 LabelGraphics
133 [
134 text "o 4"
135 outline "#000000"
136 fill "#FFFFFF"
137 fontSize 16
138 fontName "Monospace"
139 autoSizePolicy "node_width"
140 anchor "t"
141 borderDistance 0.0
142 ]
143 LabelGraphics
144 [
145 text "
146 CommSubsystem class DefinedPart
147 KaCommSubsystem class DefinedPart
148 CommSubsystem class
149 KaCommSubsystem class
150 "
151 fontSize 14
152 fontName "Consolas"
153 alignment "left"
154 anchor "tl"
155 borderDistance 6
156 ]
157 ]
158
159 node
160 [
161 id 4
162 graphics
163 [
164 w 41.800000000000004
165 h 26
166 type "rectangle"
167 fill "#FFFFFF"
168 fill2 "#FFFFFF"
169 outline "#000000"
170 ]
171 LabelGraphics
172 [
173 text "true"
174 outline "#000000"
175 fill "#FFFFFF"
176 fontSize 16
177 fontName "Monospace"
178 autoSizePolicy "node_width"
179 anchor "t"
180 borderDistance 0.0
181 ]
182 LabelGraphics
183 [
184 text "
185 "
186 fontSize 14
187 fontName "Consolas"
188 alignment "left"
189 anchor "tl"
190 borderDistance 6
191 ]
192 ]
193
194 node
195 [
196 id 5
197 graphics
198 [
199 w 50.6
200 h 26
201 type "rectangle"
202 fill "#FFFFFF"
203 fill2 "#FFFFFF"
204 outline "#000000"
205 ]
206 LabelGraphics
207 [
208 text "false"
209 outline "#000000"
210 fill "#FFFFFF"
211 fontSize 16
212 fontName "Monospace"
213 autoSizePolicy "node_width"
214 anchor "t"
215 borderDistance 0.0
216 ]
217 LabelGraphics
218 [
219 text "
220 "
221 fontSize 14
222 fontName "Consolas"
223 alignment "left"
224 anchor "tl"
225 borderDistance 6
226 ]
227 ]
228
229 node
230 [
231 id 6
232 graphics
233 [
234 w 323.40000000000003
235 h 82
236 type "rectangle"
237 fill "#FFFFFF"
238 fill2 "#FFFFFF"
239 outline "#000000"
240 ]
241 LabelGraphics
242 [
243 text "null"
244 outline "#000000"
245 fill "#FFFFFF"
246 fontSize 16
247 fontName "Monospace"
248 autoSizePolicy "node_width"
249 anchor "t"
250 borderDistance 0.0
251 ]
252 LabelGraphics
253 [
254 text "
255 CommunicatingElement class
256 Spacecraft class
257 SmallSat class
258 CommunicatingElement class UndefinedPart
259 "
260 fontSize 14
261 fontName "Consolas"
262 alignment "left"
263 anchor "tl"
264 borderDistance 6
265 ]
266 ]
267
268 node
269 [
270 id 7
271 graphics
272 [
273 w 269.5
274 h 68
275 type "rectangle"
276 fill "#FFFFFF"
277 fill2 "#FFFFFF"
278 outline "#000000"
279 ]
280 LabelGraphics
281 [
282 text "null"
283 outline "#000000"
284 fill "#FFFFFF"
285 fontSize 16
286 fontName "Monospace"
287 autoSizePolicy "node_width"
288 anchor "t"
289 borderDistance 0.0
290 ]
291 LabelGraphics
292 [
293 text "
294 CommSubsystem class
295 UHFCommSubsystem class
296 CommSubsystem class UndefinedPart
297 "
298 fontSize 14
299 fontName "Consolas"
300 alignment "left"
301 anchor "tl"
302 borderDistance 6
303 ]
304 ]
305
306 node
307 [
308 id 8
309 graphics
310 [
311 w 269.5
312 h 68
313 type "rectangle"
314 fill "#FFFFFF"
315 fill2 "#FFFFFF"
316 outline "#000000"
317 ]
318 LabelGraphics
319 [
320 text "null"
321 outline "#000000"
322 fill "#FFFFFF"
323 fontSize 16
324 fontName "Monospace"
325 autoSizePolicy "node_width"
326 anchor "t"
327 borderDistance 0.0
328 ]
329 LabelGraphics
330 [
331 text "
332 CommSubsystem class
333 UHFCommSubsystem class
334 CommSubsystem class UndefinedPart
335 "
336 fontSize 14
337 fontName "Consolas"
338 alignment "left"
339 anchor "tl"
340 borderDistance 6
341 ]
342 ]
343
344 node
345 [
346 id 9
347 graphics
348 [
349 w 223.3
350 h 54
351 type "rectangle"
352 fill "#FFFFFF"
353 fill2 "#FFFFFF"
354 outline "#000000"
355 ]
356 LabelGraphics
357 [
358 text "null"
359 outline "#000000"
360 fill "#FFFFFF"
361 fontSize 16
362 fontName "Monospace"
363 autoSizePolicy "node_width"
364 anchor "t"
365 borderDistance 0.0
366 ]
367 LabelGraphics
368 [
369 text "
370 Payload class
371 InterferometryPayload class
372 "
373 fontSize 14
374 fontName "Consolas"
375 alignment "left"
376 anchor "tl"
377 borderDistance 6
378 ]
379 ]
380
381 node
382 [
383 id 10
384 graphics
385 [
386 w 323.40000000000003
387 h 82
388 type "rectangle"
389 fill "#FFFFFF"
390 fill2 "#FFFFFF"
391 outline "#000000"
392 ]
393 LabelGraphics
394 [
395 text "null"
396 outline "#000000"
397 fill "#FFFFFF"
398 fontSize 16
399 fontName "Monospace"
400 autoSizePolicy "node_width"
401 anchor "t"
402 borderDistance 0.0
403 ]
404 LabelGraphics
405 [
406 text "
407 CommunicatingElement class
408 Spacecraft class
409 SmallSat class
410 CommunicatingElement class UndefinedPart
411 "
412 fontSize 14
413 fontName "Consolas"
414 alignment "left"
415 anchor "tl"
416 borderDistance 6
417 ]
418 ]
419
420 node
421 [
422 id 11
423 graphics
424 [
425 w 277.20000000000005
426 h 82
427 type "rectangle"
428 fill "#FFFFFF"
429 fill2 "#FFFFFF"
430 outline "#000000"
431 ]
432 LabelGraphics
433 [
434 text "null"
435 outline "#000000"
436 fill "#FFFFFF"
437 fontSize 16
438 fontName "Monospace"
439 autoSizePolicy "node_width"
440 anchor "t"
441 borderDistance 0.0
442 ]
443 LabelGraphics
444 [
445 text "
446 CommSubsystem class
447 XCommSubsystem class
448 CommSubsystem class UndefinedPart
449 XCommSubsystem class UndefinedPart
450 "
451 fontSize 14
452 fontName "Consolas"
453 alignment "left"
454 anchor "tl"
455 borderDistance 6
456 ]
457 ]
458
459 node
460 [
461 id 12
462 graphics
463 [
464 w 284.90000000000003
465 h 82
466 type "rectangle"
467 fill "#FFFFFF"
468 fill2 "#FFFFFF"
469 outline "#000000"
470 ]
471 LabelGraphics
472 [
473 text "null"
474 outline "#000000"
475 fill "#FFFFFF"
476 fontSize 16
477 fontName "Monospace"
478 autoSizePolicy "node_width"
479 anchor "t"
480 borderDistance 0.0
481 ]
482 LabelGraphics
483 [
484 text "
485 CommSubsystem class
486 KaCommSubsystem class
487 CommSubsystem class UndefinedPart
488 KaCommSubsystem class UndefinedPart
489 "
490 fontSize 14
491 fontName "Consolas"
492 alignment "left"
493 anchor "tl"
494 borderDistance 6
495 ]
496 ]
497
498 node
499 [
500 id 13
501 graphics
502 [
503 w 223.3
504 h 54
505 type "rectangle"
506 fill "#FFFFFF"
507 fill2 "#FFFFFF"
508 outline "#000000"
509 ]
510 LabelGraphics
511 [
512 text "null"
513 outline "#000000"
514 fill "#FFFFFF"
515 fontSize 16
516 fontName "Monospace"
517 autoSizePolicy "node_width"
518 anchor "t"
519 borderDistance 0.0
520 ]
521 LabelGraphics
522 [
523 text "
524 Payload class
525 InterferometryPayload class
526 "
527 fontSize 14
528 fontName "Consolas"
529 alignment "left"
530 anchor "tl"
531 borderDistance 6
532 ]
533 ]
534
535 node
536 [
537 id 14
538 graphics
539 [
540 w 323.40000000000003
541 h 96
542 type "rectangle"
543 fill "#FFFFFF"
544 fill2 "#FFFFFF"
545 outline "#000000"
546 ]
547 LabelGraphics
548 [
549 text "null"
550 outline "#000000"
551 fill "#FFFFFF"
552 fontSize 16
553 fontName "Monospace"
554 autoSizePolicy "node_width"
555 anchor "t"
556 borderDistance 0.0
557 ]
558 LabelGraphics
559 [
560 text "
561 CommunicatingElement class
562 Spacecraft class
563 CubeSat6U class
564 CubeSat class
565 CommunicatingElement class UndefinedPart
566 "
567 fontSize 14
568 fontName "Consolas"
569 alignment "left"
570 anchor "tl"
571 borderDistance 6
572 ]
573 ]
574
575 node
576 [
577 id 15
578 graphics
579 [
580 w 277.20000000000005
581 h 82
582 type "rectangle"
583 fill "#FFFFFF"
584 fill2 "#FFFFFF"
585 outline "#000000"
586 ]
587 LabelGraphics
588 [
589 text "null"
590 outline "#000000"
591 fill "#FFFFFF"
592 fontSize 16
593 fontName "Monospace"
594 autoSizePolicy "node_width"
595 anchor "t"
596 borderDistance 0.0
597 ]
598 LabelGraphics
599 [
600 text "
601 CommSubsystem class
602 XCommSubsystem class
603 CommSubsystem class UndefinedPart
604 XCommSubsystem class UndefinedPart
605 "
606 fontSize 14
607 fontName "Consolas"
608 alignment "left"
609 anchor "tl"
610 borderDistance 6
611 ]
612 ]
613
614 node
615 [
616 id 16
617 graphics
618 [
619 w 223.3
620 h 54
621 type "rectangle"
622 fill "#FFFFFF"
623 fill2 "#FFFFFF"
624 outline "#000000"
625 ]
626 LabelGraphics
627 [
628 text "null"
629 outline "#000000"
630 fill "#FFFFFF"
631 fontSize 16
632 fontName "Monospace"
633 autoSizePolicy "node_width"
634 anchor "t"
635 borderDistance 0.0
636 ]
637 LabelGraphics
638 [
639 text "
640 Payload class
641 InterferometryPayload class
642 "
643 fontSize 14
644 fontName "Consolas"
645 alignment "left"
646 anchor "tl"
647 borderDistance 6
648 ]
649 ]
650
651 node
652 [
653 id 17
654 graphics
655 [
656 w 269.5
657 h 68
658 type "rectangle"
659 fill "#FFFFFF"
660 fill2 "#FFFFFF"
661 outline "#000000"
662 ]
663 LabelGraphics
664 [
665 text "null"
666 outline "#000000"
667 fill "#FFFFFF"
668 fontSize 16
669 fontName "Monospace"
670 autoSizePolicy "node_width"
671 anchor "t"
672 borderDistance 0.0
673 ]
674 LabelGraphics
675 [
676 text "
677 CommSubsystem class
678 UHFCommSubsystem class
679 CommSubsystem class UndefinedPart
680 "
681 fontSize 14
682 fontName "Consolas"
683 alignment "left"
684 anchor "tl"
685 borderDistance 6
686 ]
687 ]
688
689 node
690 [
691 id 18
692 graphics
693 [
694 w 323.40000000000003
695 h 96
696 type "rectangle"
697 fill "#FFFFFF"
698 fill2 "#FFFFFF"
699 outline "#000000"
700 ]
701 LabelGraphics
702 [
703 text "null"
704 outline "#000000"
705 fill "#FFFFFF"
706 fontSize 16
707 fontName "Monospace"
708 autoSizePolicy "node_width"
709 anchor "t"
710 borderDistance 0.0
711 ]
712 LabelGraphics
713 [
714 text "
715 CommunicatingElement class
716 Spacecraft class
717 CubeSat3U class
718 CubeSat class
719 CommunicatingElement class UndefinedPart
720 "
721 fontSize 14
722 fontName "Consolas"
723 alignment "left"
724 anchor "tl"
725 borderDistance 6
726 ]
727 ]
728
729 node
730 [
731 id 19
732 graphics
733 [
734 w 269.5
735 h 68
736 type "rectangle"
737 fill "#FFFFFF"
738 fill2 "#FFFFFF"
739 outline "#000000"
740 ]
741 LabelGraphics
742 [
743 text "null"
744 outline "#000000"
745 fill "#FFFFFF"
746 fontSize 16
747 fontName "Monospace"
748 autoSizePolicy "node_width"
749 anchor "t"
750 borderDistance 0.0
751 ]
752 LabelGraphics
753 [
754 text "
755 CommSubsystem class
756 UHFCommSubsystem class
757 CommSubsystem class UndefinedPart
758 "
759 fontSize 14
760 fontName "Consolas"
761 alignment "left"
762 anchor "tl"
763 borderDistance 6
764 ]
765 ]
766
767 node
768 [
769 id 20
770 graphics
771 [
772 w 223.3
773 h 54
774 type "rectangle"
775 fill "#FFFFFF"
776 fill2 "#FFFFFF"
777 outline "#000000"
778 ]
779 LabelGraphics
780 [
781 text "null"
782 outline "#000000"
783 fill "#FFFFFF"
784 fontSize 16
785 fontName "Monospace"
786 autoSizePolicy "node_width"
787 anchor "t"
788 borderDistance 0.0
789 ]
790 LabelGraphics
791 [
792 text "
793 Payload class
794 InterferometryPayload class
795 "
796 fontSize 14
797 fontName "Consolas"
798 alignment "left"
799 anchor "tl"
800 borderDistance 6
801 ]
802 ]
803
804 node
805 [
806 id 21
807 graphics
808 [
809 w 277.20000000000005
810 h 82
811 type "rectangle"
812 fill "#FFFFFF"
813 fill2 "#FFFFFF"
814 outline "#000000"
815 ]
816 LabelGraphics
817 [
818 text "null"
819 outline "#000000"
820 fill "#FFFFFF"
821 fontSize 16
822 fontName "Monospace"
823 autoSizePolicy "node_width"
824 anchor "t"
825 borderDistance 0.0
826 ]
827 LabelGraphics
828 [
829 text "
830 CommSubsystem class
831 XCommSubsystem class
832 CommSubsystem class UndefinedPart
833 XCommSubsystem class UndefinedPart
834 "
835 fontSize 14
836 fontName "Consolas"
837 alignment "left"
838 anchor "tl"
839 borderDistance 6
840 ]
841 ]
842
843 node
844 [
845 id 22
846 graphics
847 [
848 w 323.40000000000003
849 h 96
850 type "rectangle"
851 fill "#FFFFFF"
852 fill2 "#FFFFFF"
853 outline "#000000"
854 ]
855 LabelGraphics
856 [
857 text "null"
858 outline "#000000"
859 fill "#FFFFFF"
860 fontSize 16
861 fontName "Monospace"
862 autoSizePolicy "node_width"
863 anchor "t"
864 borderDistance 0.0
865 ]
866 LabelGraphics
867 [
868 text "
869 CommunicatingElement class
870 Spacecraft class
871 CubeSat3U class
872 CubeSat class
873 CommunicatingElement class UndefinedPart
874 "
875 fontSize 14
876 fontName "Consolas"
877 alignment "left"
878 anchor "tl"
879 borderDistance 6
880 ]
881 ]
882
883 node
884 [
885 id 23
886 graphics
887 [
888 w 223.3
889 h 54
890 type "rectangle"
891 fill "#FFFFFF"
892 fill2 "#FFFFFF"
893 outline "#000000"
894 ]
895 LabelGraphics
896 [
897 text "null"
898 outline "#000000"
899 fill "#FFFFFF"
900 fontSize 16
901 fontName "Monospace"
902 autoSizePolicy "node_width"
903 anchor "t"
904 borderDistance 0.0
905 ]
906 LabelGraphics
907 [
908 text "
909 Payload class
910 InterferometryPayload class
911 "
912 fontSize 14
913 fontName "Consolas"
914 alignment "left"
915 anchor "tl"
916 borderDistance 6
917 ]
918 ]
919
920 node
921 [
922 id 24
923 graphics
924 [
925 w 269.5
926 h 68
927 type "rectangle"
928 fill "#FFFFFF"
929 fill2 "#FFFFFF"
930 outline "#000000"
931 ]
932 LabelGraphics
933 [
934 text "null"
935 outline "#000000"
936 fill "#FFFFFF"
937 fontSize 16
938 fontName "Monospace"
939 autoSizePolicy "node_width"
940 anchor "t"
941 borderDistance 0.0
942 ]
943 LabelGraphics
944 [
945 text "
946 CommSubsystem class
947 UHFCommSubsystem class
948 CommSubsystem class UndefinedPart
949 "
950 fontSize 14
951 fontName "Consolas"
952 alignment "left"
953 anchor "tl"
954 borderDistance 6
955 ]
956 ]
957
958 node
959 [
960 id 25
961 graphics
962 [
963 w 277.20000000000005
964 h 82
965 type "rectangle"
966 fill "#FFFFFF"
967 fill2 "#FFFFFF"
968 outline "#000000"
969 ]
970 LabelGraphics
971 [
972 text "null"
973 outline "#000000"
974 fill "#FFFFFF"
975 fontSize 16
976 fontName "Monospace"
977 autoSizePolicy "node_width"
978 anchor "t"
979 borderDistance 0.0
980 ]
981 LabelGraphics
982 [
983 text "
984 CommSubsystem class
985 XCommSubsystem class
986 CommSubsystem class UndefinedPart
987 XCommSubsystem class UndefinedPart
988 "
989 fontSize 14
990 fontName "Consolas"
991 alignment "left"
992 anchor "tl"
993 borderDistance 6
994 ]
995 ]
996
997 node
998 [
999 id 26
1000 graphics
1001 [
1002 w 323.40000000000003
1003 h 96
1004 type "rectangle"
1005 fill "#FFFFFF"
1006 fill2 "#FFFFFF"
1007 outline "#000000"
1008 ]
1009 LabelGraphics
1010 [
1011 text "null"
1012 outline "#000000"
1013 fill "#FFFFFF"
1014 fontSize 16
1015 fontName "Monospace"
1016 autoSizePolicy "node_width"
1017 anchor "t"
1018 borderDistance 0.0
1019 ]
1020 LabelGraphics
1021 [
1022 text "
1023 CommunicatingElement class
1024 Spacecraft class
1025 CubeSat6U class
1026 CubeSat class
1027 CommunicatingElement class UndefinedPart
1028 "
1029 fontSize 14
1030 fontName "Consolas"
1031 alignment "left"
1032 anchor "tl"
1033 borderDistance 6
1034 ]
1035 ]
1036
1037 node
1038 [
1039 id 27
1040 graphics
1041 [
1042 w 223.3
1043 h 54
1044 type "rectangle"
1045 fill "#FFFFFF"
1046 fill2 "#FFFFFF"
1047 outline "#000000"
1048 ]
1049 LabelGraphics
1050 [
1051 text "null"
1052 outline "#000000"
1053 fill "#FFFFFF"
1054 fontSize 16
1055 fontName "Monospace"
1056 autoSizePolicy "node_width"
1057 anchor "t"
1058 borderDistance 0.0
1059 ]
1060 LabelGraphics
1061 [
1062 text "
1063 Payload class
1064 InterferometryPayload class
1065 "
1066 fontSize 14
1067 fontName "Consolas"
1068 alignment "left"
1069 anchor "tl"
1070 borderDistance 6
1071 ]
1072 ]
1073
1074 node
1075 [
1076 id 28
1077 graphics
1078 [
1079 w 277.20000000000005
1080 h 82
1081 type "rectangle"
1082 fill "#FFFFFF"
1083 fill2 "#FFFFFF"
1084 outline "#000000"
1085 ]
1086 LabelGraphics
1087 [
1088 text "null"
1089 outline "#000000"
1090 fill "#FFFFFF"
1091 fontSize 16
1092 fontName "Monospace"
1093 autoSizePolicy "node_width"
1094 anchor "t"
1095 borderDistance 0.0
1096 ]
1097 LabelGraphics
1098 [
1099 text "
1100 CommSubsystem class
1101 XCommSubsystem class
1102 CommSubsystem class UndefinedPart
1103 XCommSubsystem class UndefinedPart
1104 "
1105 fontSize 14
1106 fontName "Consolas"
1107 alignment "left"
1108 anchor "tl"
1109 borderDistance 6
1110 ]
1111 ]
1112
1113 node
1114 [
1115 id 29
1116 graphics
1117 [
1118 w 269.5
1119 h 68
1120 type "rectangle"
1121 fill "#FFFFFF"
1122 fill2 "#FFFFFF"
1123 outline "#000000"
1124 ]
1125 LabelGraphics
1126 [
1127 text "null"
1128 outline "#000000"
1129 fill "#FFFFFF"
1130 fontSize 16
1131 fontName "Monospace"
1132 autoSizePolicy "node_width"
1133 anchor "t"
1134 borderDistance 0.0
1135 ]
1136 LabelGraphics
1137 [
1138 text "
1139 CommSubsystem class
1140 UHFCommSubsystem class
1141 CommSubsystem class UndefinedPart
1142 "
1143 fontSize 14
1144 fontName "Consolas"
1145 alignment "left"
1146 anchor "tl"
1147 borderDistance 6
1148 ]
1149 ]
1150
1151 node
1152 [
1153 id 30
1154 graphics
1155 [
1156 w 323.40000000000003
1157 h 82
1158 type "rectangle"
1159 fill "#FFFFFF"
1160 fill2 "#FFFFFF"
1161 outline "#000000"
1162 ]
1163 LabelGraphics
1164 [
1165 text "null"
1166 outline "#000000"
1167 fill "#FFFFFF"
1168 fontSize 16
1169 fontName "Monospace"
1170 autoSizePolicy "node_width"
1171 anchor "t"
1172 borderDistance 0.0
1173 ]
1174 LabelGraphics
1175 [
1176 text "
1177 CommunicatingElement class
1178 Spacecraft class
1179 SmallSat class
1180 CommunicatingElement class UndefinedPart
1181 "
1182 fontSize 14
1183 fontName "Consolas"
1184 alignment "left"
1185 anchor "tl"
1186 borderDistance 6
1187 ]
1188 ]
1189
1190 node
1191 [
1192 id 31
1193 graphics
1194 [
1195 w 284.90000000000003
1196 h 82
1197 type "rectangle"
1198 fill "#FFFFFF"
1199 fill2 "#FFFFFF"
1200 outline "#000000"
1201 ]
1202 LabelGraphics
1203 [
1204 text "null"
1205 outline "#000000"
1206 fill "#FFFFFF"
1207 fontSize 16
1208 fontName "Monospace"
1209 autoSizePolicy "node_width"
1210 anchor "t"
1211 borderDistance 0.0
1212 ]
1213 LabelGraphics
1214 [
1215 text "
1216 CommSubsystem class
1217 KaCommSubsystem class
1218 CommSubsystem class UndefinedPart
1219 KaCommSubsystem class UndefinedPart
1220 "
1221 fontSize 14
1222 fontName "Consolas"
1223 alignment "left"
1224 anchor "tl"
1225 borderDistance 6
1226 ]
1227 ]
1228
1229 node
1230 [
1231 id 32
1232 graphics
1233 [
1234 w 223.3
1235 h 54
1236 type "rectangle"
1237 fill "#FFFFFF"
1238 fill2 "#FFFFFF"
1239 outline "#000000"
1240 ]
1241 LabelGraphics
1242 [
1243 text "null"
1244 outline "#000000"
1245 fill "#FFFFFF"
1246 fontSize 16
1247 fontName "Monospace"
1248 autoSizePolicy "node_width"
1249 anchor "t"
1250 borderDistance 0.0
1251 ]
1252 LabelGraphics
1253 [
1254 text "
1255 Payload class
1256 InterferometryPayload class
1257 "
1258 fontSize 14
1259 fontName "Consolas"
1260 alignment "left"
1261 anchor "tl"
1262 borderDistance 6
1263 ]
1264 ]
1265
1266 node
1267 [
1268 id 33
1269 graphics
1270 [
1271 w 284.90000000000003
1272 h 82
1273 type "rectangle"
1274 fill "#FFFFFF"
1275 fill2 "#FFFFFF"
1276 outline "#000000"
1277 ]
1278 LabelGraphics
1279 [
1280 text "null"
1281 outline "#000000"
1282 fill "#FFFFFF"
1283 fontSize 16
1284 fontName "Monospace"
1285 autoSizePolicy "node_width"
1286 anchor "t"
1287 borderDistance 0.0
1288 ]
1289 LabelGraphics
1290 [
1291 text "
1292 CommSubsystem class
1293 KaCommSubsystem class
1294 CommSubsystem class UndefinedPart
1295 KaCommSubsystem class UndefinedPart
1296 "
1297 fontSize 14
1298 fontName "Consolas"
1299 alignment "left"
1300 anchor "tl"
1301 borderDistance 6
1302 ]
1303 ]
1304
1305 node
1306 [
1307 id 34
1308 graphics
1309 [
1310 w 323.40000000000003
1311 h 82
1312 type "rectangle"
1313 fill "#FFFFFF"
1314 fill2 "#FFFFFF"
1315 outline "#000000"
1316 ]
1317 LabelGraphics
1318 [
1319 text "null"
1320 outline "#000000"
1321 fill "#FFFFFF"
1322 fontSize 16
1323 fontName "Monospace"
1324 autoSizePolicy "node_width"
1325 anchor "t"
1326 borderDistance 0.0
1327 ]
1328 LabelGraphics
1329 [
1330 text "
1331 CommunicatingElement class
1332 Spacecraft class
1333 SmallSat class
1334 CommunicatingElement class UndefinedPart
1335 "
1336 fontSize 14
1337 fontName "Consolas"
1338 alignment "left"
1339 anchor "tl"
1340 borderDistance 6
1341 ]
1342 ]
1343
1344 node
1345 [
1346 id 35
1347 graphics
1348 [
1349 w 284.90000000000003
1350 h 82
1351 type "rectangle"
1352 fill "#FFFFFF"
1353 fill2 "#FFFFFF"
1354 outline "#000000"
1355 ]
1356 LabelGraphics
1357 [
1358 text "null"
1359 outline "#000000"
1360 fill "#FFFFFF"
1361 fontSize 16
1362 fontName "Monospace"
1363 autoSizePolicy "node_width"
1364 anchor "t"
1365 borderDistance 0.0
1366 ]
1367 LabelGraphics
1368 [
1369 text "
1370 CommSubsystem class
1371 KaCommSubsystem class
1372 CommSubsystem class UndefinedPart
1373 KaCommSubsystem class UndefinedPart
1374 "
1375 fontSize 14
1376 fontName "Consolas"
1377 alignment "left"
1378 anchor "tl"
1379 borderDistance 6
1380 ]
1381 ]
1382
1383 node
1384 [
1385 id 36
1386 graphics
1387 [
1388 w 223.3
1389 h 54
1390 type "rectangle"
1391 fill "#FFFFFF"
1392 fill2 "#FFFFFF"
1393 outline "#000000"
1394 ]
1395 LabelGraphics
1396 [
1397 text "null"
1398 outline "#000000"
1399 fill "#FFFFFF"
1400 fontSize 16
1401 fontName "Monospace"
1402 autoSizePolicy "node_width"
1403 anchor "t"
1404 borderDistance 0.0
1405 ]
1406 LabelGraphics
1407 [
1408 text "
1409 Payload class
1410 InterferometryPayload class
1411 "
1412 fontSize 14
1413 fontName "Consolas"
1414 alignment "left"
1415 anchor "tl"
1416 borderDistance 6
1417 ]
1418 ]
1419
1420 node
1421 [
1422 id 37
1423 graphics
1424 [
1425 w 277.20000000000005
1426 h 82
1427 type "rectangle"
1428 fill "#FFFFFF"
1429 fill2 "#FFFFFF"
1430 outline "#000000"
1431 ]
1432 LabelGraphics
1433 [
1434 text "null"
1435 outline "#000000"
1436 fill "#FFFFFF"
1437 fontSize 16
1438 fontName "Monospace"
1439 autoSizePolicy "node_width"
1440 anchor "t"
1441 borderDistance 0.0
1442 ]
1443 LabelGraphics
1444 [
1445 text "
1446 CommSubsystem class
1447 XCommSubsystem class
1448 CommSubsystem class UndefinedPart
1449 XCommSubsystem class UndefinedPart
1450 "
1451 fontSize 14
1452 fontName "Consolas"
1453 alignment "left"
1454 anchor "tl"
1455 borderDistance 6
1456 ]
1457 ]
1458
1459 node
1460 [
1461 id 38
1462 graphics
1463 [
1464 w 112.2
1465 h 26
1466 type "rectangle"
1467 fill "#FFFFFF"
1468 fill2 "#FFFFFF"
1469 outline "#000000"
1470 ]
1471 LabelGraphics
1472 [
1473 text "New Integers"
1474 outline "#000000"
1475 fill "#FFFFFF"
1476 fontSize 16
1477 fontName "Monospace"
1478 autoSizePolicy "node_width"
1479 anchor "t"
1480 borderDistance 0.0
1481 ]
1482 LabelGraphics
1483 [
1484 text "
1485 "
1486 fontSize 14
1487 fontName "Consolas"
1488 alignment "left"
1489 anchor "tl"
1490 borderDistance 6
1491 ]
1492 ]
1493
1494 node
1495 [
1496 id 39
1497 graphics
1498 [
1499 w 85.80000000000001
1500 h 26
1501 type "rectangle"
1502 fill "#FFFFFF"
1503 fill2 "#FFFFFF"
1504 outline "#000000"
1505 ]
1506 LabelGraphics
1507 [
1508 text "New Reals"
1509 outline "#000000"
1510 fill "#FFFFFF"
1511 fontSize 16
1512 fontName "Monospace"
1513 autoSizePolicy "node_width"
1514 anchor "t"
1515 borderDistance 0.0
1516 ]
1517 LabelGraphics
1518 [
1519 text "
1520 "
1521 fontSize 14
1522 fontName "Consolas"
1523 alignment "left"
1524 anchor "tl"
1525 borderDistance 6
1526 ]
1527 ]
1528
1529 node
1530 [
1531 id 40
1532 graphics
1533 [
1534 w 103.4
1535 h 26
1536 type "rectangle"
1537 fill "#FFFFFF"
1538 fill2 "#FFFFFF"
1539 outline "#000000"
1540 ]
1541 LabelGraphics
1542 [
1543 text "New Strings"
1544 outline "#000000"
1545 fill "#FFFFFF"
1546 fontSize 16
1547 fontName "Monospace"
1548 autoSizePolicy "node_width"
1549 anchor "t"
1550 borderDistance 0.0
1551 ]
1552 LabelGraphics
1553 [
1554 text "
1555 "
1556 fontSize 14
1557 fontName "Consolas"
1558 alignment "left"
1559 anchor "tl"
1560 borderDistance 6
1561 ]
1562 ]
1563
1564 node
1565 [
1566 id 41
1567 graphics
1568 [
1569 w 103.4
1570 h 26
1571 type "rectangle"
1572 fill "#FFFFFF"
1573 fill2 "#FFFFFF"
1574 outline "#000000"
1575 ]
1576 LabelGraphics
1577 [
1578 text "New Objects"
1579 outline "#000000"
1580 fill "#FFFFFF"
1581 fontSize 16
1582 fontName "Monospace"
1583 autoSizePolicy "node_width"
1584 anchor "t"
1585 borderDistance 0.0
1586 ]
1587 LabelGraphics
1588 [
1589 text "
1590 "
1591 fontSize 14
1592 fontName "Consolas"
1593 alignment "left"
1594 anchor "tl"
1595 borderDistance 6
1596 ]
1597 ]
1598 edge
1599 [
1600 source 0
1601 target 1
1602 graphics
1603 [
1604 fill "#000000"
1605 width 3
1606 targetArrow "standard"
1607 ]
1608 LabelGraphics
1609 [
1610 text "groundStationNetwork reference ConstellationMission"
1611 fontSize 14
1612 fontName "Consolas"
1613 configuration "AutoFlippingLabel"
1614 model "six_pos"
1615 position "thead"
1616 ]
1617 ]
1618 edge
1619 [
1620 source 0
1621 target 6
1622 graphics
1623 [
1624 fill "#000000"
1625 width 3
1626 targetArrow "standard"
1627 ]
1628 LabelGraphics
1629 [
1630 text "spacecraft reference ConstellationMission"
1631 fontSize 14
1632 fontName "Consolas"
1633 configuration "AutoFlippingLabel"
1634 model "six_pos"
1635 position "thead"
1636 ]
1637 ]
1638 edge
1639 [
1640 source 0
1641 target 10
1642 graphics
1643 [
1644 fill "#000000"
1645 width 3
1646 targetArrow "standard"
1647 ]
1648 LabelGraphics
1649 [
1650 text "spacecraft reference ConstellationMission"
1651 fontSize 14
1652 fontName "Consolas"
1653 configuration "AutoFlippingLabel"
1654 model "six_pos"
1655 position "thead"
1656 ]
1657 ]
1658 edge
1659 [
1660 source 0
1661 target 14
1662 graphics
1663 [
1664 fill "#000000"
1665 width 3
1666 targetArrow "standard"
1667 ]
1668 LabelGraphics
1669 [
1670 text "spacecraft reference ConstellationMission"
1671 fontSize 14
1672 fontName "Consolas"
1673 configuration "AutoFlippingLabel"
1674 model "six_pos"
1675 position "thead"
1676 ]
1677 ]
1678 edge
1679 [
1680 source 0
1681 target 18
1682 graphics
1683 [
1684 fill "#000000"
1685 width 3
1686 targetArrow "standard"
1687 ]
1688 LabelGraphics
1689 [
1690 text "spacecraft reference ConstellationMission"
1691 fontSize 14
1692 fontName "Consolas"
1693 configuration "AutoFlippingLabel"
1694 model "six_pos"
1695 position "thead"
1696 ]
1697 ]
1698 edge
1699 [
1700 source 0
1701 target 22
1702 graphics
1703 [
1704 fill "#000000"
1705 width 3
1706 targetArrow "standard"
1707 ]
1708 LabelGraphics
1709 [
1710 text "spacecraft reference ConstellationMission"
1711 fontSize 14
1712 fontName "Consolas"
1713 configuration "AutoFlippingLabel"
1714 model "six_pos"
1715 position "thead"
1716 ]
1717 ]
1718 edge
1719 [
1720 source 0
1721 target 26
1722 graphics
1723 [
1724 fill "#000000"
1725 width 3
1726 targetArrow "standard"
1727 ]
1728 LabelGraphics
1729 [
1730 text "spacecraft reference ConstellationMission"
1731 fontSize 14
1732 fontName "Consolas"
1733 configuration "AutoFlippingLabel"
1734 model "six_pos"
1735 position "thead"
1736 ]
1737 ]
1738 edge
1739 [
1740 source 0
1741 target 30
1742 graphics
1743 [
1744 fill "#000000"
1745 width 3
1746 targetArrow "standard"
1747 ]
1748 LabelGraphics
1749 [
1750 text "spacecraft reference ConstellationMission"
1751 fontSize 14
1752 fontName "Consolas"
1753 configuration "AutoFlippingLabel"
1754 model "six_pos"
1755 position "thead"
1756 ]
1757 ]
1758 edge
1759 [
1760 source 0
1761 target 34
1762 graphics
1763 [
1764 fill "#000000"
1765 width 3
1766 targetArrow "standard"
1767 ]
1768 LabelGraphics
1769 [
1770 text "spacecraft reference ConstellationMission"
1771 fontSize 14
1772 fontName "Consolas"
1773 configuration "AutoFlippingLabel"
1774 model "six_pos"
1775 position "thead"
1776 ]
1777 ]
1778 edge
1779 [
1780 source 1
1781 target 2
1782 graphics
1783 [
1784 fill "#000000"
1785 width 3
1786 targetArrow "standard"
1787 ]
1788 LabelGraphics
1789 [
1790 text "commSubsystem reference CommunicatingElement"
1791 fontSize 14
1792 fontName "Consolas"
1793 configuration "AutoFlippingLabel"
1794 model "six_pos"
1795 position "thead"
1796 ]
1797 ]
1798 edge
1799 [
1800 source 1
1801 target 3
1802 graphics
1803 [
1804 fill "#000000"
1805 width 3
1806 targetArrow "standard"
1807 ]
1808 LabelGraphics
1809 [
1810 text "commSubsystem reference CommunicatingElement"
1811 fontSize 14
1812 fontName "Consolas"
1813 configuration "AutoFlippingLabel"
1814 model "six_pos"
1815 position "thead"
1816 ]
1817 ]
1818 edge
1819 [
1820 source 6
1821 target 7
1822 graphics
1823 [
1824 fill "#000000"
1825 width 3
1826 targetArrow "standard"
1827 ]
1828 LabelGraphics
1829 [
1830 text "commSubsystem reference CommunicatingElement"
1831 fontSize 14
1832 fontName "Consolas"
1833 configuration "AutoFlippingLabel"
1834 model "six_pos"
1835 position "thead"
1836 ]
1837 ]
1838 edge
1839 [
1840 source 6
1841 target 8
1842 graphics
1843 [
1844 fill "#000000"
1845 width 3
1846 targetArrow "standard"
1847 ]
1848 LabelGraphics
1849 [
1850 text "commSubsystem reference CommunicatingElement"
1851 fontSize 14
1852 fontName "Consolas"
1853 configuration "AutoFlippingLabel"
1854 model "six_pos"
1855 position "thead"
1856 ]
1857 ]
1858 edge
1859 [
1860 source 10
1861 target 11
1862 graphics
1863 [
1864 fill "#000000"
1865 width 3
1866 targetArrow "standard"
1867 ]
1868 LabelGraphics
1869 [
1870 text "commSubsystem reference CommunicatingElement"
1871 fontSize 14
1872 fontName "Consolas"
1873 configuration "AutoFlippingLabel"
1874 model "six_pos"
1875 position "thead"
1876 ]
1877 ]
1878 edge
1879 [
1880 source 10
1881 target 12
1882 graphics
1883 [
1884 fill "#000000"
1885 width 3
1886 targetArrow "standard"
1887 ]
1888 LabelGraphics
1889 [
1890 text "commSubsystem reference CommunicatingElement"
1891 fontSize 14
1892 fontName "Consolas"
1893 configuration "AutoFlippingLabel"
1894 model "six_pos"
1895 position "thead"
1896 ]
1897 ]
1898 edge
1899 [
1900 source 14
1901 target 15
1902 graphics
1903 [
1904 fill "#000000"
1905 width 3
1906 targetArrow "standard"
1907 ]
1908 LabelGraphics
1909 [
1910 text "commSubsystem reference CommunicatingElement"
1911 fontSize 14
1912 fontName "Consolas"
1913 configuration "AutoFlippingLabel"
1914 model "six_pos"
1915 position "thead"
1916 ]
1917 ]
1918 edge
1919 [
1920 source 14
1921 target 17
1922 graphics
1923 [
1924 fill "#000000"
1925 width 3
1926 targetArrow "standard"
1927 ]
1928 LabelGraphics
1929 [
1930 text "commSubsystem reference CommunicatingElement"
1931 fontSize 14
1932 fontName "Consolas"
1933 configuration "AutoFlippingLabel"
1934 model "six_pos"
1935 position "thead"
1936 ]
1937 ]
1938 edge
1939 [
1940 source 18
1941 target 19
1942 graphics
1943 [
1944 fill "#000000"
1945 width 3
1946 targetArrow "standard"
1947 ]
1948 LabelGraphics
1949 [
1950 text "commSubsystem reference CommunicatingElement"
1951 fontSize 14
1952 fontName "Consolas"
1953 configuration "AutoFlippingLabel"
1954 model "six_pos"
1955 position "thead"
1956 ]
1957 ]
1958 edge
1959 [
1960 source 18
1961 target 21
1962 graphics
1963 [
1964 fill "#000000"
1965 width 3
1966 targetArrow "standard"
1967 ]
1968 LabelGraphics
1969 [
1970 text "commSubsystem reference CommunicatingElement"
1971 fontSize 14
1972 fontName "Consolas"
1973 configuration "AutoFlippingLabel"
1974 model "six_pos"
1975 position "thead"
1976 ]
1977 ]
1978 edge
1979 [
1980 source 22
1981 target 24
1982 graphics
1983 [
1984 fill "#000000"
1985 width 3
1986 targetArrow "standard"
1987 ]
1988 LabelGraphics
1989 [
1990 text "commSubsystem reference CommunicatingElement"
1991 fontSize 14
1992 fontName "Consolas"
1993 configuration "AutoFlippingLabel"
1994 model "six_pos"
1995 position "thead"
1996 ]
1997 ]
1998 edge
1999 [
2000 source 22
2001 target 25
2002 graphics
2003 [
2004 fill "#000000"
2005 width 3
2006 targetArrow "standard"
2007 ]
2008 LabelGraphics
2009 [
2010 text "commSubsystem reference CommunicatingElement"
2011 fontSize 14
2012 fontName "Consolas"
2013 configuration "AutoFlippingLabel"
2014 model "six_pos"
2015 position "thead"
2016 ]
2017 ]
2018 edge
2019 [
2020 source 26
2021 target 28
2022 graphics
2023 [
2024 fill "#000000"
2025 width 3
2026 targetArrow "standard"
2027 ]
2028 LabelGraphics
2029 [
2030 text "commSubsystem reference CommunicatingElement"
2031 fontSize 14
2032 fontName "Consolas"
2033 configuration "AutoFlippingLabel"
2034 model "six_pos"
2035 position "thead"
2036 ]
2037 ]
2038 edge
2039 [
2040 source 26
2041 target 29
2042 graphics
2043 [
2044 fill "#000000"
2045 width 3
2046 targetArrow "standard"
2047 ]
2048 LabelGraphics
2049 [
2050 text "commSubsystem reference CommunicatingElement"
2051 fontSize 14
2052 fontName "Consolas"
2053 configuration "AutoFlippingLabel"
2054 model "six_pos"
2055 position "thead"
2056 ]
2057 ]
2058 edge
2059 [
2060 source 30
2061 target 31
2062 graphics
2063 [
2064 fill "#000000"
2065 width 3
2066 targetArrow "standard"
2067 ]
2068 LabelGraphics
2069 [
2070 text "commSubsystem reference CommunicatingElement"
2071 fontSize 14
2072 fontName "Consolas"
2073 configuration "AutoFlippingLabel"
2074 model "six_pos"
2075 position "thead"
2076 ]
2077 ]
2078 edge
2079 [
2080 source 30
2081 target 33
2082 graphics
2083 [
2084 fill "#000000"
2085 width 3
2086 targetArrow "standard"
2087 ]
2088 LabelGraphics
2089 [
2090 text "commSubsystem reference CommunicatingElement"
2091 fontSize 14
2092 fontName "Consolas"
2093 configuration "AutoFlippingLabel"
2094 model "six_pos"
2095 position "thead"
2096 ]
2097 ]
2098 edge
2099 [
2100 source 34
2101 target 35
2102 graphics
2103 [
2104 fill "#000000"
2105 width 3
2106 targetArrow "standard"
2107 ]
2108 LabelGraphics
2109 [
2110 text "commSubsystem reference CommunicatingElement"
2111 fontSize 14
2112 fontName "Consolas"
2113 configuration "AutoFlippingLabel"
2114 model "six_pos"
2115 position "thead"
2116 ]
2117 ]
2118 edge
2119 [
2120 source 34
2121 target 37
2122 graphics
2123 [
2124 fill "#000000"
2125 width 3
2126 targetArrow "standard"
2127 ]
2128 LabelGraphics
2129 [
2130 text "commSubsystem reference CommunicatingElement"
2131 fontSize 14
2132 fontName "Consolas"
2133 configuration "AutoFlippingLabel"
2134 model "six_pos"
2135 position "thead"
2136 ]
2137 ]
2138 edge
2139 [
2140 source 6
2141 target 9
2142 graphics
2143 [
2144 fill "#000000"
2145 width 3
2146 targetArrow "standard"
2147 ]
2148 LabelGraphics
2149 [
2150 text "payload reference Spacecraft"
2151 fontSize 14
2152 fontName "Consolas"
2153 configuration "AutoFlippingLabel"
2154 model "six_pos"
2155 position "thead"
2156 ]
2157 ]
2158 edge
2159 [
2160 source 10
2161 target 13
2162 graphics
2163 [
2164 fill "#000000"
2165 width 3
2166 targetArrow "standard"
2167 ]
2168 LabelGraphics
2169 [
2170 text "payload reference Spacecraft"
2171 fontSize 14
2172 fontName "Consolas"
2173 configuration "AutoFlippingLabel"
2174 model "six_pos"
2175 position "thead"
2176 ]
2177 ]
2178 edge
2179 [
2180 source 14
2181 target 16
2182 graphics
2183 [
2184 fill "#000000"
2185 width 3
2186 targetArrow "standard"
2187 ]
2188 LabelGraphics
2189 [
2190 text "payload reference Spacecraft"
2191 fontSize 14
2192 fontName "Consolas"
2193 configuration "AutoFlippingLabel"
2194 model "six_pos"
2195 position "thead"
2196 ]
2197 ]
2198 edge
2199 [
2200 source 18
2201 target 20
2202 graphics
2203 [
2204 fill "#000000"
2205 width 3
2206 targetArrow "standard"
2207 ]
2208 LabelGraphics
2209 [
2210 text "payload reference Spacecraft"
2211 fontSize 14
2212 fontName "Consolas"
2213 configuration "AutoFlippingLabel"
2214 model "six_pos"
2215 position "thead"
2216 ]
2217 ]
2218 edge
2219 [
2220 source 22
2221 target 23
2222 graphics
2223 [
2224 fill "#000000"
2225 width 3
2226 targetArrow "standard"
2227 ]
2228 LabelGraphics
2229 [
2230 text "payload reference Spacecraft"
2231 fontSize 14
2232 fontName "Consolas"
2233 configuration "AutoFlippingLabel"
2234 model "six_pos"
2235 position "thead"
2236 ]
2237 ]
2238 edge
2239 [
2240 source 26
2241 target 27
2242 graphics
2243 [
2244 fill "#000000"
2245 width 3
2246 targetArrow "standard"
2247 ]
2248 LabelGraphics
2249 [
2250 text "payload reference Spacecraft"
2251 fontSize 14
2252 fontName "Consolas"
2253 configuration "AutoFlippingLabel"
2254 model "six_pos"
2255 position "thead"
2256 ]
2257 ]
2258 edge
2259 [
2260 source 30
2261 target 32
2262 graphics
2263 [
2264 fill "#000000"
2265 width 3
2266 targetArrow "standard"
2267 ]
2268 LabelGraphics
2269 [
2270 text "payload reference Spacecraft"
2271 fontSize 14
2272 fontName "Consolas"
2273 configuration "AutoFlippingLabel"
2274 model "six_pos"
2275 position "thead"
2276 ]
2277 ]
2278 edge
2279 [
2280 source 34
2281 target 36
2282 graphics
2283 [
2284 fill "#000000"
2285 width 3
2286 targetArrow "standard"
2287 ]
2288 LabelGraphics
2289 [
2290 text "payload reference Spacecraft"
2291 fontSize 14
2292 fontName "Consolas"
2293 configuration "AutoFlippingLabel"
2294 model "six_pos"
2295 position "thead"
2296 ]
2297 ]
2298 edge
2299 [
2300 source 11
2301 target 2
2302 graphics
2303 [
2304 fill "#000000"
2305 targetArrow "standard"
2306 ]
2307 LabelGraphics
2308 [
2309 text "target reference CommSubsystem"
2310 fontSize 14
2311 fontName "Consolas"
2312 configuration "AutoFlippingLabel"
2313 model "six_pos"
2314 position "thead"
2315 ]
2316 ]
2317 edge
2318 [
2319 source 15
2320 target 2
2321 graphics
2322 [
2323 fill "#000000"
2324 targetArrow "standard"
2325 ]
2326 LabelGraphics
2327 [
2328 text "target reference CommSubsystem"
2329 fontSize 14
2330 fontName "Consolas"
2331 configuration "AutoFlippingLabel"
2332 model "six_pos"
2333 position "thead"
2334 ]
2335 ]
2336 edge
2337 [
2338 source 8
2339 target 17
2340 graphics
2341 [
2342 fill "#000000"
2343 targetArrow "standard"
2344 ]
2345 LabelGraphics
2346 [
2347 text "target reference CommSubsystem"
2348 fontSize 14
2349 fontName "Consolas"
2350 configuration "AutoFlippingLabel"
2351 model "six_pos"
2352 position "thead"
2353 ]
2354 ]
2355 edge
2356 [
2357 source 19
2358 target 8
2359 graphics
2360 [
2361 fill "#000000"
2362 targetArrow "standard"
2363 ]
2364 LabelGraphics
2365 [
2366 text "target reference CommSubsystem"
2367 fontSize 14
2368 fontName "Consolas"
2369 configuration "AutoFlippingLabel"
2370 model "six_pos"
2371 position "thead"
2372 ]
2373 ]
2374 edge
2375 [
2376 source 24
2377 target 8
2378 graphics
2379 [
2380 fill "#000000"
2381 targetArrow "standard"
2382 ]
2383 LabelGraphics
2384 [
2385 text "target reference CommSubsystem"
2386 fontSize 14
2387 fontName "Consolas"
2388 configuration "AutoFlippingLabel"
2389 model "six_pos"
2390 position "thead"
2391 ]
2392 ]
2393 edge
2394 [
2395 source 28
2396 target 2
2397 graphics
2398 [
2399 fill "#000000"
2400 targetArrow "standard"
2401 ]
2402 LabelGraphics
2403 [
2404 text "target reference CommSubsystem"
2405 fontSize 14
2406 fontName "Consolas"
2407 configuration "AutoFlippingLabel"
2408 model "six_pos"
2409 position "thead"
2410 ]
2411 ]
2412 edge
2413 [
2414 source 31
2415 target 12
2416 graphics
2417 [
2418 fill "#000000"
2419 targetArrow "standard"
2420 ]
2421 LabelGraphics
2422 [
2423 text "target reference CommSubsystem"
2424 fontSize 14
2425 fontName "Consolas"
2426 configuration "AutoFlippingLabel"
2427 model "six_pos"
2428 position "thead"
2429 ]
2430 ]
2431 edge
2432 [
2433 source 35
2434 target 3
2435 graphics
2436 [
2437 fill "#000000"
2438 targetArrow "standard"
2439 ]
2440 LabelGraphics
2441 [
2442 text "target reference CommSubsystem"
2443 fontSize 14
2444 fontName "Consolas"
2445 configuration "AutoFlippingLabel"
2446 model "six_pos"
2447 position "thead"
2448 ]
2449 ]
2450]
2451
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run2/2_1.png b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run2/2_1.png
deleted file mode 100644
index 5a090707..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run2/2_1.png
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run2/2_1.xmi b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run2/2_1.xmi
deleted file mode 100644
index fe90db85..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run2/2_1.xmi
+++ /dev/null
@@ -1,47 +0,0 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
5 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:CubeSat6U">
8 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
9 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
10 <payload xsi:type="satellite:InterferometryPayload"/>
11 </spacecraft>
12 <spacecraft xsi:type="satellite:SmallSat">
13 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
14 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0"/>
15 <payload xsi:type="satellite:InterferometryPayload"/>
16 </spacecraft>
17 <spacecraft xsi:type="satellite:CubeSat6U">
18 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
19 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
20 <payload xsi:type="satellite:InterferometryPayload"/>
21 </spacecraft>
22 <spacecraft xsi:type="satellite:SmallSat">
23 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.2/@commSubsystem.1"/>
24 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
25 <payload xsi:type="satellite:InterferometryPayload"/>
26 </spacecraft>
27 <spacecraft xsi:type="satellite:CubeSat3U">
28 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
29 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.3/@commSubsystem.0"/>
30 <payload xsi:type="satellite:InterferometryPayload"/>
31 </spacecraft>
32 <spacecraft xsi:type="satellite:CubeSat3U">
33 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.3/@commSubsystem.0"/>
34 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
35 <payload xsi:type="satellite:InterferometryPayload"/>
36 </spacecraft>
37 <spacecraft xsi:type="satellite:SmallSat">
38 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
39 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
40 <payload xsi:type="satellite:InterferometryPayload"/>
41 </spacecraft>
42 <spacecraft xsi:type="satellite:SmallSat">
43 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
44 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@spacecraft.6/@commSubsystem.1"/>
45 <payload xsi:type="satellite:InterferometryPayload"/>
46 </spacecraft>
47</satellite:InterferometryMission>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run3/3_1.gml b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run3/3_1.gml
deleted file mode 100644
index 8e761fef..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run3/3_1.gml
+++ /dev/null
@@ -1,2451 +0,0 @@
1graph
2[
3 node
4 [
5 id 0
6 graphics
7 [
8 w 315.70000000000005
9 h 82
10 type "rectangle"
11 fill "#FFFFFF"
12 fill2 "#FFFFFF"
13 outline "#000000"
14 ]
15 LabelGraphics
16 [
17 text "o 1"
18 outline "#000000"
19 fill "#FFFFFF"
20 fontSize 16
21 fontName "Monospace"
22 autoSizePolicy "node_width"
23 anchor "t"
24 borderDistance 0.0
25 ]
26 LabelGraphics
27 [
28 text "
29 ConstellationMission class DefinedPart
30 InterferometryMission class DefinedPart
31 ConstellationMission class
32 InterferometryMission class
33 "
34 fontSize 14
35 fontName "Consolas"
36 alignment "left"
37 anchor "tl"
38 borderDistance 6
39 ]
40 ]
41
42 node
43 [
44 id 1
45 graphics
46 [
47 w 308.0
48 h 82
49 type "rectangle"
50 fill "#FFFFFF"
51 fill2 "#FFFFFF"
52 outline "#000000"
53 ]
54 LabelGraphics
55 [
56 text "o 2"
57 outline "#000000"
58 fill "#FFFFFF"
59 fontSize 16
60 fontName "Monospace"
61 autoSizePolicy "node_width"
62 anchor "t"
63 borderDistance 0.0
64 ]
65 LabelGraphics
66 [
67 text "
68 CommunicatingElement class DefinedPart
69 GroundStationNetwork class DefinedPart
70 CommunicatingElement class
71 GroundStationNetwork class
72 "
73 fontSize 14
74 fontName "Consolas"
75 alignment "left"
76 anchor "tl"
77 borderDistance 6
78 ]
79 ]
80
81 node
82 [
83 id 2
84 graphics
85 [
86 w 261.8
87 h 82
88 type "rectangle"
89 fill "#FFFFFF"
90 fill2 "#FFFFFF"
91 outline "#000000"
92 ]
93 LabelGraphics
94 [
95 text "o 3"
96 outline "#000000"
97 fill "#FFFFFF"
98 fontSize 16
99 fontName "Monospace"
100 autoSizePolicy "node_width"
101 anchor "t"
102 borderDistance 0.0
103 ]
104 LabelGraphics
105 [
106 text "
107 CommSubsystem class DefinedPart
108 XCommSubsystem class DefinedPart
109 CommSubsystem class
110 XCommSubsystem class
111 "
112 fontSize 14
113 fontName "Consolas"
114 alignment "left"
115 anchor "tl"
116 borderDistance 6
117 ]
118 ]
119
120 node
121 [
122 id 3
123 graphics
124 [
125 w 269.5
126 h 82
127 type "rectangle"
128 fill "#FFFFFF"
129 fill2 "#FFFFFF"
130 outline "#000000"
131 ]
132 LabelGraphics
133 [
134 text "o 4"
135 outline "#000000"
136 fill "#FFFFFF"
137 fontSize 16
138 fontName "Monospace"
139 autoSizePolicy "node_width"
140 anchor "t"
141 borderDistance 0.0
142 ]
143 LabelGraphics
144 [
145 text "
146 CommSubsystem class DefinedPart
147 KaCommSubsystem class DefinedPart
148 CommSubsystem class
149 KaCommSubsystem class
150 "
151 fontSize 14
152 fontName "Consolas"
153 alignment "left"
154 anchor "tl"
155 borderDistance 6
156 ]
157 ]
158
159 node
160 [
161 id 4
162 graphics
163 [
164 w 41.800000000000004
165 h 26
166 type "rectangle"
167 fill "#FFFFFF"
168 fill2 "#FFFFFF"
169 outline "#000000"
170 ]
171 LabelGraphics
172 [
173 text "true"
174 outline "#000000"
175 fill "#FFFFFF"
176 fontSize 16
177 fontName "Monospace"
178 autoSizePolicy "node_width"
179 anchor "t"
180 borderDistance 0.0
181 ]
182 LabelGraphics
183 [
184 text "
185 "
186 fontSize 14
187 fontName "Consolas"
188 alignment "left"
189 anchor "tl"
190 borderDistance 6
191 ]
192 ]
193
194 node
195 [
196 id 5
197 graphics
198 [
199 w 50.6
200 h 26
201 type "rectangle"
202 fill "#FFFFFF"
203 fill2 "#FFFFFF"
204 outline "#000000"
205 ]
206 LabelGraphics
207 [
208 text "false"
209 outline "#000000"
210 fill "#FFFFFF"
211 fontSize 16
212 fontName "Monospace"
213 autoSizePolicy "node_width"
214 anchor "t"
215 borderDistance 0.0
216 ]
217 LabelGraphics
218 [
219 text "
220 "
221 fontSize 14
222 fontName "Consolas"
223 alignment "left"
224 anchor "tl"
225 borderDistance 6
226 ]
227 ]
228
229 node
230 [
231 id 6
232 graphics
233 [
234 w 323.40000000000003
235 h 96
236 type "rectangle"
237 fill "#FFFFFF"
238 fill2 "#FFFFFF"
239 outline "#000000"
240 ]
241 LabelGraphics
242 [
243 text "null"
244 outline "#000000"
245 fill "#FFFFFF"
246 fontSize 16
247 fontName "Monospace"
248 autoSizePolicy "node_width"
249 anchor "t"
250 borderDistance 0.0
251 ]
252 LabelGraphics
253 [
254 text "
255 CommunicatingElement class
256 Spacecraft class
257 CubeSat3U class
258 CubeSat class
259 CommunicatingElement class UndefinedPart
260 "
261 fontSize 14
262 fontName "Consolas"
263 alignment "left"
264 anchor "tl"
265 borderDistance 6
266 ]
267 ]
268
269 node
270 [
271 id 7
272 graphics
273 [
274 w 277.20000000000005
275 h 82
276 type "rectangle"
277 fill "#FFFFFF"
278 fill2 "#FFFFFF"
279 outline "#000000"
280 ]
281 LabelGraphics
282 [
283 text "null"
284 outline "#000000"
285 fill "#FFFFFF"
286 fontSize 16
287 fontName "Monospace"
288 autoSizePolicy "node_width"
289 anchor "t"
290 borderDistance 0.0
291 ]
292 LabelGraphics
293 [
294 text "
295 CommSubsystem class
296 XCommSubsystem class
297 CommSubsystem class UndefinedPart
298 XCommSubsystem class UndefinedPart
299 "
300 fontSize 14
301 fontName "Consolas"
302 alignment "left"
303 anchor "tl"
304 borderDistance 6
305 ]
306 ]
307
308 node
309 [
310 id 8
311 graphics
312 [
313 w 277.20000000000005
314 h 82
315 type "rectangle"
316 fill "#FFFFFF"
317 fill2 "#FFFFFF"
318 outline "#000000"
319 ]
320 LabelGraphics
321 [
322 text "null"
323 outline "#000000"
324 fill "#FFFFFF"
325 fontSize 16
326 fontName "Monospace"
327 autoSizePolicy "node_width"
328 anchor "t"
329 borderDistance 0.0
330 ]
331 LabelGraphics
332 [
333 text "
334 CommSubsystem class
335 XCommSubsystem class
336 CommSubsystem class UndefinedPart
337 XCommSubsystem class UndefinedPart
338 "
339 fontSize 14
340 fontName "Consolas"
341 alignment "left"
342 anchor "tl"
343 borderDistance 6
344 ]
345 ]
346
347 node
348 [
349 id 9
350 graphics
351 [
352 w 223.3
353 h 54
354 type "rectangle"
355 fill "#FFFFFF"
356 fill2 "#FFFFFF"
357 outline "#000000"
358 ]
359 LabelGraphics
360 [
361 text "null"
362 outline "#000000"
363 fill "#FFFFFF"
364 fontSize 16
365 fontName "Monospace"
366 autoSizePolicy "node_width"
367 anchor "t"
368 borderDistance 0.0
369 ]
370 LabelGraphics
371 [
372 text "
373 Payload class
374 InterferometryPayload class
375 "
376 fontSize 14
377 fontName "Consolas"
378 alignment "left"
379 anchor "tl"
380 borderDistance 6
381 ]
382 ]
383
384 node
385 [
386 id 10
387 graphics
388 [
389 w 323.40000000000003
390 h 96
391 type "rectangle"
392 fill "#FFFFFF"
393 fill2 "#FFFFFF"
394 outline "#000000"
395 ]
396 LabelGraphics
397 [
398 text "null"
399 outline "#000000"
400 fill "#FFFFFF"
401 fontSize 16
402 fontName "Monospace"
403 autoSizePolicy "node_width"
404 anchor "t"
405 borderDistance 0.0
406 ]
407 LabelGraphics
408 [
409 text "
410 CommunicatingElement class
411 Spacecraft class
412 CubeSat6U class
413 CubeSat class
414 CommunicatingElement class UndefinedPart
415 "
416 fontSize 14
417 fontName "Consolas"
418 alignment "left"
419 anchor "tl"
420 borderDistance 6
421 ]
422 ]
423
424 node
425 [
426 id 11
427 graphics
428 [
429 w 269.5
430 h 68
431 type "rectangle"
432 fill "#FFFFFF"
433 fill2 "#FFFFFF"
434 outline "#000000"
435 ]
436 LabelGraphics
437 [
438 text "null"
439 outline "#000000"
440 fill "#FFFFFF"
441 fontSize 16
442 fontName "Monospace"
443 autoSizePolicy "node_width"
444 anchor "t"
445 borderDistance 0.0
446 ]
447 LabelGraphics
448 [
449 text "
450 CommSubsystem class
451 UHFCommSubsystem class
452 CommSubsystem class UndefinedPart
453 "
454 fontSize 14
455 fontName "Consolas"
456 alignment "left"
457 anchor "tl"
458 borderDistance 6
459 ]
460 ]
461
462 node
463 [
464 id 12
465 graphics
466 [
467 w 223.3
468 h 54
469 type "rectangle"
470 fill "#FFFFFF"
471 fill2 "#FFFFFF"
472 outline "#000000"
473 ]
474 LabelGraphics
475 [
476 text "null"
477 outline "#000000"
478 fill "#FFFFFF"
479 fontSize 16
480 fontName "Monospace"
481 autoSizePolicy "node_width"
482 anchor "t"
483 borderDistance 0.0
484 ]
485 LabelGraphics
486 [
487 text "
488 Payload class
489 InterferometryPayload class
490 "
491 fontSize 14
492 fontName "Consolas"
493 alignment "left"
494 anchor "tl"
495 borderDistance 6
496 ]
497 ]
498
499 node
500 [
501 id 13
502 graphics
503 [
504 w 277.20000000000005
505 h 82
506 type "rectangle"
507 fill "#FFFFFF"
508 fill2 "#FFFFFF"
509 outline "#000000"
510 ]
511 LabelGraphics
512 [
513 text "null"
514 outline "#000000"
515 fill "#FFFFFF"
516 fontSize 16
517 fontName "Monospace"
518 autoSizePolicy "node_width"
519 anchor "t"
520 borderDistance 0.0
521 ]
522 LabelGraphics
523 [
524 text "
525 CommSubsystem class
526 XCommSubsystem class
527 CommSubsystem class UndefinedPart
528 XCommSubsystem class UndefinedPart
529 "
530 fontSize 14
531 fontName "Consolas"
532 alignment "left"
533 anchor "tl"
534 borderDistance 6
535 ]
536 ]
537
538 node
539 [
540 id 14
541 graphics
542 [
543 w 323.40000000000003
544 h 96
545 type "rectangle"
546 fill "#FFFFFF"
547 fill2 "#FFFFFF"
548 outline "#000000"
549 ]
550 LabelGraphics
551 [
552 text "null"
553 outline "#000000"
554 fill "#FFFFFF"
555 fontSize 16
556 fontName "Monospace"
557 autoSizePolicy "node_width"
558 anchor "t"
559 borderDistance 0.0
560 ]
561 LabelGraphics
562 [
563 text "
564 CommunicatingElement class
565 Spacecraft class
566 CubeSat3U class
567 CubeSat class
568 CommunicatingElement class UndefinedPart
569 "
570 fontSize 14
571 fontName "Consolas"
572 alignment "left"
573 anchor "tl"
574 borderDistance 6
575 ]
576 ]
577
578 node
579 [
580 id 15
581 graphics
582 [
583 w 269.5
584 h 68
585 type "rectangle"
586 fill "#FFFFFF"
587 fill2 "#FFFFFF"
588 outline "#000000"
589 ]
590 LabelGraphics
591 [
592 text "null"
593 outline "#000000"
594 fill "#FFFFFF"
595 fontSize 16
596 fontName "Monospace"
597 autoSizePolicy "node_width"
598 anchor "t"
599 borderDistance 0.0
600 ]
601 LabelGraphics
602 [
603 text "
604 CommSubsystem class
605 UHFCommSubsystem class
606 CommSubsystem class UndefinedPart
607 "
608 fontSize 14
609 fontName "Consolas"
610 alignment "left"
611 anchor "tl"
612 borderDistance 6
613 ]
614 ]
615
616 node
617 [
618 id 16
619 graphics
620 [
621 w 277.20000000000005
622 h 82
623 type "rectangle"
624 fill "#FFFFFF"
625 fill2 "#FFFFFF"
626 outline "#000000"
627 ]
628 LabelGraphics
629 [
630 text "null"
631 outline "#000000"
632 fill "#FFFFFF"
633 fontSize 16
634 fontName "Monospace"
635 autoSizePolicy "node_width"
636 anchor "t"
637 borderDistance 0.0
638 ]
639 LabelGraphics
640 [
641 text "
642 CommSubsystem class
643 XCommSubsystem class
644 CommSubsystem class UndefinedPart
645 XCommSubsystem class UndefinedPart
646 "
647 fontSize 14
648 fontName "Consolas"
649 alignment "left"
650 anchor "tl"
651 borderDistance 6
652 ]
653 ]
654
655 node
656 [
657 id 17
658 graphics
659 [
660 w 223.3
661 h 54
662 type "rectangle"
663 fill "#FFFFFF"
664 fill2 "#FFFFFF"
665 outline "#000000"
666 ]
667 LabelGraphics
668 [
669 text "null"
670 outline "#000000"
671 fill "#FFFFFF"
672 fontSize 16
673 fontName "Monospace"
674 autoSizePolicy "node_width"
675 anchor "t"
676 borderDistance 0.0
677 ]
678 LabelGraphics
679 [
680 text "
681 Payload class
682 InterferometryPayload class
683 "
684 fontSize 14
685 fontName "Consolas"
686 alignment "left"
687 anchor "tl"
688 borderDistance 6
689 ]
690 ]
691
692 node
693 [
694 id 18
695 graphics
696 [
697 w 323.40000000000003
698 h 82
699 type "rectangle"
700 fill "#FFFFFF"
701 fill2 "#FFFFFF"
702 outline "#000000"
703 ]
704 LabelGraphics
705 [
706 text "null"
707 outline "#000000"
708 fill "#FFFFFF"
709 fontSize 16
710 fontName "Monospace"
711 autoSizePolicy "node_width"
712 anchor "t"
713 borderDistance 0.0
714 ]
715 LabelGraphics
716 [
717 text "
718 CommunicatingElement class
719 Spacecraft class
720 SmallSat class
721 CommunicatingElement class UndefinedPart
722 "
723 fontSize 14
724 fontName "Consolas"
725 alignment "left"
726 anchor "tl"
727 borderDistance 6
728 ]
729 ]
730
731 node
732 [
733 id 19
734 graphics
735 [
736 w 277.20000000000005
737 h 82
738 type "rectangle"
739 fill "#FFFFFF"
740 fill2 "#FFFFFF"
741 outline "#000000"
742 ]
743 LabelGraphics
744 [
745 text "null"
746 outline "#000000"
747 fill "#FFFFFF"
748 fontSize 16
749 fontName "Monospace"
750 autoSizePolicy "node_width"
751 anchor "t"
752 borderDistance 0.0
753 ]
754 LabelGraphics
755 [
756 text "
757 CommSubsystem class
758 XCommSubsystem class
759 CommSubsystem class UndefinedPart
760 XCommSubsystem class UndefinedPart
761 "
762 fontSize 14
763 fontName "Consolas"
764 alignment "left"
765 anchor "tl"
766 borderDistance 6
767 ]
768 ]
769
770 node
771 [
772 id 20
773 graphics
774 [
775 w 223.3
776 h 54
777 type "rectangle"
778 fill "#FFFFFF"
779 fill2 "#FFFFFF"
780 outline "#000000"
781 ]
782 LabelGraphics
783 [
784 text "null"
785 outline "#000000"
786 fill "#FFFFFF"
787 fontSize 16
788 fontName "Monospace"
789 autoSizePolicy "node_width"
790 anchor "t"
791 borderDistance 0.0
792 ]
793 LabelGraphics
794 [
795 text "
796 Payload class
797 InterferometryPayload class
798 "
799 fontSize 14
800 fontName "Consolas"
801 alignment "left"
802 anchor "tl"
803 borderDistance 6
804 ]
805 ]
806
807 node
808 [
809 id 21
810 graphics
811 [
812 w 269.5
813 h 68
814 type "rectangle"
815 fill "#FFFFFF"
816 fill2 "#FFFFFF"
817 outline "#000000"
818 ]
819 LabelGraphics
820 [
821 text "null"
822 outline "#000000"
823 fill "#FFFFFF"
824 fontSize 16
825 fontName "Monospace"
826 autoSizePolicy "node_width"
827 anchor "t"
828 borderDistance 0.0
829 ]
830 LabelGraphics
831 [
832 text "
833 CommSubsystem class
834 UHFCommSubsystem class
835 CommSubsystem class UndefinedPart
836 "
837 fontSize 14
838 fontName "Consolas"
839 alignment "left"
840 anchor "tl"
841 borderDistance 6
842 ]
843 ]
844
845 node
846 [
847 id 22
848 graphics
849 [
850 w 323.40000000000003
851 h 96
852 type "rectangle"
853 fill "#FFFFFF"
854 fill2 "#FFFFFF"
855 outline "#000000"
856 ]
857 LabelGraphics
858 [
859 text "null"
860 outline "#000000"
861 fill "#FFFFFF"
862 fontSize 16
863 fontName "Monospace"
864 autoSizePolicy "node_width"
865 anchor "t"
866 borderDistance 0.0
867 ]
868 LabelGraphics
869 [
870 text "
871 CommunicatingElement class
872 Spacecraft class
873 CubeSat3U class
874 CubeSat class
875 CommunicatingElement class UndefinedPart
876 "
877 fontSize 14
878 fontName "Consolas"
879 alignment "left"
880 anchor "tl"
881 borderDistance 6
882 ]
883 ]
884
885 node
886 [
887 id 23
888 graphics
889 [
890 w 223.3
891 h 54
892 type "rectangle"
893 fill "#FFFFFF"
894 fill2 "#FFFFFF"
895 outline "#000000"
896 ]
897 LabelGraphics
898 [
899 text "null"
900 outline "#000000"
901 fill "#FFFFFF"
902 fontSize 16
903 fontName "Monospace"
904 autoSizePolicy "node_width"
905 anchor "t"
906 borderDistance 0.0
907 ]
908 LabelGraphics
909 [
910 text "
911 Payload class
912 InterferometryPayload class
913 "
914 fontSize 14
915 fontName "Consolas"
916 alignment "left"
917 anchor "tl"
918 borderDistance 6
919 ]
920 ]
921
922 node
923 [
924 id 24
925 graphics
926 [
927 w 277.20000000000005
928 h 82
929 type "rectangle"
930 fill "#FFFFFF"
931 fill2 "#FFFFFF"
932 outline "#000000"
933 ]
934 LabelGraphics
935 [
936 text "null"
937 outline "#000000"
938 fill "#FFFFFF"
939 fontSize 16
940 fontName "Monospace"
941 autoSizePolicy "node_width"
942 anchor "t"
943 borderDistance 0.0
944 ]
945 LabelGraphics
946 [
947 text "
948 CommSubsystem class
949 XCommSubsystem class
950 CommSubsystem class UndefinedPart
951 XCommSubsystem class UndefinedPart
952 "
953 fontSize 14
954 fontName "Consolas"
955 alignment "left"
956 anchor "tl"
957 borderDistance 6
958 ]
959 ]
960
961 node
962 [
963 id 25
964 graphics
965 [
966 w 269.5
967 h 68
968 type "rectangle"
969 fill "#FFFFFF"
970 fill2 "#FFFFFF"
971 outline "#000000"
972 ]
973 LabelGraphics
974 [
975 text "null"
976 outline "#000000"
977 fill "#FFFFFF"
978 fontSize 16
979 fontName "Monospace"
980 autoSizePolicy "node_width"
981 anchor "t"
982 borderDistance 0.0
983 ]
984 LabelGraphics
985 [
986 text "
987 CommSubsystem class
988 UHFCommSubsystem class
989 CommSubsystem class UndefinedPart
990 "
991 fontSize 14
992 fontName "Consolas"
993 alignment "left"
994 anchor "tl"
995 borderDistance 6
996 ]
997 ]
998
999 node
1000 [
1001 id 26
1002 graphics
1003 [
1004 w 323.40000000000003
1005 h 82
1006 type "rectangle"
1007 fill "#FFFFFF"
1008 fill2 "#FFFFFF"
1009 outline "#000000"
1010 ]
1011 LabelGraphics
1012 [
1013 text "null"
1014 outline "#000000"
1015 fill "#FFFFFF"
1016 fontSize 16
1017 fontName "Monospace"
1018 autoSizePolicy "node_width"
1019 anchor "t"
1020 borderDistance 0.0
1021 ]
1022 LabelGraphics
1023 [
1024 text "
1025 CommunicatingElement class
1026 Spacecraft class
1027 SmallSat class
1028 CommunicatingElement class UndefinedPart
1029 "
1030 fontSize 14
1031 fontName "Consolas"
1032 alignment "left"
1033 anchor "tl"
1034 borderDistance 6
1035 ]
1036 ]
1037
1038 node
1039 [
1040 id 27
1041 graphics
1042 [
1043 w 223.3
1044 h 54
1045 type "rectangle"
1046 fill "#FFFFFF"
1047 fill2 "#FFFFFF"
1048 outline "#000000"
1049 ]
1050 LabelGraphics
1051 [
1052 text "null"
1053 outline "#000000"
1054 fill "#FFFFFF"
1055 fontSize 16
1056 fontName "Monospace"
1057 autoSizePolicy "node_width"
1058 anchor "t"
1059 borderDistance 0.0
1060 ]
1061 LabelGraphics
1062 [
1063 text "
1064 Payload class
1065 InterferometryPayload class
1066 "
1067 fontSize 14
1068 fontName "Consolas"
1069 alignment "left"
1070 anchor "tl"
1071 borderDistance 6
1072 ]
1073 ]
1074
1075 node
1076 [
1077 id 28
1078 graphics
1079 [
1080 w 269.5
1081 h 68
1082 type "rectangle"
1083 fill "#FFFFFF"
1084 fill2 "#FFFFFF"
1085 outline "#000000"
1086 ]
1087 LabelGraphics
1088 [
1089 text "null"
1090 outline "#000000"
1091 fill "#FFFFFF"
1092 fontSize 16
1093 fontName "Monospace"
1094 autoSizePolicy "node_width"
1095 anchor "t"
1096 borderDistance 0.0
1097 ]
1098 LabelGraphics
1099 [
1100 text "
1101 CommSubsystem class
1102 UHFCommSubsystem class
1103 CommSubsystem class UndefinedPart
1104 "
1105 fontSize 14
1106 fontName "Consolas"
1107 alignment "left"
1108 anchor "tl"
1109 borderDistance 6
1110 ]
1111 ]
1112
1113 node
1114 [
1115 id 29
1116 graphics
1117 [
1118 w 269.5
1119 h 68
1120 type "rectangle"
1121 fill "#FFFFFF"
1122 fill2 "#FFFFFF"
1123 outline "#000000"
1124 ]
1125 LabelGraphics
1126 [
1127 text "null"
1128 outline "#000000"
1129 fill "#FFFFFF"
1130 fontSize 16
1131 fontName "Monospace"
1132 autoSizePolicy "node_width"
1133 anchor "t"
1134 borderDistance 0.0
1135 ]
1136 LabelGraphics
1137 [
1138 text "
1139 CommSubsystem class
1140 UHFCommSubsystem class
1141 CommSubsystem class UndefinedPart
1142 "
1143 fontSize 14
1144 fontName "Consolas"
1145 alignment "left"
1146 anchor "tl"
1147 borderDistance 6
1148 ]
1149 ]
1150
1151 node
1152 [
1153 id 30
1154 graphics
1155 [
1156 w 323.40000000000003
1157 h 96
1158 type "rectangle"
1159 fill "#FFFFFF"
1160 fill2 "#FFFFFF"
1161 outline "#000000"
1162 ]
1163 LabelGraphics
1164 [
1165 text "null"
1166 outline "#000000"
1167 fill "#FFFFFF"
1168 fontSize 16
1169 fontName "Monospace"
1170 autoSizePolicy "node_width"
1171 anchor "t"
1172 borderDistance 0.0
1173 ]
1174 LabelGraphics
1175 [
1176 text "
1177 CommunicatingElement class
1178 Spacecraft class
1179 CubeSat6U class
1180 CubeSat class
1181 CommunicatingElement class UndefinedPart
1182 "
1183 fontSize 14
1184 fontName "Consolas"
1185 alignment "left"
1186 anchor "tl"
1187 borderDistance 6
1188 ]
1189 ]
1190
1191 node
1192 [
1193 id 31
1194 graphics
1195 [
1196 w 277.20000000000005
1197 h 82
1198 type "rectangle"
1199 fill "#FFFFFF"
1200 fill2 "#FFFFFF"
1201 outline "#000000"
1202 ]
1203 LabelGraphics
1204 [
1205 text "null"
1206 outline "#000000"
1207 fill "#FFFFFF"
1208 fontSize 16
1209 fontName "Monospace"
1210 autoSizePolicy "node_width"
1211 anchor "t"
1212 borderDistance 0.0
1213 ]
1214 LabelGraphics
1215 [
1216 text "
1217 CommSubsystem class
1218 XCommSubsystem class
1219 CommSubsystem class UndefinedPart
1220 XCommSubsystem class UndefinedPart
1221 "
1222 fontSize 14
1223 fontName "Consolas"
1224 alignment "left"
1225 anchor "tl"
1226 borderDistance 6
1227 ]
1228 ]
1229
1230 node
1231 [
1232 id 32
1233 graphics
1234 [
1235 w 223.3
1236 h 54
1237 type "rectangle"
1238 fill "#FFFFFF"
1239 fill2 "#FFFFFF"
1240 outline "#000000"
1241 ]
1242 LabelGraphics
1243 [
1244 text "null"
1245 outline "#000000"
1246 fill "#FFFFFF"
1247 fontSize 16
1248 fontName "Monospace"
1249 autoSizePolicy "node_width"
1250 anchor "t"
1251 borderDistance 0.0
1252 ]
1253 LabelGraphics
1254 [
1255 text "
1256 Payload class
1257 InterferometryPayload class
1258 "
1259 fontSize 14
1260 fontName "Consolas"
1261 alignment "left"
1262 anchor "tl"
1263 borderDistance 6
1264 ]
1265 ]
1266
1267 node
1268 [
1269 id 33
1270 graphics
1271 [
1272 w 269.5
1273 h 68
1274 type "rectangle"
1275 fill "#FFFFFF"
1276 fill2 "#FFFFFF"
1277 outline "#000000"
1278 ]
1279 LabelGraphics
1280 [
1281 text "null"
1282 outline "#000000"
1283 fill "#FFFFFF"
1284 fontSize 16
1285 fontName "Monospace"
1286 autoSizePolicy "node_width"
1287 anchor "t"
1288 borderDistance 0.0
1289 ]
1290 LabelGraphics
1291 [
1292 text "
1293 CommSubsystem class
1294 UHFCommSubsystem class
1295 CommSubsystem class UndefinedPart
1296 "
1297 fontSize 14
1298 fontName "Consolas"
1299 alignment "left"
1300 anchor "tl"
1301 borderDistance 6
1302 ]
1303 ]
1304
1305 node
1306 [
1307 id 34
1308 graphics
1309 [
1310 w 323.40000000000003
1311 h 96
1312 type "rectangle"
1313 fill "#FFFFFF"
1314 fill2 "#FFFFFF"
1315 outline "#000000"
1316 ]
1317 LabelGraphics
1318 [
1319 text "null"
1320 outline "#000000"
1321 fill "#FFFFFF"
1322 fontSize 16
1323 fontName "Monospace"
1324 autoSizePolicy "node_width"
1325 anchor "t"
1326 borderDistance 0.0
1327 ]
1328 LabelGraphics
1329 [
1330 text "
1331 CommunicatingElement class
1332 Spacecraft class
1333 CubeSat6U class
1334 CubeSat class
1335 CommunicatingElement class UndefinedPart
1336 "
1337 fontSize 14
1338 fontName "Consolas"
1339 alignment "left"
1340 anchor "tl"
1341 borderDistance 6
1342 ]
1343 ]
1344
1345 node
1346 [
1347 id 35
1348 graphics
1349 [
1350 w 269.5
1351 h 68
1352 type "rectangle"
1353 fill "#FFFFFF"
1354 fill2 "#FFFFFF"
1355 outline "#000000"
1356 ]
1357 LabelGraphics
1358 [
1359 text "null"
1360 outline "#000000"
1361 fill "#FFFFFF"
1362 fontSize 16
1363 fontName "Monospace"
1364 autoSizePolicy "node_width"
1365 anchor "t"
1366 borderDistance 0.0
1367 ]
1368 LabelGraphics
1369 [
1370 text "
1371 CommSubsystem class
1372 UHFCommSubsystem class
1373 CommSubsystem class UndefinedPart
1374 "
1375 fontSize 14
1376 fontName "Consolas"
1377 alignment "left"
1378 anchor "tl"
1379 borderDistance 6
1380 ]
1381 ]
1382
1383 node
1384 [
1385 id 36
1386 graphics
1387 [
1388 w 277.20000000000005
1389 h 82
1390 type "rectangle"
1391 fill "#FFFFFF"
1392 fill2 "#FFFFFF"
1393 outline "#000000"
1394 ]
1395 LabelGraphics
1396 [
1397 text "null"
1398 outline "#000000"
1399 fill "#FFFFFF"
1400 fontSize 16
1401 fontName "Monospace"
1402 autoSizePolicy "node_width"
1403 anchor "t"
1404 borderDistance 0.0
1405 ]
1406 LabelGraphics
1407 [
1408 text "
1409 CommSubsystem class
1410 XCommSubsystem class
1411 CommSubsystem class UndefinedPart
1412 XCommSubsystem class UndefinedPart
1413 "
1414 fontSize 14
1415 fontName "Consolas"
1416 alignment "left"
1417 anchor "tl"
1418 borderDistance 6
1419 ]
1420 ]
1421
1422 node
1423 [
1424 id 37
1425 graphics
1426 [
1427 w 223.3
1428 h 54
1429 type "rectangle"
1430 fill "#FFFFFF"
1431 fill2 "#FFFFFF"
1432 outline "#000000"
1433 ]
1434 LabelGraphics
1435 [
1436 text "null"
1437 outline "#000000"
1438 fill "#FFFFFF"
1439 fontSize 16
1440 fontName "Monospace"
1441 autoSizePolicy "node_width"
1442 anchor "t"
1443 borderDistance 0.0
1444 ]
1445 LabelGraphics
1446 [
1447 text "
1448 Payload class
1449 InterferometryPayload class
1450 "
1451 fontSize 14
1452 fontName "Consolas"
1453 alignment "left"
1454 anchor "tl"
1455 borderDistance 6
1456 ]
1457 ]
1458
1459 node
1460 [
1461 id 38
1462 graphics
1463 [
1464 w 112.2
1465 h 26
1466 type "rectangle"
1467 fill "#FFFFFF"
1468 fill2 "#FFFFFF"
1469 outline "#000000"
1470 ]
1471 LabelGraphics
1472 [
1473 text "New Integers"
1474 outline "#000000"
1475 fill "#FFFFFF"
1476 fontSize 16
1477 fontName "Monospace"
1478 autoSizePolicy "node_width"
1479 anchor "t"
1480 borderDistance 0.0
1481 ]
1482 LabelGraphics
1483 [
1484 text "
1485 "
1486 fontSize 14
1487 fontName "Consolas"
1488 alignment "left"
1489 anchor "tl"
1490 borderDistance 6
1491 ]
1492 ]
1493
1494 node
1495 [
1496 id 39
1497 graphics
1498 [
1499 w 85.80000000000001
1500 h 26
1501 type "rectangle"
1502 fill "#FFFFFF"
1503 fill2 "#FFFFFF"
1504 outline "#000000"
1505 ]
1506 LabelGraphics
1507 [
1508 text "New Reals"
1509 outline "#000000"
1510 fill "#FFFFFF"
1511 fontSize 16
1512 fontName "Monospace"
1513 autoSizePolicy "node_width"
1514 anchor "t"
1515 borderDistance 0.0
1516 ]
1517 LabelGraphics
1518 [
1519 text "
1520 "
1521 fontSize 14
1522 fontName "Consolas"
1523 alignment "left"
1524 anchor "tl"
1525 borderDistance 6
1526 ]
1527 ]
1528
1529 node
1530 [
1531 id 40
1532 graphics
1533 [
1534 w 103.4
1535 h 26
1536 type "rectangle"
1537 fill "#FFFFFF"
1538 fill2 "#FFFFFF"
1539 outline "#000000"
1540 ]
1541 LabelGraphics
1542 [
1543 text "New Strings"
1544 outline "#000000"
1545 fill "#FFFFFF"
1546 fontSize 16
1547 fontName "Monospace"
1548 autoSizePolicy "node_width"
1549 anchor "t"
1550 borderDistance 0.0
1551 ]
1552 LabelGraphics
1553 [
1554 text "
1555 "
1556 fontSize 14
1557 fontName "Consolas"
1558 alignment "left"
1559 anchor "tl"
1560 borderDistance 6
1561 ]
1562 ]
1563
1564 node
1565 [
1566 id 41
1567 graphics
1568 [
1569 w 103.4
1570 h 26
1571 type "rectangle"
1572 fill "#FFFFFF"
1573 fill2 "#FFFFFF"
1574 outline "#000000"
1575 ]
1576 LabelGraphics
1577 [
1578 text "New Objects"
1579 outline "#000000"
1580 fill "#FFFFFF"
1581 fontSize 16
1582 fontName "Monospace"
1583 autoSizePolicy "node_width"
1584 anchor "t"
1585 borderDistance 0.0
1586 ]
1587 LabelGraphics
1588 [
1589 text "
1590 "
1591 fontSize 14
1592 fontName "Consolas"
1593 alignment "left"
1594 anchor "tl"
1595 borderDistance 6
1596 ]
1597 ]
1598 edge
1599 [
1600 source 0
1601 target 1
1602 graphics
1603 [
1604 fill "#000000"
1605 width 3
1606 targetArrow "standard"
1607 ]
1608 LabelGraphics
1609 [
1610 text "groundStationNetwork reference ConstellationMission"
1611 fontSize 14
1612 fontName "Consolas"
1613 configuration "AutoFlippingLabel"
1614 model "six_pos"
1615 position "thead"
1616 ]
1617 ]
1618 edge
1619 [
1620 source 0
1621 target 6
1622 graphics
1623 [
1624 fill "#000000"
1625 width 3
1626 targetArrow "standard"
1627 ]
1628 LabelGraphics
1629 [
1630 text "spacecraft reference ConstellationMission"
1631 fontSize 14
1632 fontName "Consolas"
1633 configuration "AutoFlippingLabel"
1634 model "six_pos"
1635 position "thead"
1636 ]
1637 ]
1638 edge
1639 [
1640 source 0
1641 target 10
1642 graphics
1643 [
1644 fill "#000000"
1645 width 3
1646 targetArrow "standard"
1647 ]
1648 LabelGraphics
1649 [
1650 text "spacecraft reference ConstellationMission"
1651 fontSize 14
1652 fontName "Consolas"
1653 configuration "AutoFlippingLabel"
1654 model "six_pos"
1655 position "thead"
1656 ]
1657 ]
1658 edge
1659 [
1660 source 0
1661 target 14
1662 graphics
1663 [
1664 fill "#000000"
1665 width 3
1666 targetArrow "standard"
1667 ]
1668 LabelGraphics
1669 [
1670 text "spacecraft reference ConstellationMission"
1671 fontSize 14
1672 fontName "Consolas"
1673 configuration "AutoFlippingLabel"
1674 model "six_pos"
1675 position "thead"
1676 ]
1677 ]
1678 edge
1679 [
1680 source 0
1681 target 18
1682 graphics
1683 [
1684 fill "#000000"
1685 width 3
1686 targetArrow "standard"
1687 ]
1688 LabelGraphics
1689 [
1690 text "spacecraft reference ConstellationMission"
1691 fontSize 14
1692 fontName "Consolas"
1693 configuration "AutoFlippingLabel"
1694 model "six_pos"
1695 position "thead"
1696 ]
1697 ]
1698 edge
1699 [
1700 source 0
1701 target 22
1702 graphics
1703 [
1704 fill "#000000"
1705 width 3
1706 targetArrow "standard"
1707 ]
1708 LabelGraphics
1709 [
1710 text "spacecraft reference ConstellationMission"
1711 fontSize 14
1712 fontName "Consolas"
1713 configuration "AutoFlippingLabel"
1714 model "six_pos"
1715 position "thead"
1716 ]
1717 ]
1718 edge
1719 [
1720 source 0
1721 target 26
1722 graphics
1723 [
1724 fill "#000000"
1725 width 3
1726 targetArrow "standard"
1727 ]
1728 LabelGraphics
1729 [
1730 text "spacecraft reference ConstellationMission"
1731 fontSize 14
1732 fontName "Consolas"
1733 configuration "AutoFlippingLabel"
1734 model "six_pos"
1735 position "thead"
1736 ]
1737 ]
1738 edge
1739 [
1740 source 0
1741 target 30
1742 graphics
1743 [
1744 fill "#000000"
1745 width 3
1746 targetArrow "standard"
1747 ]
1748 LabelGraphics
1749 [
1750 text "spacecraft reference ConstellationMission"
1751 fontSize 14
1752 fontName "Consolas"
1753 configuration "AutoFlippingLabel"
1754 model "six_pos"
1755 position "thead"
1756 ]
1757 ]
1758 edge
1759 [
1760 source 0
1761 target 34
1762 graphics
1763 [
1764 fill "#000000"
1765 width 3
1766 targetArrow "standard"
1767 ]
1768 LabelGraphics
1769 [
1770 text "spacecraft reference ConstellationMission"
1771 fontSize 14
1772 fontName "Consolas"
1773 configuration "AutoFlippingLabel"
1774 model "six_pos"
1775 position "thead"
1776 ]
1777 ]
1778 edge
1779 [
1780 source 1
1781 target 2
1782 graphics
1783 [
1784 fill "#000000"
1785 width 3
1786 targetArrow "standard"
1787 ]
1788 LabelGraphics
1789 [
1790 text "commSubsystem reference CommunicatingElement"
1791 fontSize 14
1792 fontName "Consolas"
1793 configuration "AutoFlippingLabel"
1794 model "six_pos"
1795 position "thead"
1796 ]
1797 ]
1798 edge
1799 [
1800 source 1
1801 target 3
1802 graphics
1803 [
1804 fill "#000000"
1805 width 3
1806 targetArrow "standard"
1807 ]
1808 LabelGraphics
1809 [
1810 text "commSubsystem reference CommunicatingElement"
1811 fontSize 14
1812 fontName "Consolas"
1813 configuration "AutoFlippingLabel"
1814 model "six_pos"
1815 position "thead"
1816 ]
1817 ]
1818 edge
1819 [
1820 source 6
1821 target 7
1822 graphics
1823 [
1824 fill "#000000"
1825 width 3
1826 targetArrow "standard"
1827 ]
1828 LabelGraphics
1829 [
1830 text "commSubsystem reference CommunicatingElement"
1831 fontSize 14
1832 fontName "Consolas"
1833 configuration "AutoFlippingLabel"
1834 model "six_pos"
1835 position "thead"
1836 ]
1837 ]
1838 edge
1839 [
1840 source 6
1841 target 8
1842 graphics
1843 [
1844 fill "#000000"
1845 width 3
1846 targetArrow "standard"
1847 ]
1848 LabelGraphics
1849 [
1850 text "commSubsystem reference CommunicatingElement"
1851 fontSize 14
1852 fontName "Consolas"
1853 configuration "AutoFlippingLabel"
1854 model "six_pos"
1855 position "thead"
1856 ]
1857 ]
1858 edge
1859 [
1860 source 10
1861 target 11
1862 graphics
1863 [
1864 fill "#000000"
1865 width 3
1866 targetArrow "standard"
1867 ]
1868 LabelGraphics
1869 [
1870 text "commSubsystem reference CommunicatingElement"
1871 fontSize 14
1872 fontName "Consolas"
1873 configuration "AutoFlippingLabel"
1874 model "six_pos"
1875 position "thead"
1876 ]
1877 ]
1878 edge
1879 [
1880 source 10
1881 target 13
1882 graphics
1883 [
1884 fill "#000000"
1885 width 3
1886 targetArrow "standard"
1887 ]
1888 LabelGraphics
1889 [
1890 text "commSubsystem reference CommunicatingElement"
1891 fontSize 14
1892 fontName "Consolas"
1893 configuration "AutoFlippingLabel"
1894 model "six_pos"
1895 position "thead"
1896 ]
1897 ]
1898 edge
1899 [
1900 source 14
1901 target 15
1902 graphics
1903 [
1904 fill "#000000"
1905 width 3
1906 targetArrow "standard"
1907 ]
1908 LabelGraphics
1909 [
1910 text "commSubsystem reference CommunicatingElement"
1911 fontSize 14
1912 fontName "Consolas"
1913 configuration "AutoFlippingLabel"
1914 model "six_pos"
1915 position "thead"
1916 ]
1917 ]
1918 edge
1919 [
1920 source 14
1921 target 16
1922 graphics
1923 [
1924 fill "#000000"
1925 width 3
1926 targetArrow "standard"
1927 ]
1928 LabelGraphics
1929 [
1930 text "commSubsystem reference CommunicatingElement"
1931 fontSize 14
1932 fontName "Consolas"
1933 configuration "AutoFlippingLabel"
1934 model "six_pos"
1935 position "thead"
1936 ]
1937 ]
1938 edge
1939 [
1940 source 18
1941 target 19
1942 graphics
1943 [
1944 fill "#000000"
1945 width 3
1946 targetArrow "standard"
1947 ]
1948 LabelGraphics
1949 [
1950 text "commSubsystem reference CommunicatingElement"
1951 fontSize 14
1952 fontName "Consolas"
1953 configuration "AutoFlippingLabel"
1954 model "six_pos"
1955 position "thead"
1956 ]
1957 ]
1958 edge
1959 [
1960 source 18
1961 target 21
1962 graphics
1963 [
1964 fill "#000000"
1965 width 3
1966 targetArrow "standard"
1967 ]
1968 LabelGraphics
1969 [
1970 text "commSubsystem reference CommunicatingElement"
1971 fontSize 14
1972 fontName "Consolas"
1973 configuration "AutoFlippingLabel"
1974 model "six_pos"
1975 position "thead"
1976 ]
1977 ]
1978 edge
1979 [
1980 source 22
1981 target 24
1982 graphics
1983 [
1984 fill "#000000"
1985 width 3
1986 targetArrow "standard"
1987 ]
1988 LabelGraphics
1989 [
1990 text "commSubsystem reference CommunicatingElement"
1991 fontSize 14
1992 fontName "Consolas"
1993 configuration "AutoFlippingLabel"
1994 model "six_pos"
1995 position "thead"
1996 ]
1997 ]
1998 edge
1999 [
2000 source 22
2001 target 25
2002 graphics
2003 [
2004 fill "#000000"
2005 width 3
2006 targetArrow "standard"
2007 ]
2008 LabelGraphics
2009 [
2010 text "commSubsystem reference CommunicatingElement"
2011 fontSize 14
2012 fontName "Consolas"
2013 configuration "AutoFlippingLabel"
2014 model "six_pos"
2015 position "thead"
2016 ]
2017 ]
2018 edge
2019 [
2020 source 26
2021 target 28
2022 graphics
2023 [
2024 fill "#000000"
2025 width 3
2026 targetArrow "standard"
2027 ]
2028 LabelGraphics
2029 [
2030 text "commSubsystem reference CommunicatingElement"
2031 fontSize 14
2032 fontName "Consolas"
2033 configuration "AutoFlippingLabel"
2034 model "six_pos"
2035 position "thead"
2036 ]
2037 ]
2038 edge
2039 [
2040 source 26
2041 target 29
2042 graphics
2043 [
2044 fill "#000000"
2045 width 3
2046 targetArrow "standard"
2047 ]
2048 LabelGraphics
2049 [
2050 text "commSubsystem reference CommunicatingElement"
2051 fontSize 14
2052 fontName "Consolas"
2053 configuration "AutoFlippingLabel"
2054 model "six_pos"
2055 position "thead"
2056 ]
2057 ]
2058 edge
2059 [
2060 source 30
2061 target 31
2062 graphics
2063 [
2064 fill "#000000"
2065 width 3
2066 targetArrow "standard"
2067 ]
2068 LabelGraphics
2069 [
2070 text "commSubsystem reference CommunicatingElement"
2071 fontSize 14
2072 fontName "Consolas"
2073 configuration "AutoFlippingLabel"
2074 model "six_pos"
2075 position "thead"
2076 ]
2077 ]
2078 edge
2079 [
2080 source 30
2081 target 33
2082 graphics
2083 [
2084 fill "#000000"
2085 width 3
2086 targetArrow "standard"
2087 ]
2088 LabelGraphics
2089 [
2090 text "commSubsystem reference CommunicatingElement"
2091 fontSize 14
2092 fontName "Consolas"
2093 configuration "AutoFlippingLabel"
2094 model "six_pos"
2095 position "thead"
2096 ]
2097 ]
2098 edge
2099 [
2100 source 34
2101 target 35
2102 graphics
2103 [
2104 fill "#000000"
2105 width 3
2106 targetArrow "standard"
2107 ]
2108 LabelGraphics
2109 [
2110 text "commSubsystem reference CommunicatingElement"
2111 fontSize 14
2112 fontName "Consolas"
2113 configuration "AutoFlippingLabel"
2114 model "six_pos"
2115 position "thead"
2116 ]
2117 ]
2118 edge
2119 [
2120 source 34
2121 target 36
2122 graphics
2123 [
2124 fill "#000000"
2125 width 3
2126 targetArrow "standard"
2127 ]
2128 LabelGraphics
2129 [
2130 text "commSubsystem reference CommunicatingElement"
2131 fontSize 14
2132 fontName "Consolas"
2133 configuration "AutoFlippingLabel"
2134 model "six_pos"
2135 position "thead"
2136 ]
2137 ]
2138 edge
2139 [
2140 source 6
2141 target 9
2142 graphics
2143 [
2144 fill "#000000"
2145 width 3
2146 targetArrow "standard"
2147 ]
2148 LabelGraphics
2149 [
2150 text "payload reference Spacecraft"
2151 fontSize 14
2152 fontName "Consolas"
2153 configuration "AutoFlippingLabel"
2154 model "six_pos"
2155 position "thead"
2156 ]
2157 ]
2158 edge
2159 [
2160 source 10
2161 target 12
2162 graphics
2163 [
2164 fill "#000000"
2165 width 3
2166 targetArrow "standard"
2167 ]
2168 LabelGraphics
2169 [
2170 text "payload reference Spacecraft"
2171 fontSize 14
2172 fontName "Consolas"
2173 configuration "AutoFlippingLabel"
2174 model "six_pos"
2175 position "thead"
2176 ]
2177 ]
2178 edge
2179 [
2180 source 14
2181 target 17
2182 graphics
2183 [
2184 fill "#000000"
2185 width 3
2186 targetArrow "standard"
2187 ]
2188 LabelGraphics
2189 [
2190 text "payload reference Spacecraft"
2191 fontSize 14
2192 fontName "Consolas"
2193 configuration "AutoFlippingLabel"
2194 model "six_pos"
2195 position "thead"
2196 ]
2197 ]
2198 edge
2199 [
2200 source 18
2201 target 20
2202 graphics
2203 [
2204 fill "#000000"
2205 width 3
2206 targetArrow "standard"
2207 ]
2208 LabelGraphics
2209 [
2210 text "payload reference Spacecraft"
2211 fontSize 14
2212 fontName "Consolas"
2213 configuration "AutoFlippingLabel"
2214 model "six_pos"
2215 position "thead"
2216 ]
2217 ]
2218 edge
2219 [
2220 source 22
2221 target 23
2222 graphics
2223 [
2224 fill "#000000"
2225 width 3
2226 targetArrow "standard"
2227 ]
2228 LabelGraphics
2229 [
2230 text "payload reference Spacecraft"
2231 fontSize 14
2232 fontName "Consolas"
2233 configuration "AutoFlippingLabel"
2234 model "six_pos"
2235 position "thead"
2236 ]
2237 ]
2238 edge
2239 [
2240 source 26
2241 target 27
2242 graphics
2243 [
2244 fill "#000000"
2245 width 3
2246 targetArrow "standard"
2247 ]
2248 LabelGraphics
2249 [
2250 text "payload reference Spacecraft"
2251 fontSize 14
2252 fontName "Consolas"
2253 configuration "AutoFlippingLabel"
2254 model "six_pos"
2255 position "thead"
2256 ]
2257 ]
2258 edge
2259 [
2260 source 30
2261 target 32
2262 graphics
2263 [
2264 fill "#000000"
2265 width 3
2266 targetArrow "standard"
2267 ]
2268 LabelGraphics
2269 [
2270 text "payload reference Spacecraft"
2271 fontSize 14
2272 fontName "Consolas"
2273 configuration "AutoFlippingLabel"
2274 model "six_pos"
2275 position "thead"
2276 ]
2277 ]
2278 edge
2279 [
2280 source 34
2281 target 37
2282 graphics
2283 [
2284 fill "#000000"
2285 width 3
2286 targetArrow "standard"
2287 ]
2288 LabelGraphics
2289 [
2290 text "payload reference Spacecraft"
2291 fontSize 14
2292 fontName "Consolas"
2293 configuration "AutoFlippingLabel"
2294 model "six_pos"
2295 position "thead"
2296 ]
2297 ]
2298 edge
2299 [
2300 source 7
2301 target 2
2302 graphics
2303 [
2304 fill "#000000"
2305 targetArrow "standard"
2306 ]
2307 LabelGraphics
2308 [
2309 text "target reference CommSubsystem"
2310 fontSize 14
2311 fontName "Consolas"
2312 configuration "AutoFlippingLabel"
2313 model "six_pos"
2314 position "thead"
2315 ]
2316 ]
2317 edge
2318 [
2319 source 13
2320 target 2
2321 graphics
2322 [
2323 fill "#000000"
2324 targetArrow "standard"
2325 ]
2326 LabelGraphics
2327 [
2328 text "target reference CommSubsystem"
2329 fontSize 14
2330 fontName "Consolas"
2331 configuration "AutoFlippingLabel"
2332 model "six_pos"
2333 position "thead"
2334 ]
2335 ]
2336 edge
2337 [
2338 source 15
2339 target 11
2340 graphics
2341 [
2342 fill "#000000"
2343 targetArrow "standard"
2344 ]
2345 LabelGraphics
2346 [
2347 text "target reference CommSubsystem"
2348 fontSize 14
2349 fontName "Consolas"
2350 configuration "AutoFlippingLabel"
2351 model "six_pos"
2352 position "thead"
2353 ]
2354 ]
2355 edge
2356 [
2357 source 21
2358 target 11
2359 graphics
2360 [
2361 fill "#000000"
2362 targetArrow "standard"
2363 ]
2364 LabelGraphics
2365 [
2366 text "target reference CommSubsystem"
2367 fontSize 14
2368 fontName "Consolas"
2369 configuration "AutoFlippingLabel"
2370 model "six_pos"
2371 position "thead"
2372 ]
2373 ]
2374 edge
2375 [
2376 source 24
2377 target 2
2378 graphics
2379 [
2380 fill "#000000"
2381 targetArrow "standard"
2382 ]
2383 LabelGraphics
2384 [
2385 text "target reference CommSubsystem"
2386 fontSize 14
2387 fontName "Consolas"
2388 configuration "AutoFlippingLabel"
2389 model "six_pos"
2390 position "thead"
2391 ]
2392 ]
2393 edge
2394 [
2395 source 29
2396 target 15
2397 graphics
2398 [
2399 fill "#000000"
2400 targetArrow "standard"
2401 ]
2402 LabelGraphics
2403 [
2404 text "target reference CommSubsystem"
2405 fontSize 14
2406 fontName "Consolas"
2407 configuration "AutoFlippingLabel"
2408 model "six_pos"
2409 position "thead"
2410 ]
2411 ]
2412 edge
2413 [
2414 source 31
2415 target 2
2416 graphics
2417 [
2418 fill "#000000"
2419 targetArrow "standard"
2420 ]
2421 LabelGraphics
2422 [
2423 text "target reference CommSubsystem"
2424 fontSize 14
2425 fontName "Consolas"
2426 configuration "AutoFlippingLabel"
2427 model "six_pos"
2428 position "thead"
2429 ]
2430 ]
2431 edge
2432 [
2433 source 35
2434 target 28
2435 graphics
2436 [
2437 fill "#000000"
2438 targetArrow "standard"
2439 ]
2440 LabelGraphics
2441 [
2442 text "target reference CommSubsystem"
2443 fontSize 14
2444 fontName "Consolas"
2445 configuration "AutoFlippingLabel"
2446 model "six_pos"
2447 position "thead"
2448 ]
2449 ]
2450]
2451
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run3/3_1.png b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run3/3_1.png
deleted file mode 100644
index 783b9fb9..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run3/3_1.png
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run3/3_1.xmi b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run3/3_1.xmi
deleted file mode 100644
index cccb6a10..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run3/3_1.xmi
+++ /dev/null
@@ -1,47 +0,0 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
5 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:CubeSat3U">
8 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
9 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.1/@commSubsystem.1"/>
10 <payload xsi:type="satellite:InterferometryPayload"/>
11 </spacecraft>
12 <spacecraft xsi:type="satellite:CubeSat6U">
13 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
14 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
15 <payload xsi:type="satellite:InterferometryPayload"/>
16 </spacecraft>
17 <spacecraft xsi:type="satellite:CubeSat6U">
18 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
19 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
20 <payload xsi:type="satellite:InterferometryPayload"/>
21 </spacecraft>
22 <spacecraft xsi:type="satellite:CubeSat6U">
23 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
24 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.6/@commSubsystem.0"/>
25 <payload xsi:type="satellite:InterferometryPayload"/>
26 </spacecraft>
27 <spacecraft xsi:type="satellite:CubeSat3U">
28 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
29 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
30 <payload xsi:type="satellite:InterferometryPayload"/>
31 </spacecraft>
32 <spacecraft xsi:type="satellite:SmallSat">
33 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
34 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.1/@commSubsystem.1"/>
35 <payload xsi:type="satellite:InterferometryPayload"/>
36 </spacecraft>
37 <spacecraft xsi:type="satellite:SmallSat">
38 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
39 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.0/@commSubsystem.1"/>
40 <payload xsi:type="satellite:InterferometryPayload"/>
41 </spacecraft>
42 <spacecraft xsi:type="satellite:CubeSat3U">
43 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
44 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
45 <payload xsi:type="satellite:InterferometryPayload"/>
46 </spacecraft>
47</satellite:InterferometryMission>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run4/4_1.gml b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run4/4_1.gml
deleted file mode 100644
index 1329cc70..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run4/4_1.gml
+++ /dev/null
@@ -1,2452 +0,0 @@
1graph
2[
3 node
4 [
5 id 0
6 graphics
7 [
8 w 315.70000000000005
9 h 82
10 type "rectangle"
11 fill "#FFFFFF"
12 fill2 "#FFFFFF"
13 outline "#000000"
14 ]
15 LabelGraphics
16 [
17 text "o 1"
18 outline "#000000"
19 fill "#FFFFFF"
20 fontSize 16
21 fontName "Monospace"
22 autoSizePolicy "node_width"
23 anchor "t"
24 borderDistance 0.0
25 ]
26 LabelGraphics
27 [
28 text "
29 ConstellationMission class DefinedPart
30 InterferometryMission class DefinedPart
31 ConstellationMission class
32 InterferometryMission class
33 "
34 fontSize 14
35 fontName "Consolas"
36 alignment "left"
37 anchor "tl"
38 borderDistance 6
39 ]
40 ]
41
42 node
43 [
44 id 1
45 graphics
46 [
47 w 308.0
48 h 82
49 type "rectangle"
50 fill "#FFFFFF"
51 fill2 "#FFFFFF"
52 outline "#000000"
53 ]
54 LabelGraphics
55 [
56 text "o 2"
57 outline "#000000"
58 fill "#FFFFFF"
59 fontSize 16
60 fontName "Monospace"
61 autoSizePolicy "node_width"
62 anchor "t"
63 borderDistance 0.0
64 ]
65 LabelGraphics
66 [
67 text "
68 CommunicatingElement class DefinedPart
69 GroundStationNetwork class DefinedPart
70 CommunicatingElement class
71 GroundStationNetwork class
72 "
73 fontSize 14
74 fontName "Consolas"
75 alignment "left"
76 anchor "tl"
77 borderDistance 6
78 ]
79 ]
80
81 node
82 [
83 id 2
84 graphics
85 [
86 w 261.8
87 h 82
88 type "rectangle"
89 fill "#FFFFFF"
90 fill2 "#FFFFFF"
91 outline "#000000"
92 ]
93 LabelGraphics
94 [
95 text "o 3"
96 outline "#000000"
97 fill "#FFFFFF"
98 fontSize 16
99 fontName "Monospace"
100 autoSizePolicy "node_width"
101 anchor "t"
102 borderDistance 0.0
103 ]
104 LabelGraphics
105 [
106 text "
107 CommSubsystem class DefinedPart
108 XCommSubsystem class DefinedPart
109 CommSubsystem class
110 XCommSubsystem class
111 "
112 fontSize 14
113 fontName "Consolas"
114 alignment "left"
115 anchor "tl"
116 borderDistance 6
117 ]
118 ]
119
120 node
121 [
122 id 3
123 graphics
124 [
125 w 269.5
126 h 82
127 type "rectangle"
128 fill "#FFFFFF"
129 fill2 "#FFFFFF"
130 outline "#000000"
131 ]
132 LabelGraphics
133 [
134 text "o 4"
135 outline "#000000"
136 fill "#FFFFFF"
137 fontSize 16
138 fontName "Monospace"
139 autoSizePolicy "node_width"
140 anchor "t"
141 borderDistance 0.0
142 ]
143 LabelGraphics
144 [
145 text "
146 CommSubsystem class DefinedPart
147 KaCommSubsystem class DefinedPart
148 CommSubsystem class
149 KaCommSubsystem class
150 "
151 fontSize 14
152 fontName "Consolas"
153 alignment "left"
154 anchor "tl"
155 borderDistance 6
156 ]
157 ]
158
159 node
160 [
161 id 4
162 graphics
163 [
164 w 41.800000000000004
165 h 26
166 type "rectangle"
167 fill "#FFFFFF"
168 fill2 "#FFFFFF"
169 outline "#000000"
170 ]
171 LabelGraphics
172 [
173 text "true"
174 outline "#000000"
175 fill "#FFFFFF"
176 fontSize 16
177 fontName "Monospace"
178 autoSizePolicy "node_width"
179 anchor "t"
180 borderDistance 0.0
181 ]
182 LabelGraphics
183 [
184 text "
185 "
186 fontSize 14
187 fontName "Consolas"
188 alignment "left"
189 anchor "tl"
190 borderDistance 6
191 ]
192 ]
193
194 node
195 [
196 id 5
197 graphics
198 [
199 w 50.6
200 h 26
201 type "rectangle"
202 fill "#FFFFFF"
203 fill2 "#FFFFFF"
204 outline "#000000"
205 ]
206 LabelGraphics
207 [
208 text "false"
209 outline "#000000"
210 fill "#FFFFFF"
211 fontSize 16
212 fontName "Monospace"
213 autoSizePolicy "node_width"
214 anchor "t"
215 borderDistance 0.0
216 ]
217 LabelGraphics
218 [
219 text "
220 "
221 fontSize 14
222 fontName "Consolas"
223 alignment "left"
224 anchor "tl"
225 borderDistance 6
226 ]
227 ]
228
229 node
230 [
231 id 6
232 graphics
233 [
234 w 323.40000000000003
235 h 96
236 type "rectangle"
237 fill "#FFFFFF"
238 fill2 "#FFFFFF"
239 outline "#000000"
240 ]
241 LabelGraphics
242 [
243 text "null"
244 outline "#000000"
245 fill "#FFFFFF"
246 fontSize 16
247 fontName "Monospace"
248 autoSizePolicy "node_width"
249 anchor "t"
250 borderDistance 0.0
251 ]
252 LabelGraphics
253 [
254 text "
255 CommunicatingElement class
256 Spacecraft class
257 CubeSat6U class
258 CubeSat class
259 CommunicatingElement class UndefinedPart
260 "
261 fontSize 14
262 fontName "Consolas"
263 alignment "left"
264 anchor "tl"
265 borderDistance 6
266 ]
267 ]
268
269 node
270 [
271 id 7
272 graphics
273 [
274 w 269.5
275 h 68
276 type "rectangle"
277 fill "#FFFFFF"
278 fill2 "#FFFFFF"
279 outline "#000000"
280 ]
281 LabelGraphics
282 [
283 text "null"
284 outline "#000000"
285 fill "#FFFFFF"
286 fontSize 16
287 fontName "Monospace"
288 autoSizePolicy "node_width"
289 anchor "t"
290 borderDistance 0.0
291 ]
292 LabelGraphics
293 [
294 text "
295 CommSubsystem class
296 UHFCommSubsystem class
297 CommSubsystem class UndefinedPart
298 "
299 fontSize 14
300 fontName "Consolas"
301 alignment "left"
302 anchor "tl"
303 borderDistance 6
304 ]
305 ]
306
307 node
308 [
309 id 8
310 graphics
311 [
312 w 223.3
313 h 54
314 type "rectangle"
315 fill "#FFFFFF"
316 fill2 "#FFFFFF"
317 outline "#000000"
318 ]
319 LabelGraphics
320 [
321 text "null"
322 outline "#000000"
323 fill "#FFFFFF"
324 fontSize 16
325 fontName "Monospace"
326 autoSizePolicy "node_width"
327 anchor "t"
328 borderDistance 0.0
329 ]
330 LabelGraphics
331 [
332 text "
333 Payload class
334 InterferometryPayload class
335 "
336 fontSize 14
337 fontName "Consolas"
338 alignment "left"
339 anchor "tl"
340 borderDistance 6
341 ]
342 ]
343
344 node
345 [
346 id 9
347 graphics
348 [
349 w 277.20000000000005
350 h 82
351 type "rectangle"
352 fill "#FFFFFF"
353 fill2 "#FFFFFF"
354 outline "#000000"
355 ]
356 LabelGraphics
357 [
358 text "null"
359 outline "#000000"
360 fill "#FFFFFF"
361 fontSize 16
362 fontName "Monospace"
363 autoSizePolicy "node_width"
364 anchor "t"
365 borderDistance 0.0
366 ]
367 LabelGraphics
368 [
369 text "
370 CommSubsystem class
371 XCommSubsystem class
372 CommSubsystem class UndefinedPart
373 XCommSubsystem class UndefinedPart
374 "
375 fontSize 14
376 fontName "Consolas"
377 alignment "left"
378 anchor "tl"
379 borderDistance 6
380 ]
381 ]
382
383 node
384 [
385 id 10
386 graphics
387 [
388 w 323.40000000000003
389 h 82
390 type "rectangle"
391 fill "#FFFFFF"
392 fill2 "#FFFFFF"
393 outline "#000000"
394 ]
395 LabelGraphics
396 [
397 text "null"
398 outline "#000000"
399 fill "#FFFFFF"
400 fontSize 16
401 fontName "Monospace"
402 autoSizePolicy "node_width"
403 anchor "t"
404 borderDistance 0.0
405 ]
406 LabelGraphics
407 [
408 text "
409 CommunicatingElement class
410 Spacecraft class
411 SmallSat class
412 CommunicatingElement class UndefinedPart
413 "
414 fontSize 14
415 fontName "Consolas"
416 alignment "left"
417 anchor "tl"
418 borderDistance 6
419 ]
420 ]
421
422 node
423 [
424 id 11
425 graphics
426 [
427 w 277.20000000000005
428 h 82
429 type "rectangle"
430 fill "#FFFFFF"
431 fill2 "#FFFFFF"
432 outline "#000000"
433 ]
434 LabelGraphics
435 [
436 text "null"
437 outline "#000000"
438 fill "#FFFFFF"
439 fontSize 16
440 fontName "Monospace"
441 autoSizePolicy "node_width"
442 anchor "t"
443 borderDistance 0.0
444 ]
445 LabelGraphics
446 [
447 text "
448 CommSubsystem class
449 XCommSubsystem class
450 CommSubsystem class UndefinedPart
451 XCommSubsystem class UndefinedPart
452 "
453 fontSize 14
454 fontName "Consolas"
455 alignment "left"
456 anchor "tl"
457 borderDistance 6
458 ]
459 ]
460
461 node
462 [
463 id 12
464 graphics
465 [
466 w 277.20000000000005
467 h 82
468 type "rectangle"
469 fill "#FFFFFF"
470 fill2 "#FFFFFF"
471 outline "#000000"
472 ]
473 LabelGraphics
474 [
475 text "null"
476 outline "#000000"
477 fill "#FFFFFF"
478 fontSize 16
479 fontName "Monospace"
480 autoSizePolicy "node_width"
481 anchor "t"
482 borderDistance 0.0
483 ]
484 LabelGraphics
485 [
486 text "
487 CommSubsystem class
488 XCommSubsystem class
489 CommSubsystem class UndefinedPart
490 XCommSubsystem class UndefinedPart
491 "
492 fontSize 14
493 fontName "Consolas"
494 alignment "left"
495 anchor "tl"
496 borderDistance 6
497 ]
498 ]
499
500 node
501 [
502 id 13
503 graphics
504 [
505 w 223.3
506 h 54
507 type "rectangle"
508 fill "#FFFFFF"
509 fill2 "#FFFFFF"
510 outline "#000000"
511 ]
512 LabelGraphics
513 [
514 text "null"
515 outline "#000000"
516 fill "#FFFFFF"
517 fontSize 16
518 fontName "Monospace"
519 autoSizePolicy "node_width"
520 anchor "t"
521 borderDistance 0.0
522 ]
523 LabelGraphics
524 [
525 text "
526 Payload class
527 InterferometryPayload class
528 "
529 fontSize 14
530 fontName "Consolas"
531 alignment "left"
532 anchor "tl"
533 borderDistance 6
534 ]
535 ]
536
537 node
538 [
539 id 14
540 graphics
541 [
542 w 323.40000000000003
543 h 96
544 type "rectangle"
545 fill "#FFFFFF"
546 fill2 "#FFFFFF"
547 outline "#000000"
548 ]
549 LabelGraphics
550 [
551 text "null"
552 outline "#000000"
553 fill "#FFFFFF"
554 fontSize 16
555 fontName "Monospace"
556 autoSizePolicy "node_width"
557 anchor "t"
558 borderDistance 0.0
559 ]
560 LabelGraphics
561 [
562 text "
563 CommunicatingElement class
564 Spacecraft class
565 CubeSat3U class
566 CubeSat class
567 CommunicatingElement class UndefinedPart
568 "
569 fontSize 14
570 fontName "Consolas"
571 alignment "left"
572 anchor "tl"
573 borderDistance 6
574 ]
575 ]
576
577 node
578 [
579 id 15
580 graphics
581 [
582 w 269.5
583 h 68
584 type "rectangle"
585 fill "#FFFFFF"
586 fill2 "#FFFFFF"
587 outline "#000000"
588 ]
589 LabelGraphics
590 [
591 text "null"
592 outline "#000000"
593 fill "#FFFFFF"
594 fontSize 16
595 fontName "Monospace"
596 autoSizePolicy "node_width"
597 anchor "t"
598 borderDistance 0.0
599 ]
600 LabelGraphics
601 [
602 text "
603 CommSubsystem class
604 UHFCommSubsystem class
605 CommSubsystem class UndefinedPart
606 "
607 fontSize 14
608 fontName "Consolas"
609 alignment "left"
610 anchor "tl"
611 borderDistance 6
612 ]
613 ]
614
615 node
616 [
617 id 16
618 graphics
619 [
620 w 269.5
621 h 68
622 type "rectangle"
623 fill "#FFFFFF"
624 fill2 "#FFFFFF"
625 outline "#000000"
626 ]
627 LabelGraphics
628 [
629 text "null"
630 outline "#000000"
631 fill "#FFFFFF"
632 fontSize 16
633 fontName "Monospace"
634 autoSizePolicy "node_width"
635 anchor "t"
636 borderDistance 0.0
637 ]
638 LabelGraphics
639 [
640 text "
641 CommSubsystem class
642 UHFCommSubsystem class
643 CommSubsystem class UndefinedPart
644 "
645 fontSize 14
646 fontName "Consolas"
647 alignment "left"
648 anchor "tl"
649 borderDistance 6
650 ]
651 ]
652
653 node
654 [
655 id 17
656 graphics
657 [
658 w 223.3
659 h 54
660 type "rectangle"
661 fill "#FFFFFF"
662 fill2 "#FFFFFF"
663 outline "#000000"
664 ]
665 LabelGraphics
666 [
667 text "null"
668 outline "#000000"
669 fill "#FFFFFF"
670 fontSize 16
671 fontName "Monospace"
672 autoSizePolicy "node_width"
673 anchor "t"
674 borderDistance 0.0
675 ]
676 LabelGraphics
677 [
678 text "
679 Payload class
680 InterferometryPayload class
681 "
682 fontSize 14
683 fontName "Consolas"
684 alignment "left"
685 anchor "tl"
686 borderDistance 6
687 ]
688 ]
689
690 node
691 [
692 id 18
693 graphics
694 [
695 w 323.40000000000003
696 h 82
697 type "rectangle"
698 fill "#FFFFFF"
699 fill2 "#FFFFFF"
700 outline "#000000"
701 ]
702 LabelGraphics
703 [
704 text "null"
705 outline "#000000"
706 fill "#FFFFFF"
707 fontSize 16
708 fontName "Monospace"
709 autoSizePolicy "node_width"
710 anchor "t"
711 borderDistance 0.0
712 ]
713 LabelGraphics
714 [
715 text "
716 CommunicatingElement class
717 Spacecraft class
718 SmallSat class
719 CommunicatingElement class UndefinedPart
720 "
721 fontSize 14
722 fontName "Consolas"
723 alignment "left"
724 anchor "tl"
725 borderDistance 6
726 ]
727 ]
728
729 node
730 [
731 id 19
732 graphics
733 [
734 w 277.20000000000005
735 h 82
736 type "rectangle"
737 fill "#FFFFFF"
738 fill2 "#FFFFFF"
739 outline "#000000"
740 ]
741 LabelGraphics
742 [
743 text "null"
744 outline "#000000"
745 fill "#FFFFFF"
746 fontSize 16
747 fontName "Monospace"
748 autoSizePolicy "node_width"
749 anchor "t"
750 borderDistance 0.0
751 ]
752 LabelGraphics
753 [
754 text "
755 CommSubsystem class
756 XCommSubsystem class
757 CommSubsystem class UndefinedPart
758 XCommSubsystem class UndefinedPart
759 "
760 fontSize 14
761 fontName "Consolas"
762 alignment "left"
763 anchor "tl"
764 borderDistance 6
765 ]
766 ]
767
768 node
769 [
770 id 20
771 graphics
772 [
773 w 284.90000000000003
774 h 82
775 type "rectangle"
776 fill "#FFFFFF"
777 fill2 "#FFFFFF"
778 outline "#000000"
779 ]
780 LabelGraphics
781 [
782 text "null"
783 outline "#000000"
784 fill "#FFFFFF"
785 fontSize 16
786 fontName "Monospace"
787 autoSizePolicy "node_width"
788 anchor "t"
789 borderDistance 0.0
790 ]
791 LabelGraphics
792 [
793 text "
794 CommSubsystem class
795 KaCommSubsystem class
796 CommSubsystem class UndefinedPart
797 KaCommSubsystem class UndefinedPart
798 "
799 fontSize 14
800 fontName "Consolas"
801 alignment "left"
802 anchor "tl"
803 borderDistance 6
804 ]
805 ]
806
807 node
808 [
809 id 21
810 graphics
811 [
812 w 223.3
813 h 54
814 type "rectangle"
815 fill "#FFFFFF"
816 fill2 "#FFFFFF"
817 outline "#000000"
818 ]
819 LabelGraphics
820 [
821 text "null"
822 outline "#000000"
823 fill "#FFFFFF"
824 fontSize 16
825 fontName "Monospace"
826 autoSizePolicy "node_width"
827 anchor "t"
828 borderDistance 0.0
829 ]
830 LabelGraphics
831 [
832 text "
833 Payload class
834 InterferometryPayload class
835 "
836 fontSize 14
837 fontName "Consolas"
838 alignment "left"
839 anchor "tl"
840 borderDistance 6
841 ]
842 ]
843
844 node
845 [
846 id 22
847 graphics
848 [
849 w 323.40000000000003
850 h 82
851 type "rectangle"
852 fill "#FFFFFF"
853 fill2 "#FFFFFF"
854 outline "#000000"
855 ]
856 LabelGraphics
857 [
858 text "null"
859 outline "#000000"
860 fill "#FFFFFF"
861 fontSize 16
862 fontName "Monospace"
863 autoSizePolicy "node_width"
864 anchor "t"
865 borderDistance 0.0
866 ]
867 LabelGraphics
868 [
869 text "
870 CommunicatingElement class
871 Spacecraft class
872 SmallSat class
873 CommunicatingElement class UndefinedPart
874 "
875 fontSize 14
876 fontName "Consolas"
877 alignment "left"
878 anchor "tl"
879 borderDistance 6
880 ]
881 ]
882
883 node
884 [
885 id 23
886 graphics
887 [
888 w 277.20000000000005
889 h 82
890 type "rectangle"
891 fill "#FFFFFF"
892 fill2 "#FFFFFF"
893 outline "#000000"
894 ]
895 LabelGraphics
896 [
897 text "null"
898 outline "#000000"
899 fill "#FFFFFF"
900 fontSize 16
901 fontName "Monospace"
902 autoSizePolicy "node_width"
903 anchor "t"
904 borderDistance 0.0
905 ]
906 LabelGraphics
907 [
908 text "
909 CommSubsystem class
910 XCommSubsystem class
911 CommSubsystem class UndefinedPart
912 XCommSubsystem class UndefinedPart
913 "
914 fontSize 14
915 fontName "Consolas"
916 alignment "left"
917 anchor "tl"
918 borderDistance 6
919 ]
920 ]
921
922 node
923 [
924 id 24
925 graphics
926 [
927 w 269.5
928 h 68
929 type "rectangle"
930 fill "#FFFFFF"
931 fill2 "#FFFFFF"
932 outline "#000000"
933 ]
934 LabelGraphics
935 [
936 text "null"
937 outline "#000000"
938 fill "#FFFFFF"
939 fontSize 16
940 fontName "Monospace"
941 autoSizePolicy "node_width"
942 anchor "t"
943 borderDistance 0.0
944 ]
945 LabelGraphics
946 [
947 text "
948 CommSubsystem class
949 UHFCommSubsystem class
950 CommSubsystem class UndefinedPart
951 "
952 fontSize 14
953 fontName "Consolas"
954 alignment "left"
955 anchor "tl"
956 borderDistance 6
957 ]
958 ]
959
960 node
961 [
962 id 25
963 graphics
964 [
965 w 223.3
966 h 54
967 type "rectangle"
968 fill "#FFFFFF"
969 fill2 "#FFFFFF"
970 outline "#000000"
971 ]
972 LabelGraphics
973 [
974 text "null"
975 outline "#000000"
976 fill "#FFFFFF"
977 fontSize 16
978 fontName "Monospace"
979 autoSizePolicy "node_width"
980 anchor "t"
981 borderDistance 0.0
982 ]
983 LabelGraphics
984 [
985 text "
986 Payload class
987 InterferometryPayload class
988 "
989 fontSize 14
990 fontName "Consolas"
991 alignment "left"
992 anchor "tl"
993 borderDistance 6
994 ]
995 ]
996
997 node
998 [
999 id 26
1000 graphics
1001 [
1002 w 323.40000000000003
1003 h 96
1004 type "rectangle"
1005 fill "#FFFFFF"
1006 fill2 "#FFFFFF"
1007 outline "#000000"
1008 ]
1009 LabelGraphics
1010 [
1011 text "null"
1012 outline "#000000"
1013 fill "#FFFFFF"
1014 fontSize 16
1015 fontName "Monospace"
1016 autoSizePolicy "node_width"
1017 anchor "t"
1018 borderDistance 0.0
1019 ]
1020 LabelGraphics
1021 [
1022 text "
1023 CommunicatingElement class
1024 Spacecraft class
1025 CubeSat3U class
1026 CubeSat class
1027 CommunicatingElement class UndefinedPart
1028 "
1029 fontSize 14
1030 fontName "Consolas"
1031 alignment "left"
1032 anchor "tl"
1033 borderDistance 6
1034 ]
1035 ]
1036
1037 node
1038 [
1039 id 27
1040 graphics
1041 [
1042 w 277.20000000000005
1043 h 82
1044 type "rectangle"
1045 fill "#FFFFFF"
1046 fill2 "#FFFFFF"
1047 outline "#000000"
1048 ]
1049 LabelGraphics
1050 [
1051 text "null"
1052 outline "#000000"
1053 fill "#FFFFFF"
1054 fontSize 16
1055 fontName "Monospace"
1056 autoSizePolicy "node_width"
1057 anchor "t"
1058 borderDistance 0.0
1059 ]
1060 LabelGraphics
1061 [
1062 text "
1063 CommSubsystem class
1064 XCommSubsystem class
1065 CommSubsystem class UndefinedPart
1066 XCommSubsystem class UndefinedPart
1067 "
1068 fontSize 14
1069 fontName "Consolas"
1070 alignment "left"
1071 anchor "tl"
1072 borderDistance 6
1073 ]
1074 ]
1075
1076 node
1077 [
1078 id 28
1079 graphics
1080 [
1081 w 277.20000000000005
1082 h 82
1083 type "rectangle"
1084 fill "#FFFFFF"
1085 fill2 "#FFFFFF"
1086 outline "#000000"
1087 ]
1088 LabelGraphics
1089 [
1090 text "null"
1091 outline "#000000"
1092 fill "#FFFFFF"
1093 fontSize 16
1094 fontName "Monospace"
1095 autoSizePolicy "node_width"
1096 anchor "t"
1097 borderDistance 0.0
1098 ]
1099 LabelGraphics
1100 [
1101 text "
1102 CommSubsystem class
1103 XCommSubsystem class
1104 CommSubsystem class UndefinedPart
1105 XCommSubsystem class UndefinedPart
1106 "
1107 fontSize 14
1108 fontName "Consolas"
1109 alignment "left"
1110 anchor "tl"
1111 borderDistance 6
1112 ]
1113 ]
1114
1115 node
1116 [
1117 id 29
1118 graphics
1119 [
1120 w 223.3
1121 h 54
1122 type "rectangle"
1123 fill "#FFFFFF"
1124 fill2 "#FFFFFF"
1125 outline "#000000"
1126 ]
1127 LabelGraphics
1128 [
1129 text "null"
1130 outline "#000000"
1131 fill "#FFFFFF"
1132 fontSize 16
1133 fontName "Monospace"
1134 autoSizePolicy "node_width"
1135 anchor "t"
1136 borderDistance 0.0
1137 ]
1138 LabelGraphics
1139 [
1140 text "
1141 Payload class
1142 InterferometryPayload class
1143 "
1144 fontSize 14
1145 fontName "Consolas"
1146 alignment "left"
1147 anchor "tl"
1148 borderDistance 6
1149 ]
1150 ]
1151
1152 node
1153 [
1154 id 30
1155 graphics
1156 [
1157 w 323.40000000000003
1158 h 96
1159 type "rectangle"
1160 fill "#FFFFFF"
1161 fill2 "#FFFFFF"
1162 outline "#000000"
1163 ]
1164 LabelGraphics
1165 [
1166 text "null"
1167 outline "#000000"
1168 fill "#FFFFFF"
1169 fontSize 16
1170 fontName "Monospace"
1171 autoSizePolicy "node_width"
1172 anchor "t"
1173 borderDistance 0.0
1174 ]
1175 LabelGraphics
1176 [
1177 text "
1178 CommunicatingElement class
1179 Spacecraft class
1180 CubeSat6U class
1181 CubeSat class
1182 CommunicatingElement class UndefinedPart
1183 "
1184 fontSize 14
1185 fontName "Consolas"
1186 alignment "left"
1187 anchor "tl"
1188 borderDistance 6
1189 ]
1190 ]
1191
1192 node
1193 [
1194 id 31
1195 graphics
1196 [
1197 w 269.5
1198 h 68
1199 type "rectangle"
1200 fill "#FFFFFF"
1201 fill2 "#FFFFFF"
1202 outline "#000000"
1203 ]
1204 LabelGraphics
1205 [
1206 text "null"
1207 outline "#000000"
1208 fill "#FFFFFF"
1209 fontSize 16
1210 fontName "Monospace"
1211 autoSizePolicy "node_width"
1212 anchor "t"
1213 borderDistance 0.0
1214 ]
1215 LabelGraphics
1216 [
1217 text "
1218 CommSubsystem class
1219 UHFCommSubsystem class
1220 CommSubsystem class UndefinedPart
1221 "
1222 fontSize 14
1223 fontName "Consolas"
1224 alignment "left"
1225 anchor "tl"
1226 borderDistance 6
1227 ]
1228 ]
1229
1230 node
1231 [
1232 id 32
1233 graphics
1234 [
1235 w 277.20000000000005
1236 h 82
1237 type "rectangle"
1238 fill "#FFFFFF"
1239 fill2 "#FFFFFF"
1240 outline "#000000"
1241 ]
1242 LabelGraphics
1243 [
1244 text "null"
1245 outline "#000000"
1246 fill "#FFFFFF"
1247 fontSize 16
1248 fontName "Monospace"
1249 autoSizePolicy "node_width"
1250 anchor "t"
1251 borderDistance 0.0
1252 ]
1253 LabelGraphics
1254 [
1255 text "
1256 CommSubsystem class
1257 XCommSubsystem class
1258 CommSubsystem class UndefinedPart
1259 XCommSubsystem class UndefinedPart
1260 "
1261 fontSize 14
1262 fontName "Consolas"
1263 alignment "left"
1264 anchor "tl"
1265 borderDistance 6
1266 ]
1267 ]
1268
1269 node
1270 [
1271 id 33
1272 graphics
1273 [
1274 w 223.3
1275 h 54
1276 type "rectangle"
1277 fill "#FFFFFF"
1278 fill2 "#FFFFFF"
1279 outline "#000000"
1280 ]
1281 LabelGraphics
1282 [
1283 text "null"
1284 outline "#000000"
1285 fill "#FFFFFF"
1286 fontSize 16
1287 fontName "Monospace"
1288 autoSizePolicy "node_width"
1289 anchor "t"
1290 borderDistance 0.0
1291 ]
1292 LabelGraphics
1293 [
1294 text "
1295 Payload class
1296 InterferometryPayload class
1297 "
1298 fontSize 14
1299 fontName "Consolas"
1300 alignment "left"
1301 anchor "tl"
1302 borderDistance 6
1303 ]
1304 ]
1305
1306 node
1307 [
1308 id 34
1309 graphics
1310 [
1311 w 323.40000000000003
1312 h 82
1313 type "rectangle"
1314 fill "#FFFFFF"
1315 fill2 "#FFFFFF"
1316 outline "#000000"
1317 ]
1318 LabelGraphics
1319 [
1320 text "null"
1321 outline "#000000"
1322 fill "#FFFFFF"
1323 fontSize 16
1324 fontName "Monospace"
1325 autoSizePolicy "node_width"
1326 anchor "t"
1327 borderDistance 0.0
1328 ]
1329 LabelGraphics
1330 [
1331 text "
1332 CommunicatingElement class
1333 Spacecraft class
1334 SmallSat class
1335 CommunicatingElement class UndefinedPart
1336 "
1337 fontSize 14
1338 fontName "Consolas"
1339 alignment "left"
1340 anchor "tl"
1341 borderDistance 6
1342 ]
1343 ]
1344
1345 node
1346 [
1347 id 35
1348 graphics
1349 [
1350 w 277.20000000000005
1351 h 82
1352 type "rectangle"
1353 fill "#FFFFFF"
1354 fill2 "#FFFFFF"
1355 outline "#000000"
1356 ]
1357 LabelGraphics
1358 [
1359 text "null"
1360 outline "#000000"
1361 fill "#FFFFFF"
1362 fontSize 16
1363 fontName "Monospace"
1364 autoSizePolicy "node_width"
1365 anchor "t"
1366 borderDistance 0.0
1367 ]
1368 LabelGraphics
1369 [
1370 text "
1371 CommSubsystem class
1372 XCommSubsystem class
1373 CommSubsystem class UndefinedPart
1374 XCommSubsystem class UndefinedPart
1375 "
1376 fontSize 14
1377 fontName "Consolas"
1378 alignment "left"
1379 anchor "tl"
1380 borderDistance 6
1381 ]
1382 ]
1383
1384 node
1385 [
1386 id 36
1387 graphics
1388 [
1389 w 223.3
1390 h 54
1391 type "rectangle"
1392 fill "#FFFFFF"
1393 fill2 "#FFFFFF"
1394 outline "#000000"
1395 ]
1396 LabelGraphics
1397 [
1398 text "null"
1399 outline "#000000"
1400 fill "#FFFFFF"
1401 fontSize 16
1402 fontName "Monospace"
1403 autoSizePolicy "node_width"
1404 anchor "t"
1405 borderDistance 0.0
1406 ]
1407 LabelGraphics
1408 [
1409 text "
1410 Payload class
1411 InterferometryPayload class
1412 "
1413 fontSize 14
1414 fontName "Consolas"
1415 alignment "left"
1416 anchor "tl"
1417 borderDistance 6
1418 ]
1419 ]
1420
1421 node
1422 [
1423 id 37
1424 graphics
1425 [
1426 w 284.90000000000003
1427 h 82
1428 type "rectangle"
1429 fill "#FFFFFF"
1430 fill2 "#FFFFFF"
1431 outline "#000000"
1432 ]
1433 LabelGraphics
1434 [
1435 text "null"
1436 outline "#000000"
1437 fill "#FFFFFF"
1438 fontSize 16
1439 fontName "Monospace"
1440 autoSizePolicy "node_width"
1441 anchor "t"
1442 borderDistance 0.0
1443 ]
1444 LabelGraphics
1445 [
1446 text "
1447 CommSubsystem class
1448 KaCommSubsystem class
1449 CommSubsystem class UndefinedPart
1450 KaCommSubsystem class UndefinedPart
1451 "
1452 fontSize 14
1453 fontName "Consolas"
1454 alignment "left"
1455 anchor "tl"
1456 borderDistance 6
1457 ]
1458 ]
1459
1460 node
1461 [
1462 id 38
1463 graphics
1464 [
1465 w 112.2
1466 h 26
1467 type "rectangle"
1468 fill "#FFFFFF"
1469 fill2 "#FFFFFF"
1470 outline "#000000"
1471 ]
1472 LabelGraphics
1473 [
1474 text "New Integers"
1475 outline "#000000"
1476 fill "#FFFFFF"
1477 fontSize 16
1478 fontName "Monospace"
1479 autoSizePolicy "node_width"
1480 anchor "t"
1481 borderDistance 0.0
1482 ]
1483 LabelGraphics
1484 [
1485 text "
1486 "
1487 fontSize 14
1488 fontName "Consolas"
1489 alignment "left"
1490 anchor "tl"
1491 borderDistance 6
1492 ]
1493 ]
1494
1495 node
1496 [
1497 id 39
1498 graphics
1499 [
1500 w 85.80000000000001
1501 h 26
1502 type "rectangle"
1503 fill "#FFFFFF"
1504 fill2 "#FFFFFF"
1505 outline "#000000"
1506 ]
1507 LabelGraphics
1508 [
1509 text "New Reals"
1510 outline "#000000"
1511 fill "#FFFFFF"
1512 fontSize 16
1513 fontName "Monospace"
1514 autoSizePolicy "node_width"
1515 anchor "t"
1516 borderDistance 0.0
1517 ]
1518 LabelGraphics
1519 [
1520 text "
1521 "
1522 fontSize 14
1523 fontName "Consolas"
1524 alignment "left"
1525 anchor "tl"
1526 borderDistance 6
1527 ]
1528 ]
1529
1530 node
1531 [
1532 id 40
1533 graphics
1534 [
1535 w 103.4
1536 h 26
1537 type "rectangle"
1538 fill "#FFFFFF"
1539 fill2 "#FFFFFF"
1540 outline "#000000"
1541 ]
1542 LabelGraphics
1543 [
1544 text "New Strings"
1545 outline "#000000"
1546 fill "#FFFFFF"
1547 fontSize 16
1548 fontName "Monospace"
1549 autoSizePolicy "node_width"
1550 anchor "t"
1551 borderDistance 0.0
1552 ]
1553 LabelGraphics
1554 [
1555 text "
1556 "
1557 fontSize 14
1558 fontName "Consolas"
1559 alignment "left"
1560 anchor "tl"
1561 borderDistance 6
1562 ]
1563 ]
1564
1565 node
1566 [
1567 id 41
1568 graphics
1569 [
1570 w 103.4
1571 h 26
1572 type "rectangle"
1573 fill "#FFFFFF"
1574 fill2 "#FFFFFF"
1575 outline "#000000"
1576 ]
1577 LabelGraphics
1578 [
1579 text "New Objects"
1580 outline "#000000"
1581 fill "#FFFFFF"
1582 fontSize 16
1583 fontName "Monospace"
1584 autoSizePolicy "node_width"
1585 anchor "t"
1586 borderDistance 0.0
1587 ]
1588 LabelGraphics
1589 [
1590 text "
1591 "
1592 fontSize 14
1593 fontName "Consolas"
1594 alignment "left"
1595 anchor "tl"
1596 borderDistance 6
1597 ]
1598 ]
1599 edge
1600 [
1601 source 0
1602 target 1
1603 graphics
1604 [
1605 fill "#000000"
1606 width 3
1607 targetArrow "standard"
1608 ]
1609 LabelGraphics
1610 [
1611 text "groundStationNetwork reference ConstellationMission"
1612 fontSize 14
1613 fontName "Consolas"
1614 configuration "AutoFlippingLabel"
1615 model "six_pos"
1616 position "thead"
1617 ]
1618 ]
1619 edge
1620 [
1621 source 0
1622 target 6
1623 graphics
1624 [
1625 fill "#000000"
1626 width 3
1627 targetArrow "standard"
1628 ]
1629 LabelGraphics
1630 [
1631 text "spacecraft reference ConstellationMission"
1632 fontSize 14
1633 fontName "Consolas"
1634 configuration "AutoFlippingLabel"
1635 model "six_pos"
1636 position "thead"
1637 ]
1638 ]
1639 edge
1640 [
1641 source 0
1642 target 10
1643 graphics
1644 [
1645 fill "#000000"
1646 width 3
1647 targetArrow "standard"
1648 ]
1649 LabelGraphics
1650 [
1651 text "spacecraft reference ConstellationMission"
1652 fontSize 14
1653 fontName "Consolas"
1654 configuration "AutoFlippingLabel"
1655 model "six_pos"
1656 position "thead"
1657 ]
1658 ]
1659 edge
1660 [
1661 source 0
1662 target 14
1663 graphics
1664 [
1665 fill "#000000"
1666 width 3
1667 targetArrow "standard"
1668 ]
1669 LabelGraphics
1670 [
1671 text "spacecraft reference ConstellationMission"
1672 fontSize 14
1673 fontName "Consolas"
1674 configuration "AutoFlippingLabel"
1675 model "six_pos"
1676 position "thead"
1677 ]
1678 ]
1679 edge
1680 [
1681 source 0
1682 target 18
1683 graphics
1684 [
1685 fill "#000000"
1686 width 3
1687 targetArrow "standard"
1688 ]
1689 LabelGraphics
1690 [
1691 text "spacecraft reference ConstellationMission"
1692 fontSize 14
1693 fontName "Consolas"
1694 configuration "AutoFlippingLabel"
1695 model "six_pos"
1696 position "thead"
1697 ]
1698 ]
1699 edge
1700 [
1701 source 0
1702 target 22
1703 graphics
1704 [
1705 fill "#000000"
1706 width 3
1707 targetArrow "standard"
1708 ]
1709 LabelGraphics
1710 [
1711 text "spacecraft reference ConstellationMission"
1712 fontSize 14
1713 fontName "Consolas"
1714 configuration "AutoFlippingLabel"
1715 model "six_pos"
1716 position "thead"
1717 ]
1718 ]
1719 edge
1720 [
1721 source 0
1722 target 26
1723 graphics
1724 [
1725 fill "#000000"
1726 width 3
1727 targetArrow "standard"
1728 ]
1729 LabelGraphics
1730 [
1731 text "spacecraft reference ConstellationMission"
1732 fontSize 14
1733 fontName "Consolas"
1734 configuration "AutoFlippingLabel"
1735 model "six_pos"
1736 position "thead"
1737 ]
1738 ]
1739 edge
1740 [
1741 source 0
1742 target 30
1743 graphics
1744 [
1745 fill "#000000"
1746 width 3
1747 targetArrow "standard"
1748 ]
1749 LabelGraphics
1750 [
1751 text "spacecraft reference ConstellationMission"
1752 fontSize 14
1753 fontName "Consolas"
1754 configuration "AutoFlippingLabel"
1755 model "six_pos"
1756 position "thead"
1757 ]
1758 ]
1759 edge
1760 [
1761 source 0
1762 target 34
1763 graphics
1764 [
1765 fill "#000000"
1766 width 3
1767 targetArrow "standard"
1768 ]
1769 LabelGraphics
1770 [
1771 text "spacecraft reference ConstellationMission"
1772 fontSize 14
1773 fontName "Consolas"
1774 configuration "AutoFlippingLabel"
1775 model "six_pos"
1776 position "thead"
1777 ]
1778 ]
1779 edge
1780 [
1781 source 1
1782 target 2
1783 graphics
1784 [
1785 fill "#000000"
1786 width 3
1787 targetArrow "standard"
1788 ]
1789 LabelGraphics
1790 [
1791 text "commSubsystem reference CommunicatingElement"
1792 fontSize 14
1793 fontName "Consolas"
1794 configuration "AutoFlippingLabel"
1795 model "six_pos"
1796 position "thead"
1797 ]
1798 ]
1799 edge
1800 [
1801 source 1
1802 target 3
1803 graphics
1804 [
1805 fill "#000000"
1806 width 3
1807 targetArrow "standard"
1808 ]
1809 LabelGraphics
1810 [
1811 text "commSubsystem reference CommunicatingElement"
1812 fontSize 14
1813 fontName "Consolas"
1814 configuration "AutoFlippingLabel"
1815 model "six_pos"
1816 position "thead"
1817 ]
1818 ]
1819 edge
1820 [
1821 source 6
1822 target 7
1823 graphics
1824 [
1825 fill "#000000"
1826 width 3
1827 targetArrow "standard"
1828 ]
1829 LabelGraphics
1830 [
1831 text "commSubsystem reference CommunicatingElement"
1832 fontSize 14
1833 fontName "Consolas"
1834 configuration "AutoFlippingLabel"
1835 model "six_pos"
1836 position "thead"
1837 ]
1838 ]
1839 edge
1840 [
1841 source 6
1842 target 9
1843 graphics
1844 [
1845 fill "#000000"
1846 width 3
1847 targetArrow "standard"
1848 ]
1849 LabelGraphics
1850 [
1851 text "commSubsystem reference CommunicatingElement"
1852 fontSize 14
1853 fontName "Consolas"
1854 configuration "AutoFlippingLabel"
1855 model "six_pos"
1856 position "thead"
1857 ]
1858 ]
1859 edge
1860 [
1861 source 10
1862 target 11
1863 graphics
1864 [
1865 fill "#000000"
1866 width 3
1867 targetArrow "standard"
1868 ]
1869 LabelGraphics
1870 [
1871 text "commSubsystem reference CommunicatingElement"
1872 fontSize 14
1873 fontName "Consolas"
1874 configuration "AutoFlippingLabel"
1875 model "six_pos"
1876 position "thead"
1877 ]
1878 ]
1879 edge
1880 [
1881 source 10
1882 target 12
1883 graphics
1884 [
1885 fill "#000000"
1886 width 3
1887 targetArrow "standard"
1888 ]
1889 LabelGraphics
1890 [
1891 text "commSubsystem reference CommunicatingElement"
1892 fontSize 14
1893 fontName "Consolas"
1894 configuration "AutoFlippingLabel"
1895 model "six_pos"
1896 position "thead"
1897 ]
1898 ]
1899 edge
1900 [
1901 source 14
1902 target 15
1903 graphics
1904 [
1905 fill "#000000"
1906 width 3
1907 targetArrow "standard"
1908 ]
1909 LabelGraphics
1910 [
1911 text "commSubsystem reference CommunicatingElement"
1912 fontSize 14
1913 fontName "Consolas"
1914 configuration "AutoFlippingLabel"
1915 model "six_pos"
1916 position "thead"
1917 ]
1918 ]
1919 edge
1920 [
1921 source 14
1922 target 16
1923 graphics
1924 [
1925 fill "#000000"
1926 width 3
1927 targetArrow "standard"
1928 ]
1929 LabelGraphics
1930 [
1931 text "commSubsystem reference CommunicatingElement"
1932 fontSize 14
1933 fontName "Consolas"
1934 configuration "AutoFlippingLabel"
1935 model "six_pos"
1936 position "thead"
1937 ]
1938 ]
1939 edge
1940 [
1941 source 18
1942 target 19
1943 graphics
1944 [
1945 fill "#000000"
1946 width 3
1947 targetArrow "standard"
1948 ]
1949 LabelGraphics
1950 [
1951 text "commSubsystem reference CommunicatingElement"
1952 fontSize 14
1953 fontName "Consolas"
1954 configuration "AutoFlippingLabel"
1955 model "six_pos"
1956 position "thead"
1957 ]
1958 ]
1959 edge
1960 [
1961 source 18
1962 target 20
1963 graphics
1964 [
1965 fill "#000000"
1966 width 3
1967 targetArrow "standard"
1968 ]
1969 LabelGraphics
1970 [
1971 text "commSubsystem reference CommunicatingElement"
1972 fontSize 14
1973 fontName "Consolas"
1974 configuration "AutoFlippingLabel"
1975 model "six_pos"
1976 position "thead"
1977 ]
1978 ]
1979 edge
1980 [
1981 source 22
1982 target 23
1983 graphics
1984 [
1985 fill "#000000"
1986 width 3
1987 targetArrow "standard"
1988 ]
1989 LabelGraphics
1990 [
1991 text "commSubsystem reference CommunicatingElement"
1992 fontSize 14
1993 fontName "Consolas"
1994 configuration "AutoFlippingLabel"
1995 model "six_pos"
1996 position "thead"
1997 ]
1998 ]
1999 edge
2000 [
2001 source 22
2002 target 24
2003 graphics
2004 [
2005 fill "#000000"
2006 width 3
2007 targetArrow "standard"
2008 ]
2009 LabelGraphics
2010 [
2011 text "commSubsystem reference CommunicatingElement"
2012 fontSize 14
2013 fontName "Consolas"
2014 configuration "AutoFlippingLabel"
2015 model "six_pos"
2016 position "thead"
2017 ]
2018 ]
2019 edge
2020 [
2021 source 26
2022 target 27
2023 graphics
2024 [
2025 fill "#000000"
2026 width 3
2027 targetArrow "standard"
2028 ]
2029 LabelGraphics
2030 [
2031 text "commSubsystem reference CommunicatingElement"
2032 fontSize 14
2033 fontName "Consolas"
2034 configuration "AutoFlippingLabel"
2035 model "six_pos"
2036 position "thead"
2037 ]
2038 ]
2039 edge
2040 [
2041 source 26
2042 target 28
2043 graphics
2044 [
2045 fill "#000000"
2046 width 3
2047 targetArrow "standard"
2048 ]
2049 LabelGraphics
2050 [
2051 text "commSubsystem reference CommunicatingElement"
2052 fontSize 14
2053 fontName "Consolas"
2054 configuration "AutoFlippingLabel"
2055 model "six_pos"
2056 position "thead"
2057 ]
2058 ]
2059 edge
2060 [
2061 source 30
2062 target 31
2063 graphics
2064 [
2065 fill "#000000"
2066 width 3
2067 targetArrow "standard"
2068 ]
2069 LabelGraphics
2070 [
2071 text "commSubsystem reference CommunicatingElement"
2072 fontSize 14
2073 fontName "Consolas"
2074 configuration "AutoFlippingLabel"
2075 model "six_pos"
2076 position "thead"
2077 ]
2078 ]
2079 edge
2080 [
2081 source 30
2082 target 32
2083 graphics
2084 [
2085 fill "#000000"
2086 width 3
2087 targetArrow "standard"
2088 ]
2089 LabelGraphics
2090 [
2091 text "commSubsystem reference CommunicatingElement"
2092 fontSize 14
2093 fontName "Consolas"
2094 configuration "AutoFlippingLabel"
2095 model "six_pos"
2096 position "thead"
2097 ]
2098 ]
2099 edge
2100 [
2101 source 34
2102 target 35
2103 graphics
2104 [
2105 fill "#000000"
2106 width 3
2107 targetArrow "standard"
2108 ]
2109 LabelGraphics
2110 [
2111 text "commSubsystem reference CommunicatingElement"
2112 fontSize 14
2113 fontName "Consolas"
2114 configuration "AutoFlippingLabel"
2115 model "six_pos"
2116 position "thead"
2117 ]
2118 ]
2119 edge
2120 [
2121 source 34
2122 target 37
2123 graphics
2124 [
2125 fill "#000000"
2126 width 3
2127 targetArrow "standard"
2128 ]
2129 LabelGraphics
2130 [
2131 text "commSubsystem reference CommunicatingElement"
2132 fontSize 14
2133 fontName "Consolas"
2134 configuration "AutoFlippingLabel"
2135 model "six_pos"
2136 position "thead"
2137 ]
2138 ]
2139 edge
2140 [
2141 source 6
2142 target 8
2143 graphics
2144 [
2145 fill "#000000"
2146 width 3
2147 targetArrow "standard"
2148 ]
2149 LabelGraphics
2150 [
2151 text "payload reference Spacecraft"
2152 fontSize 14
2153 fontName "Consolas"
2154 configuration "AutoFlippingLabel"
2155 model "six_pos"
2156 position "thead"
2157 ]
2158 ]
2159 edge
2160 [
2161 source 10
2162 target 13
2163 graphics
2164 [
2165 fill "#000000"
2166 width 3
2167 targetArrow "standard"
2168 ]
2169 LabelGraphics
2170 [
2171 text "payload reference Spacecraft"
2172 fontSize 14
2173 fontName "Consolas"
2174 configuration "AutoFlippingLabel"
2175 model "six_pos"
2176 position "thead"
2177 ]
2178 ]
2179 edge
2180 [
2181 source 14
2182 target 17
2183 graphics
2184 [
2185 fill "#000000"
2186 width 3
2187 targetArrow "standard"
2188 ]
2189 LabelGraphics
2190 [
2191 text "payload reference Spacecraft"
2192 fontSize 14
2193 fontName "Consolas"
2194 configuration "AutoFlippingLabel"
2195 model "six_pos"
2196 position "thead"
2197 ]
2198 ]
2199 edge
2200 [
2201 source 18
2202 target 21
2203 graphics
2204 [
2205 fill "#000000"
2206 width 3
2207 targetArrow "standard"
2208 ]
2209 LabelGraphics
2210 [
2211 text "payload reference Spacecraft"
2212 fontSize 14
2213 fontName "Consolas"
2214 configuration "AutoFlippingLabel"
2215 model "six_pos"
2216 position "thead"
2217 ]
2218 ]
2219 edge
2220 [
2221 source 22
2222 target 25
2223 graphics
2224 [
2225 fill "#000000"
2226 width 3
2227 targetArrow "standard"
2228 ]
2229 LabelGraphics
2230 [
2231 text "payload reference Spacecraft"
2232 fontSize 14
2233 fontName "Consolas"
2234 configuration "AutoFlippingLabel"
2235 model "six_pos"
2236 position "thead"
2237 ]
2238 ]
2239 edge
2240 [
2241 source 26
2242 target 29
2243 graphics
2244 [
2245 fill "#000000"
2246 width 3
2247 targetArrow "standard"
2248 ]
2249 LabelGraphics
2250 [
2251 text "payload reference Spacecraft"
2252 fontSize 14
2253 fontName "Consolas"
2254 configuration "AutoFlippingLabel"
2255 model "six_pos"
2256 position "thead"
2257 ]
2258 ]
2259 edge
2260 [
2261 source 30
2262 target 33
2263 graphics
2264 [
2265 fill "#000000"
2266 width 3
2267 targetArrow "standard"
2268 ]
2269 LabelGraphics
2270 [
2271 text "payload reference Spacecraft"
2272 fontSize 14
2273 fontName "Consolas"
2274 configuration "AutoFlippingLabel"
2275 model "six_pos"
2276 position "thead"
2277 ]
2278 ]
2279 edge
2280 [
2281 source 34
2282 target 36
2283 graphics
2284 [
2285 fill "#000000"
2286 width 3
2287 targetArrow "standard"
2288 ]
2289 LabelGraphics
2290 [
2291 text "payload reference Spacecraft"
2292 fontSize 14
2293 fontName "Consolas"
2294 configuration "AutoFlippingLabel"
2295 model "six_pos"
2296 position "thead"
2297 ]
2298 ]
2299 edge
2300 [
2301 source 9
2302 target 2
2303 graphics
2304 [
2305 fill "#000000"
2306 targetArrow "standard"
2307 ]
2308 LabelGraphics
2309 [
2310 text "target reference CommSubsystem"
2311 fontSize 14
2312 fontName "Consolas"
2313 configuration "AutoFlippingLabel"
2314 model "six_pos"
2315 position "thead"
2316 ]
2317 ]
2318 edge
2319 [
2320 source 12
2321 target 9
2322 graphics
2323 [
2324 fill "#000000"
2325 targetArrow "standard"
2326 ]
2327 LabelGraphics
2328 [
2329 text "target reference CommSubsystem"
2330 fontSize 14
2331 fontName "Consolas"
2332 configuration "AutoFlippingLabel"
2333 model "six_pos"
2334 position "thead"
2335 ]
2336 ]
2337 edge
2338 [
2339 source 15
2340 target 7
2341 graphics
2342 [
2343 fill "#000000"
2344 targetArrow "standard"
2345 ]
2346 LabelGraphics
2347 [
2348 text "target reference CommSubsystem"
2349 fontSize 14
2350 fontName "Consolas"
2351 configuration "AutoFlippingLabel"
2352 model "six_pos"
2353 position "thead"
2354 ]
2355 ]
2356 edge
2357 [
2358 source 19
2359 target 12
2360 graphics
2361 [
2362 fill "#000000"
2363 targetArrow "standard"
2364 ]
2365 LabelGraphics
2366 [
2367 text "target reference CommSubsystem"
2368 fontSize 14
2369 fontName "Consolas"
2370 configuration "AutoFlippingLabel"
2371 model "six_pos"
2372 position "thead"
2373 ]
2374 ]
2375 edge
2376 [
2377 source 23
2378 target 9
2379 graphics
2380 [
2381 fill "#000000"
2382 targetArrow "standard"
2383 ]
2384 LabelGraphics
2385 [
2386 text "target reference CommSubsystem"
2387 fontSize 14
2388 fontName "Consolas"
2389 configuration "AutoFlippingLabel"
2390 model "six_pos"
2391 position "thead"
2392 ]
2393 ]
2394 edge
2395 [
2396 source 27
2397 target 2
2398 graphics
2399 [
2400 fill "#000000"
2401 targetArrow "standard"
2402 ]
2403 LabelGraphics
2404 [
2405 text "target reference CommSubsystem"
2406 fontSize 14
2407 fontName "Consolas"
2408 configuration "AutoFlippingLabel"
2409 model "six_pos"
2410 position "thead"
2411 ]
2412 ]
2413 edge
2414 [
2415 source 32
2416 target 9
2417 graphics
2418 [
2419 fill "#000000"
2420 targetArrow "standard"
2421 ]
2422 LabelGraphics
2423 [
2424 text "target reference CommSubsystem"
2425 fontSize 14
2426 fontName "Consolas"
2427 configuration "AutoFlippingLabel"
2428 model "six_pos"
2429 position "thead"
2430 ]
2431 ]
2432 edge
2433 [
2434 source 35
2435 target 9
2436 graphics
2437 [
2438 fill "#000000"
2439 targetArrow "standard"
2440 ]
2441 LabelGraphics
2442 [
2443 text "target reference CommSubsystem"
2444 fontSize 14
2445 fontName "Consolas"
2446 configuration "AutoFlippingLabel"
2447 model "six_pos"
2448 position "thead"
2449 ]
2450 ]
2451]
2452
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run4/4_1.png b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run4/4_1.png
deleted file mode 100644
index f39da70e..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run4/4_1.png
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run4/4_1.xmi b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run4/4_1.xmi
deleted file mode 100644
index 5f0af641..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/models/run4/4_1.xmi
+++ /dev/null
@@ -1,47 +0,0 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
5 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:SmallSat">
8 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.3/@commSubsystem.0"/>
9 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
10 <payload xsi:type="satellite:InterferometryPayload"/>
11 </spacecraft>
12 <spacecraft xsi:type="satellite:CubeSat3U">
13 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
14 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
15 <payload xsi:type="satellite:InterferometryPayload"/>
16 </spacecraft>
17 <spacecraft xsi:type="satellite:SmallSat">
18 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.3/@commSubsystem.0"/>
19 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
20 <payload xsi:type="satellite:InterferometryPayload"/>
21 </spacecraft>
22 <spacecraft xsi:type="satellite:CubeSat6U">
23 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
24 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
25 <payload xsi:type="satellite:InterferometryPayload"/>
26 </spacecraft>
27 <spacecraft xsi:type="satellite:CubeSat6U">
28 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.3/@commSubsystem.0"/>
29 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
30 <payload xsi:type="satellite:InterferometryPayload"/>
31 </spacecraft>
32 <spacecraft xsi:type="satellite:SmallSat">
33 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.3/@commSubsystem.0"/>
34 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
35 <payload xsi:type="satellite:InterferometryPayload"/>
36 </spacecraft>
37 <spacecraft xsi:type="satellite:SmallSat">
38 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
39 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.0/@commSubsystem.0"/>
40 <payload xsi:type="satellite:InterferometryPayload"/>
41 </spacecraft>
42 <spacecraft xsi:type="satellite:CubeSat3U">
43 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.3/@commSubsystem.1"/>
44 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
45 <payload xsi:type="satellite:InterferometryPayload"/>
46 </spacecraft>
47</satellite:InterferometryMission>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/plugin.xml b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/plugin.xml
index 8c9f4be1..a07867dc 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/plugin.xml
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/plugin.xml
@@ -7,6 +7,7 @@
7 <extension id="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SatelliteQueries" point="org.eclipse.viatra.query.runtime.queryspecification"> 7 <extension id="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SatelliteQueries" point="org.eclipse.viatra.query.runtime.queryspecification">
8 <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SatelliteQueries" id="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SatelliteQueries"> 8 <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SatelliteQueries" id="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SatelliteQueries">
9 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLinkDoesNotStartAtContainingElement"/> 9 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLinkDoesNotStartAtContainingElement"/>
10 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.transmittingGroundStationNetwork"/>
10 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.notEnoughInterferometryPayloads"/> 11 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.notEnoughInterferometryPayloads"/>
11 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noLinkToGroundStation"/> 12 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noLinkToGroundStation"/>
12 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noPotentialLinkToGroundStation"/> 13 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noPotentialLinkToGroundStation"/>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.CommunicationLinkOfElement.java._trace b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.CommunicationLinkOfElement.java._trace
deleted file mode 100644
index 8fb61263..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.CommunicationLinkOfElement.java._trace
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.MultipleCommunicationLinks.java._trace b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.MultipleCommunicationLinks.java._trace
deleted file mode 100644
index 64b692d3..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.MultipleCommunicationLinks.java._trace
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.gitignore b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.gitignore
deleted file mode 100644
index f6cfd36a..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/.gitignore
+++ /dev/null
@@ -1,43 +0,0 @@
1/.SatelliteQueries.java._trace
2/.NoLinkToGroundStation.java._trace
3/.CommunicationLoop.java._trace
4/.SingleInterferometryPayload.java._trace
5/.NoInterferometryPayload.java._trace
6/.NotENoughInterferometryPayloads.java._trace
7/.NotEnoughInterferometryPayloads.java._trace
8/.UhfAntennaGainNotLow.java._trace
9/.XAntennaGainNotMedium.java._trace
10/.KaAntennaGainLow.java._trace
11/.IncompatibleSourceAndTarget.java._trace
12/.IncompatibleSourceAndTargetBand.java._trace
13/.IncompatibleSourceAndTargetGain.java._trace
14/.CubeSatWithKaAntenna.java._trace
15/.ThreeUCubeSatWithNonUhfCrossLink.java._trace
16/.CommunicationLinkDoesNotStartAtContainingElement.java._trace
17/.SpacecraftWithInterferometryPayload.java._trace
18/.SatelliteMetrics.java._trace
19/.CoverageMetric.java._trace
20/.TimeMetric.java._trace
21/.CostMetric.java._trace
22/.SpacecraftCost.java._trace
23/.SpacecraftOfKind.java._trace
24/.NoPotentialLinkToGroundStation.java._trace
25/.SmallSat.java._trace
26/CommunicationLinkDoesNotStartAtContainingElement.java
27/CommunicationLoop.java
28/CostMetric.java
29/CoverageMetric.java
30/CubeSatWithKaAntenna.java
31/IncompatibleSourceAndTargetBand.java
32/IncompatibleSourceAndTargetGain.java
33/KaAntennaGainLow.java
34/NoLinkToGroundStation.java
35/NoPotentialLinkToGroundStation.java
36/NotEnoughInterferometryPayloads.java
37/SatelliteQueries.java
38/SmallSat.java
39/SpacecraftOfKind.java
40/ThreeUCubeSatWithNonUhfCrossLink.java
41/TimeMetric.java
42/UhfAntennaGainNotLow.java
43/XAntennaGainNotMedium.java
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CommunicationLinkDoesNotStartAtContainingElement.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CommunicationLinkDoesNotStartAtContainingElement.java
deleted file mode 100644
index a23cb415..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CommunicationLinkDoesNotStartAtContainingElement.java
+++ /dev/null
@@ -1,562 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries;
5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmittingCommSubsystem;
7import java.util.Arrays;
8import java.util.Collection;
9import java.util.LinkedHashSet;
10import java.util.List;
11import java.util.Objects;
12import java.util.Optional;
13import java.util.Set;
14import java.util.function.Consumer;
15import java.util.stream.Collectors;
16import java.util.stream.Stream;
17import org.apache.log4j.Logger;
18import org.eclipse.emf.ecore.EClass;
19import org.eclipse.viatra.query.runtime.api.IPatternMatch;
20import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
21import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
23import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
24import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
25import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
26import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
27import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
28import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
29import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
30import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation;
31import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference;
32import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
33import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Inequality;
34import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall;
35import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
36import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
37import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
38import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
39import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
40import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
41import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
42import satellite.CommunicatingElement;
43
44/**
45 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
46 *
47 * <p>Original source:
48 * <code><pre>
49 * {@literal @}Constraint(severity = "error", key = {Element},
50 * message = "A communicating element may not have two transmitting communication subsystems..")
51 * pattern communicationLinkDoesNotStartAtContainingElement(Element : CommunicatingElement) {
52 * find transmittingCommSubsystem(Element, Comm1);
53 * find transmittingCommSubsystem(Element, Comm2);
54 * Comm1 != Comm2;
55 * }
56 * </pre></code>
57 *
58 * @see Matcher
59 * @see Match
60 *
61 */
62@SuppressWarnings("all")
63public final class CommunicationLinkDoesNotStartAtContainingElement extends BaseGeneratedEMFQuerySpecification<CommunicationLinkDoesNotStartAtContainingElement.Matcher> {
64 /**
65 * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLinkDoesNotStartAtContainingElement pattern,
66 * to be used in conjunction with {@link Matcher}.
67 *
68 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
69 * Each instance is a (possibly partial) substitution of pattern parameters,
70 * usable to represent a match of the pattern in the result of a query,
71 * or to specify the bound (fixed) input parameters when issuing a query.
72 *
73 * @see Matcher
74 *
75 */
76 public static abstract class Match extends BasePatternMatch {
77 private CommunicatingElement fElement;
78
79 private static List<String> parameterNames = makeImmutableList("Element");
80
81 private Match(final CommunicatingElement pElement) {
82 this.fElement = pElement;
83 }
84
85 @Override
86 public Object get(final String parameterName) {
87 if ("Element".equals(parameterName)) return this.fElement;
88 return null;
89 }
90
91 public CommunicatingElement getElement() {
92 return this.fElement;
93 }
94
95 @Override
96 public boolean set(final String parameterName, final Object newValue) {
97 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
98 if ("Element".equals(parameterName) ) {
99 this.fElement = (CommunicatingElement) newValue;
100 return true;
101 }
102 return false;
103 }
104
105 public void setElement(final CommunicatingElement pElement) {
106 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
107 this.fElement = pElement;
108 }
109
110 @Override
111 public String patternName() {
112 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLinkDoesNotStartAtContainingElement";
113 }
114
115 @Override
116 public List<String> parameterNames() {
117 return CommunicationLinkDoesNotStartAtContainingElement.Match.parameterNames;
118 }
119
120 @Override
121 public Object[] toArray() {
122 return new Object[]{fElement};
123 }
124
125 @Override
126 public CommunicationLinkDoesNotStartAtContainingElement.Match toImmutable() {
127 return isMutable() ? newMatch(fElement) : this;
128 }
129
130 @Override
131 public String prettyPrint() {
132 StringBuilder result = new StringBuilder();
133 result.append("\"Element\"=" + prettyPrintValue(fElement));
134 return result.toString();
135 }
136
137 @Override
138 public int hashCode() {
139 return Objects.hash(fElement);
140 }
141
142 @Override
143 public boolean equals(final Object obj) {
144 if (this == obj)
145 return true;
146 if (obj == null) {
147 return false;
148 }
149 if ((obj instanceof CommunicationLinkDoesNotStartAtContainingElement.Match)) {
150 CommunicationLinkDoesNotStartAtContainingElement.Match other = (CommunicationLinkDoesNotStartAtContainingElement.Match) obj;
151 return Objects.equals(fElement, other.fElement);
152 } else {
153 // this should be infrequent
154 if (!(obj instanceof IPatternMatch)) {
155 return false;
156 }
157 IPatternMatch otherSig = (IPatternMatch) obj;
158 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
159 }
160 }
161
162 @Override
163 public CommunicationLinkDoesNotStartAtContainingElement specification() {
164 return CommunicationLinkDoesNotStartAtContainingElement.instance();
165 }
166
167 /**
168 * Returns an empty, mutable match.
169 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
170 *
171 * @return the empty match.
172 *
173 */
174 public static CommunicationLinkDoesNotStartAtContainingElement.Match newEmptyMatch() {
175 return new Mutable(null);
176 }
177
178 /**
179 * Returns a mutable (partial) match.
180 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
181 *
182 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
183 * @return the new, mutable (partial) match object.
184 *
185 */
186 public static CommunicationLinkDoesNotStartAtContainingElement.Match newMutableMatch(final CommunicatingElement pElement) {
187 return new Mutable(pElement);
188 }
189
190 /**
191 * Returns a new (partial) match.
192 * This can be used e.g. to call the matcher with a partial match.
193 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
194 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
195 * @return the (partial) match object.
196 *
197 */
198 public static CommunicationLinkDoesNotStartAtContainingElement.Match newMatch(final CommunicatingElement pElement) {
199 return new Immutable(pElement);
200 }
201
202 private static final class Mutable extends CommunicationLinkDoesNotStartAtContainingElement.Match {
203 Mutable(final CommunicatingElement pElement) {
204 super(pElement);
205 }
206
207 @Override
208 public boolean isMutable() {
209 return true;
210 }
211 }
212
213 private static final class Immutable extends CommunicationLinkDoesNotStartAtContainingElement.Match {
214 Immutable(final CommunicatingElement pElement) {
215 super(pElement);
216 }
217
218 @Override
219 public boolean isMutable() {
220 return false;
221 }
222 }
223 }
224
225 /**
226 * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLinkDoesNotStartAtContainingElement pattern,
227 * providing pattern-specific query methods.
228 *
229 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
230 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
231 *
232 * <p>Matches of the pattern will be represented as {@link Match}.
233 *
234 * <p>Original source:
235 * <code><pre>
236 * {@literal @}Constraint(severity = "error", key = {Element},
237 * message = "A communicating element may not have two transmitting communication subsystems..")
238 * pattern communicationLinkDoesNotStartAtContainingElement(Element : CommunicatingElement) {
239 * find transmittingCommSubsystem(Element, Comm1);
240 * find transmittingCommSubsystem(Element, Comm2);
241 * Comm1 != Comm2;
242 * }
243 * </pre></code>
244 *
245 * @see Match
246 * @see CommunicationLinkDoesNotStartAtContainingElement
247 *
248 */
249 public static class Matcher extends BaseMatcher<CommunicationLinkDoesNotStartAtContainingElement.Match> {
250 /**
251 * Initializes the pattern matcher within an existing VIATRA Query engine.
252 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
253 *
254 * @param engine the existing VIATRA Query engine in which this matcher will be created.
255 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
256 *
257 */
258 public static CommunicationLinkDoesNotStartAtContainingElement.Matcher on(final ViatraQueryEngine engine) {
259 // check if matcher already exists
260 Matcher matcher = engine.getExistingMatcher(querySpecification());
261 if (matcher == null) {
262 matcher = (Matcher)engine.getMatcher(querySpecification());
263 }
264 return matcher;
265 }
266
267 /**
268 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
269 * @return an initialized matcher
270 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
271 *
272 */
273 public static CommunicationLinkDoesNotStartAtContainingElement.Matcher create() {
274 return new Matcher();
275 }
276
277 private static final int POSITION_ELEMENT = 0;
278
279 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(CommunicationLinkDoesNotStartAtContainingElement.Matcher.class);
280
281 /**
282 * Initializes the pattern matcher within an existing VIATRA Query engine.
283 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
284 *
285 * @param engine the existing VIATRA Query engine in which this matcher will be created.
286 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
287 *
288 */
289 private Matcher() {
290 super(querySpecification());
291 }
292
293 /**
294 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
295 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
296 * @return matches represented as a Match object.
297 *
298 */
299 public Collection<CommunicationLinkDoesNotStartAtContainingElement.Match> getAllMatches(final CommunicatingElement pElement) {
300 return rawStreamAllMatches(new Object[]{pElement}).collect(Collectors.toSet());
301 }
302
303 /**
304 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
305 * </p>
306 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
307 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
308 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
309 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
310 * @return a stream of matches represented as a Match object.
311 *
312 */
313 public Stream<CommunicationLinkDoesNotStartAtContainingElement.Match> streamAllMatches(final CommunicatingElement pElement) {
314 return rawStreamAllMatches(new Object[]{pElement});
315 }
316
317 /**
318 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
319 * Neither determinism nor randomness of selection is guaranteed.
320 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
321 * @return a match represented as a Match object, or null if no match is found.
322 *
323 */
324 public Optional<CommunicationLinkDoesNotStartAtContainingElement.Match> getOneArbitraryMatch(final CommunicatingElement pElement) {
325 return rawGetOneArbitraryMatch(new Object[]{pElement});
326 }
327
328 /**
329 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
330 * under any possible substitution of the unspecified parameters (if any).
331 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
332 * @return true if the input is a valid (partial) match of the pattern.
333 *
334 */
335 public boolean hasMatch(final CommunicatingElement pElement) {
336 return rawHasMatch(new Object[]{pElement});
337 }
338
339 /**
340 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
341 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
342 * @return the number of pattern matches found.
343 *
344 */
345 public int countMatches(final CommunicatingElement pElement) {
346 return rawCountMatches(new Object[]{pElement});
347 }
348
349 /**
350 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
351 * Neither determinism nor randomness of selection is guaranteed.
352 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
353 * @param processor the action that will process the selected match.
354 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
355 *
356 */
357 public boolean forOneArbitraryMatch(final CommunicatingElement pElement, final Consumer<? super CommunicationLinkDoesNotStartAtContainingElement.Match> processor) {
358 return rawForOneArbitraryMatch(new Object[]{pElement}, processor);
359 }
360
361 /**
362 * Returns a new (partial) match.
363 * This can be used e.g. to call the matcher with a partial match.
364 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
365 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
366 * @return the (partial) match object.
367 *
368 */
369 public CommunicationLinkDoesNotStartAtContainingElement.Match newMatch(final CommunicatingElement pElement) {
370 return CommunicationLinkDoesNotStartAtContainingElement.Match.newMatch(pElement);
371 }
372
373 /**
374 * Retrieve the set of values that occur in matches for Element.
375 * @return the Set of all values or empty set if there are no matches
376 *
377 */
378 protected Stream<CommunicatingElement> rawStreamAllValuesOfElement(final Object[] parameters) {
379 return rawStreamAllValues(POSITION_ELEMENT, parameters).map(CommunicatingElement.class::cast);
380 }
381
382 /**
383 * Retrieve the set of values that occur in matches for Element.
384 * @return the Set of all values or empty set if there are no matches
385 *
386 */
387 public Set<CommunicatingElement> getAllValuesOfElement() {
388 return rawStreamAllValuesOfElement(emptyArray()).collect(Collectors.toSet());
389 }
390
391 /**
392 * Retrieve the set of values that occur in matches for Element.
393 * @return the Set of all values or empty set if there are no matches
394 *
395 */
396 public Stream<CommunicatingElement> streamAllValuesOfElement() {
397 return rawStreamAllValuesOfElement(emptyArray());
398 }
399
400 @Override
401 protected CommunicationLinkDoesNotStartAtContainingElement.Match tupleToMatch(final Tuple t) {
402 try {
403 return CommunicationLinkDoesNotStartAtContainingElement.Match.newMatch((CommunicatingElement) t.get(POSITION_ELEMENT));
404 } catch(ClassCastException e) {
405 LOGGER.error("Element(s) in tuple not properly typed!",e);
406 return null;
407 }
408 }
409
410 @Override
411 protected CommunicationLinkDoesNotStartAtContainingElement.Match arrayToMatch(final Object[] match) {
412 try {
413 return CommunicationLinkDoesNotStartAtContainingElement.Match.newMatch((CommunicatingElement) match[POSITION_ELEMENT]);
414 } catch(ClassCastException e) {
415 LOGGER.error("Element(s) in array not properly typed!",e);
416 return null;
417 }
418 }
419
420 @Override
421 protected CommunicationLinkDoesNotStartAtContainingElement.Match arrayToMatchMutable(final Object[] match) {
422 try {
423 return CommunicationLinkDoesNotStartAtContainingElement.Match.newMutableMatch((CommunicatingElement) match[POSITION_ELEMENT]);
424 } catch(ClassCastException e) {
425 LOGGER.error("Element(s) in array not properly typed!",e);
426 return null;
427 }
428 }
429
430 /**
431 * @return the singleton instance of the query specification of this pattern
432 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
433 *
434 */
435 public static IQuerySpecification<CommunicationLinkDoesNotStartAtContainingElement.Matcher> querySpecification() {
436 return CommunicationLinkDoesNotStartAtContainingElement.instance();
437 }
438 }
439
440 private CommunicationLinkDoesNotStartAtContainingElement() {
441 super(GeneratedPQuery.INSTANCE);
442 }
443
444 /**
445 * @return the singleton instance of the query specification
446 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
447 *
448 */
449 public static CommunicationLinkDoesNotStartAtContainingElement instance() {
450 try{
451 return LazyHolder.INSTANCE;
452 } catch (ExceptionInInitializerError err) {
453 throw processInitializerError(err);
454 }
455 }
456
457 @Override
458 protected CommunicationLinkDoesNotStartAtContainingElement.Matcher instantiate(final ViatraQueryEngine engine) {
459 return CommunicationLinkDoesNotStartAtContainingElement.Matcher.on(engine);
460 }
461
462 @Override
463 public CommunicationLinkDoesNotStartAtContainingElement.Matcher instantiate() {
464 return CommunicationLinkDoesNotStartAtContainingElement.Matcher.create();
465 }
466
467 @Override
468 public CommunicationLinkDoesNotStartAtContainingElement.Match newEmptyMatch() {
469 return CommunicationLinkDoesNotStartAtContainingElement.Match.newEmptyMatch();
470 }
471
472 @Override
473 public CommunicationLinkDoesNotStartAtContainingElement.Match newMatch(final Object... parameters) {
474 return CommunicationLinkDoesNotStartAtContainingElement.Match.newMatch((satellite.CommunicatingElement) parameters[0]);
475 }
476
477 /**
478 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLinkDoesNotStartAtContainingElement (visibility: PUBLIC, simpleName: CommunicationLinkDoesNotStartAtContainingElement, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLinkDoesNotStartAtContainingElement, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
479 * <b>not</b> at the class load time of the outer class,
480 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLinkDoesNotStartAtContainingElement (visibility: PUBLIC, simpleName: CommunicationLinkDoesNotStartAtContainingElement, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLinkDoesNotStartAtContainingElement, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
481 *
482 * <p> This workaround is required e.g. to support recursion.
483 *
484 */
485 private static class LazyHolder {
486 private static final CommunicationLinkDoesNotStartAtContainingElement INSTANCE = new CommunicationLinkDoesNotStartAtContainingElement();
487
488 /**
489 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
490 * This initialization order is required to support indirect recursion.
491 *
492 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
493 *
494 */
495 private static final Object STATIC_INITIALIZER = ensureInitialized();
496
497 public static Object ensureInitialized() {
498 INSTANCE.ensureInitializedInternal();
499 return null;
500 }
501 }
502
503 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
504 private static final CommunicationLinkDoesNotStartAtContainingElement.GeneratedPQuery INSTANCE = new GeneratedPQuery();
505
506 private final PParameter parameter_Element = new PParameter("Element", "satellite.CommunicatingElement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommunicatingElement")), PParameterDirection.INOUT);
507
508 private final List<PParameter> parameters = Arrays.asList(parameter_Element);
509
510 private GeneratedPQuery() {
511 super(PVisibility.PUBLIC);
512 }
513
514 @Override
515 public String getFullyQualifiedName() {
516 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLinkDoesNotStartAtContainingElement";
517 }
518
519 @Override
520 public List<String> getParameterNames() {
521 return Arrays.asList("Element");
522 }
523
524 @Override
525 public List<PParameter> getParameters() {
526 return parameters;
527 }
528
529 @Override
530 public Set<PBody> doGetContainedBodies() {
531 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
532 Set<PBody> bodies = new LinkedHashSet<>();
533 {
534 PBody body = new PBody(this);
535 PVariable var_Element = body.getOrCreateVariableByName("Element");
536 PVariable var_Comm1 = body.getOrCreateVariableByName("Comm1");
537 PVariable var_Comm2 = body.getOrCreateVariableByName("Comm2");
538 new TypeConstraint(body, Tuples.flatTupleOf(var_Element), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
539 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
540 new ExportedParameter(body, var_Element, parameter_Element)
541 ));
542 // find transmittingCommSubsystem(Element, Comm1)
543 new PositivePatternCall(body, Tuples.flatTupleOf(var_Element, var_Comm1), TransmittingCommSubsystem.instance().getInternalQueryRepresentation());
544 // find transmittingCommSubsystem(Element, Comm2)
545 new PositivePatternCall(body, Tuples.flatTupleOf(var_Element, var_Comm2), TransmittingCommSubsystem.instance().getInternalQueryRepresentation());
546 // Comm1 != Comm2
547 new Inequality(body, var_Comm1, var_Comm2);
548 bodies.add(body);
549 }
550 {
551 PAnnotation annotation = new PAnnotation("Constraint");
552 annotation.addAttribute("severity", "error");
553 annotation.addAttribute("key", Arrays.asList(new Object[] {
554 new ParameterReference("Element")
555 }));
556 annotation.addAttribute("message", "A communicating element may not have two transmitting communication subsystems..");
557 addAnnotation(annotation);
558 }
559 return bodies;
560 }
561 }
562}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CommunicationLoop.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CommunicationLoop.java
deleted file mode 100644
index ede57df8..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CommunicationLoop.java
+++ /dev/null
@@ -1,557 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries;
5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectCommunicationLink;
7import java.util.Arrays;
8import java.util.Collection;
9import java.util.LinkedHashSet;
10import java.util.List;
11import java.util.Objects;
12import java.util.Optional;
13import java.util.Set;
14import java.util.function.Consumer;
15import java.util.stream.Collectors;
16import java.util.stream.Stream;
17import org.apache.log4j.Logger;
18import org.eclipse.emf.ecore.EClass;
19import org.eclipse.viatra.query.runtime.api.IPatternMatch;
20import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
21import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
23import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
24import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
25import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
26import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
27import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
28import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
29import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
30import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation;
31import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference;
32import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
33import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall;
34import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
35import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
36import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
37import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
38import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
39import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
40import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
41import satellite.CommunicatingElement;
42
43/**
44 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
45 *
46 * <p>Original source:
47 * <code><pre>
48 * // No communication loops may exist
49 * // No spacecraft may directly communicate with itself
50 *
51 * {@literal @}Constraint(severity = "error", key = {Element},
52 * message = "Communication loop.")
53 * pattern communicationLoop(Element : CommunicatingElement) {
54 * find indirectCommunicationLink(Element, Element);
55 * }
56 * </pre></code>
57 *
58 * @see Matcher
59 * @see Match
60 *
61 */
62@SuppressWarnings("all")
63public final class CommunicationLoop extends BaseGeneratedEMFQuerySpecification<CommunicationLoop.Matcher> {
64 /**
65 * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLoop pattern,
66 * to be used in conjunction with {@link Matcher}.
67 *
68 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
69 * Each instance is a (possibly partial) substitution of pattern parameters,
70 * usable to represent a match of the pattern in the result of a query,
71 * or to specify the bound (fixed) input parameters when issuing a query.
72 *
73 * @see Matcher
74 *
75 */
76 public static abstract class Match extends BasePatternMatch {
77 private CommunicatingElement fElement;
78
79 private static List<String> parameterNames = makeImmutableList("Element");
80
81 private Match(final CommunicatingElement pElement) {
82 this.fElement = pElement;
83 }
84
85 @Override
86 public Object get(final String parameterName) {
87 if ("Element".equals(parameterName)) return this.fElement;
88 return null;
89 }
90
91 public CommunicatingElement getElement() {
92 return this.fElement;
93 }
94
95 @Override
96 public boolean set(final String parameterName, final Object newValue) {
97 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
98 if ("Element".equals(parameterName) ) {
99 this.fElement = (CommunicatingElement) newValue;
100 return true;
101 }
102 return false;
103 }
104
105 public void setElement(final CommunicatingElement pElement) {
106 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
107 this.fElement = pElement;
108 }
109
110 @Override
111 public String patternName() {
112 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLoop";
113 }
114
115 @Override
116 public List<String> parameterNames() {
117 return CommunicationLoop.Match.parameterNames;
118 }
119
120 @Override
121 public Object[] toArray() {
122 return new Object[]{fElement};
123 }
124
125 @Override
126 public CommunicationLoop.Match toImmutable() {
127 return isMutable() ? newMatch(fElement) : this;
128 }
129
130 @Override
131 public String prettyPrint() {
132 StringBuilder result = new StringBuilder();
133 result.append("\"Element\"=" + prettyPrintValue(fElement));
134 return result.toString();
135 }
136
137 @Override
138 public int hashCode() {
139 return Objects.hash(fElement);
140 }
141
142 @Override
143 public boolean equals(final Object obj) {
144 if (this == obj)
145 return true;
146 if (obj == null) {
147 return false;
148 }
149 if ((obj instanceof CommunicationLoop.Match)) {
150 CommunicationLoop.Match other = (CommunicationLoop.Match) obj;
151 return Objects.equals(fElement, other.fElement);
152 } else {
153 // this should be infrequent
154 if (!(obj instanceof IPatternMatch)) {
155 return false;
156 }
157 IPatternMatch otherSig = (IPatternMatch) obj;
158 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
159 }
160 }
161
162 @Override
163 public CommunicationLoop specification() {
164 return CommunicationLoop.instance();
165 }
166
167 /**
168 * Returns an empty, mutable match.
169 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
170 *
171 * @return the empty match.
172 *
173 */
174 public static CommunicationLoop.Match newEmptyMatch() {
175 return new Mutable(null);
176 }
177
178 /**
179 * Returns a mutable (partial) match.
180 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
181 *
182 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
183 * @return the new, mutable (partial) match object.
184 *
185 */
186 public static CommunicationLoop.Match newMutableMatch(final CommunicatingElement pElement) {
187 return new Mutable(pElement);
188 }
189
190 /**
191 * Returns a new (partial) match.
192 * This can be used e.g. to call the matcher with a partial match.
193 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
194 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
195 * @return the (partial) match object.
196 *
197 */
198 public static CommunicationLoop.Match newMatch(final CommunicatingElement pElement) {
199 return new Immutable(pElement);
200 }
201
202 private static final class Mutable extends CommunicationLoop.Match {
203 Mutable(final CommunicatingElement pElement) {
204 super(pElement);
205 }
206
207 @Override
208 public boolean isMutable() {
209 return true;
210 }
211 }
212
213 private static final class Immutable extends CommunicationLoop.Match {
214 Immutable(final CommunicatingElement pElement) {
215 super(pElement);
216 }
217
218 @Override
219 public boolean isMutable() {
220 return false;
221 }
222 }
223 }
224
225 /**
226 * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLoop pattern,
227 * providing pattern-specific query methods.
228 *
229 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
230 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
231 *
232 * <p>Matches of the pattern will be represented as {@link Match}.
233 *
234 * <p>Original source:
235 * <code><pre>
236 * // No communication loops may exist
237 * // No spacecraft may directly communicate with itself
238 *
239 * {@literal @}Constraint(severity = "error", key = {Element},
240 * message = "Communication loop.")
241 * pattern communicationLoop(Element : CommunicatingElement) {
242 * find indirectCommunicationLink(Element, Element);
243 * }
244 * </pre></code>
245 *
246 * @see Match
247 * @see CommunicationLoop
248 *
249 */
250 public static class Matcher extends BaseMatcher<CommunicationLoop.Match> {
251 /**
252 * Initializes the pattern matcher within an existing VIATRA Query engine.
253 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
254 *
255 * @param engine the existing VIATRA Query engine in which this matcher will be created.
256 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
257 *
258 */
259 public static CommunicationLoop.Matcher on(final ViatraQueryEngine engine) {
260 // check if matcher already exists
261 Matcher matcher = engine.getExistingMatcher(querySpecification());
262 if (matcher == null) {
263 matcher = (Matcher)engine.getMatcher(querySpecification());
264 }
265 return matcher;
266 }
267
268 /**
269 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
270 * @return an initialized matcher
271 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
272 *
273 */
274 public static CommunicationLoop.Matcher create() {
275 return new Matcher();
276 }
277
278 private static final int POSITION_ELEMENT = 0;
279
280 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(CommunicationLoop.Matcher.class);
281
282 /**
283 * Initializes the pattern matcher within an existing VIATRA Query engine.
284 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
285 *
286 * @param engine the existing VIATRA Query engine in which this matcher will be created.
287 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
288 *
289 */
290 private Matcher() {
291 super(querySpecification());
292 }
293
294 /**
295 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
296 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
297 * @return matches represented as a Match object.
298 *
299 */
300 public Collection<CommunicationLoop.Match> getAllMatches(final CommunicatingElement pElement) {
301 return rawStreamAllMatches(new Object[]{pElement}).collect(Collectors.toSet());
302 }
303
304 /**
305 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
306 * </p>
307 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
308 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
309 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
310 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
311 * @return a stream of matches represented as a Match object.
312 *
313 */
314 public Stream<CommunicationLoop.Match> streamAllMatches(final CommunicatingElement pElement) {
315 return rawStreamAllMatches(new Object[]{pElement});
316 }
317
318 /**
319 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
320 * Neither determinism nor randomness of selection is guaranteed.
321 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
322 * @return a match represented as a Match object, or null if no match is found.
323 *
324 */
325 public Optional<CommunicationLoop.Match> getOneArbitraryMatch(final CommunicatingElement pElement) {
326 return rawGetOneArbitraryMatch(new Object[]{pElement});
327 }
328
329 /**
330 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
331 * under any possible substitution of the unspecified parameters (if any).
332 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
333 * @return true if the input is a valid (partial) match of the pattern.
334 *
335 */
336 public boolean hasMatch(final CommunicatingElement pElement) {
337 return rawHasMatch(new Object[]{pElement});
338 }
339
340 /**
341 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
342 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
343 * @return the number of pattern matches found.
344 *
345 */
346 public int countMatches(final CommunicatingElement pElement) {
347 return rawCountMatches(new Object[]{pElement});
348 }
349
350 /**
351 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
352 * Neither determinism nor randomness of selection is guaranteed.
353 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
354 * @param processor the action that will process the selected match.
355 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
356 *
357 */
358 public boolean forOneArbitraryMatch(final CommunicatingElement pElement, final Consumer<? super CommunicationLoop.Match> processor) {
359 return rawForOneArbitraryMatch(new Object[]{pElement}, processor);
360 }
361
362 /**
363 * Returns a new (partial) match.
364 * This can be used e.g. to call the matcher with a partial match.
365 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
366 * @param pElement the fixed value of pattern parameter Element, or null if not bound.
367 * @return the (partial) match object.
368 *
369 */
370 public CommunicationLoop.Match newMatch(final CommunicatingElement pElement) {
371 return CommunicationLoop.Match.newMatch(pElement);
372 }
373
374 /**
375 * Retrieve the set of values that occur in matches for Element.
376 * @return the Set of all values or empty set if there are no matches
377 *
378 */
379 protected Stream<CommunicatingElement> rawStreamAllValuesOfElement(final Object[] parameters) {
380 return rawStreamAllValues(POSITION_ELEMENT, parameters).map(CommunicatingElement.class::cast);
381 }
382
383 /**
384 * Retrieve the set of values that occur in matches for Element.
385 * @return the Set of all values or empty set if there are no matches
386 *
387 */
388 public Set<CommunicatingElement> getAllValuesOfElement() {
389 return rawStreamAllValuesOfElement(emptyArray()).collect(Collectors.toSet());
390 }
391
392 /**
393 * Retrieve the set of values that occur in matches for Element.
394 * @return the Set of all values or empty set if there are no matches
395 *
396 */
397 public Stream<CommunicatingElement> streamAllValuesOfElement() {
398 return rawStreamAllValuesOfElement(emptyArray());
399 }
400
401 @Override
402 protected CommunicationLoop.Match tupleToMatch(final Tuple t) {
403 try {
404 return CommunicationLoop.Match.newMatch((CommunicatingElement) t.get(POSITION_ELEMENT));
405 } catch(ClassCastException e) {
406 LOGGER.error("Element(s) in tuple not properly typed!",e);
407 return null;
408 }
409 }
410
411 @Override
412 protected CommunicationLoop.Match arrayToMatch(final Object[] match) {
413 try {
414 return CommunicationLoop.Match.newMatch((CommunicatingElement) match[POSITION_ELEMENT]);
415 } catch(ClassCastException e) {
416 LOGGER.error("Element(s) in array not properly typed!",e);
417 return null;
418 }
419 }
420
421 @Override
422 protected CommunicationLoop.Match arrayToMatchMutable(final Object[] match) {
423 try {
424 return CommunicationLoop.Match.newMutableMatch((CommunicatingElement) match[POSITION_ELEMENT]);
425 } catch(ClassCastException e) {
426 LOGGER.error("Element(s) in array not properly typed!",e);
427 return null;
428 }
429 }
430
431 /**
432 * @return the singleton instance of the query specification of this pattern
433 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
434 *
435 */
436 public static IQuerySpecification<CommunicationLoop.Matcher> querySpecification() {
437 return CommunicationLoop.instance();
438 }
439 }
440
441 private CommunicationLoop() {
442 super(GeneratedPQuery.INSTANCE);
443 }
444
445 /**
446 * @return the singleton instance of the query specification
447 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
448 *
449 */
450 public static CommunicationLoop instance() {
451 try{
452 return LazyHolder.INSTANCE;
453 } catch (ExceptionInInitializerError err) {
454 throw processInitializerError(err);
455 }
456 }
457
458 @Override
459 protected CommunicationLoop.Matcher instantiate(final ViatraQueryEngine engine) {
460 return CommunicationLoop.Matcher.on(engine);
461 }
462
463 @Override
464 public CommunicationLoop.Matcher instantiate() {
465 return CommunicationLoop.Matcher.create();
466 }
467
468 @Override
469 public CommunicationLoop.Match newEmptyMatch() {
470 return CommunicationLoop.Match.newEmptyMatch();
471 }
472
473 @Override
474 public CommunicationLoop.Match newMatch(final Object... parameters) {
475 return CommunicationLoop.Match.newMatch((satellite.CommunicatingElement) parameters[0]);
476 }
477
478 /**
479 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLoop (visibility: PUBLIC, simpleName: CommunicationLoop, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLoop, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
480 * <b>not</b> at the class load time of the outer class,
481 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLoop (visibility: PUBLIC, simpleName: CommunicationLoop, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLoop, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
482 *
483 * <p> This workaround is required e.g. to support recursion.
484 *
485 */
486 private static class LazyHolder {
487 private static final CommunicationLoop INSTANCE = new CommunicationLoop();
488
489 /**
490 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
491 * This initialization order is required to support indirect recursion.
492 *
493 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
494 *
495 */
496 private static final Object STATIC_INITIALIZER = ensureInitialized();
497
498 public static Object ensureInitialized() {
499 INSTANCE.ensureInitializedInternal();
500 return null;
501 }
502 }
503
504 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
505 private static final CommunicationLoop.GeneratedPQuery INSTANCE = new GeneratedPQuery();
506
507 private final PParameter parameter_Element = new PParameter("Element", "satellite.CommunicatingElement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommunicatingElement")), PParameterDirection.INOUT);
508
509 private final List<PParameter> parameters = Arrays.asList(parameter_Element);
510
511 private GeneratedPQuery() {
512 super(PVisibility.PUBLIC);
513 }
514
515 @Override
516 public String getFullyQualifiedName() {
517 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLoop";
518 }
519
520 @Override
521 public List<String> getParameterNames() {
522 return Arrays.asList("Element");
523 }
524
525 @Override
526 public List<PParameter> getParameters() {
527 return parameters;
528 }
529
530 @Override
531 public Set<PBody> doGetContainedBodies() {
532 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
533 Set<PBody> bodies = new LinkedHashSet<>();
534 {
535 PBody body = new PBody(this);
536 PVariable var_Element = body.getOrCreateVariableByName("Element");
537 new TypeConstraint(body, Tuples.flatTupleOf(var_Element), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
538 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
539 new ExportedParameter(body, var_Element, parameter_Element)
540 ));
541 // find indirectCommunicationLink(Element, Element)
542 new PositivePatternCall(body, Tuples.flatTupleOf(var_Element, var_Element), IndirectCommunicationLink.instance().getInternalQueryRepresentation());
543 bodies.add(body);
544 }
545 {
546 PAnnotation annotation = new PAnnotation("Constraint");
547 annotation.addAttribute("severity", "error");
548 annotation.addAttribute("key", Arrays.asList(new Object[] {
549 new ParameterReference("Element")
550 }));
551 annotation.addAttribute("message", "Communication loop.");
552 addAnnotation(annotation);
553 }
554 return bodies;
555 }
556 }
557}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CubeSatWithKaAntenna.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CubeSatWithKaAntenna.java
deleted file mode 100644
index f372da70..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/CubeSatWithKaAntenna.java
+++ /dev/null
@@ -1,570 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries;
5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SmallSat;
7import java.util.Arrays;
8import java.util.Collection;
9import java.util.LinkedHashSet;
10import java.util.List;
11import java.util.Objects;
12import java.util.Optional;
13import java.util.Set;
14import java.util.function.Consumer;
15import java.util.stream.Collectors;
16import java.util.stream.Stream;
17import org.apache.log4j.Logger;
18import org.eclipse.emf.ecore.EClass;
19import org.eclipse.viatra.query.runtime.api.IPatternMatch;
20import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
21import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
23import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
24import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
25import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
26import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
27import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
28import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
29import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
30import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
31import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation;
32import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference;
33import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
34import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
35import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall;
36import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
37import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
38import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
39import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
40import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
41import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
42import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
43import satellite.Spacecraft;
44
45/**
46 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
47 *
48 * <p>Original source:
49 * <code><pre>
50 * // Only a Small Satellite can be configured with a Ka-band communication system
51 *
52 * {@literal @}Constraint(severity = "error", key = {Spacecraft},
53 * message = "Only a Small Satellite can be configured with a Ka-band communication system.")
54 * pattern cubeSatWithKaAntenna(Spacecraft : Spacecraft) {
55 * CommunicatingElement.commSubsystem(Spacecraft, Comm);
56 * KaCommSubsystem(Comm);
57 * neg find smallSat(Spacecraft);
58 * }
59 * </pre></code>
60 *
61 * @see Matcher
62 * @see Match
63 *
64 */
65@SuppressWarnings("all")
66public final class CubeSatWithKaAntenna extends BaseGeneratedEMFQuerySpecification<CubeSatWithKaAntenna.Matcher> {
67 /**
68 * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.cubeSatWithKaAntenna pattern,
69 * to be used in conjunction with {@link Matcher}.
70 *
71 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
72 * Each instance is a (possibly partial) substitution of pattern parameters,
73 * usable to represent a match of the pattern in the result of a query,
74 * or to specify the bound (fixed) input parameters when issuing a query.
75 *
76 * @see Matcher
77 *
78 */
79 public static abstract class Match extends BasePatternMatch {
80 private Spacecraft fSpacecraft;
81
82 private static List<String> parameterNames = makeImmutableList("Spacecraft");
83
84 private Match(final Spacecraft pSpacecraft) {
85 this.fSpacecraft = pSpacecraft;
86 }
87
88 @Override
89 public Object get(final String parameterName) {
90 if ("Spacecraft".equals(parameterName)) return this.fSpacecraft;
91 return null;
92 }
93
94 public Spacecraft getSpacecraft() {
95 return this.fSpacecraft;
96 }
97
98 @Override
99 public boolean set(final String parameterName, final Object newValue) {
100 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
101 if ("Spacecraft".equals(parameterName) ) {
102 this.fSpacecraft = (Spacecraft) newValue;
103 return true;
104 }
105 return false;
106 }
107
108 public void setSpacecraft(final Spacecraft pSpacecraft) {
109 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
110 this.fSpacecraft = pSpacecraft;
111 }
112
113 @Override
114 public String patternName() {
115 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.cubeSatWithKaAntenna";
116 }
117
118 @Override
119 public List<String> parameterNames() {
120 return CubeSatWithKaAntenna.Match.parameterNames;
121 }
122
123 @Override
124 public Object[] toArray() {
125 return new Object[]{fSpacecraft};
126 }
127
128 @Override
129 public CubeSatWithKaAntenna.Match toImmutable() {
130 return isMutable() ? newMatch(fSpacecraft) : this;
131 }
132
133 @Override
134 public String prettyPrint() {
135 StringBuilder result = new StringBuilder();
136 result.append("\"Spacecraft\"=" + prettyPrintValue(fSpacecraft));
137 return result.toString();
138 }
139
140 @Override
141 public int hashCode() {
142 return Objects.hash(fSpacecraft);
143 }
144
145 @Override
146 public boolean equals(final Object obj) {
147 if (this == obj)
148 return true;
149 if (obj == null) {
150 return false;
151 }
152 if ((obj instanceof CubeSatWithKaAntenna.Match)) {
153 CubeSatWithKaAntenna.Match other = (CubeSatWithKaAntenna.Match) obj;
154 return Objects.equals(fSpacecraft, other.fSpacecraft);
155 } else {
156 // this should be infrequent
157 if (!(obj instanceof IPatternMatch)) {
158 return false;
159 }
160 IPatternMatch otherSig = (IPatternMatch) obj;
161 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
162 }
163 }
164
165 @Override
166 public CubeSatWithKaAntenna specification() {
167 return CubeSatWithKaAntenna.instance();
168 }
169
170 /**
171 * Returns an empty, mutable match.
172 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
173 *
174 * @return the empty match.
175 *
176 */
177 public static CubeSatWithKaAntenna.Match newEmptyMatch() {
178 return new Mutable(null);
179 }
180
181 /**
182 * Returns a mutable (partial) match.
183 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
184 *
185 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
186 * @return the new, mutable (partial) match object.
187 *
188 */
189 public static CubeSatWithKaAntenna.Match newMutableMatch(final Spacecraft pSpacecraft) {
190 return new Mutable(pSpacecraft);
191 }
192
193 /**
194 * Returns a new (partial) match.
195 * This can be used e.g. to call the matcher with a partial match.
196 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
197 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
198 * @return the (partial) match object.
199 *
200 */
201 public static CubeSatWithKaAntenna.Match newMatch(final Spacecraft pSpacecraft) {
202 return new Immutable(pSpacecraft);
203 }
204
205 private static final class Mutable extends CubeSatWithKaAntenna.Match {
206 Mutable(final Spacecraft pSpacecraft) {
207 super(pSpacecraft);
208 }
209
210 @Override
211 public boolean isMutable() {
212 return true;
213 }
214 }
215
216 private static final class Immutable extends CubeSatWithKaAntenna.Match {
217 Immutable(final Spacecraft pSpacecraft) {
218 super(pSpacecraft);
219 }
220
221 @Override
222 public boolean isMutable() {
223 return false;
224 }
225 }
226 }
227
228 /**
229 * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.cubeSatWithKaAntenna pattern,
230 * providing pattern-specific query methods.
231 *
232 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
233 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
234 *
235 * <p>Matches of the pattern will be represented as {@link Match}.
236 *
237 * <p>Original source:
238 * <code><pre>
239 * // Only a Small Satellite can be configured with a Ka-band communication system
240 *
241 * {@literal @}Constraint(severity = "error", key = {Spacecraft},
242 * message = "Only a Small Satellite can be configured with a Ka-band communication system.")
243 * pattern cubeSatWithKaAntenna(Spacecraft : Spacecraft) {
244 * CommunicatingElement.commSubsystem(Spacecraft, Comm);
245 * KaCommSubsystem(Comm);
246 * neg find smallSat(Spacecraft);
247 * }
248 * </pre></code>
249 *
250 * @see Match
251 * @see CubeSatWithKaAntenna
252 *
253 */
254 public static class Matcher extends BaseMatcher<CubeSatWithKaAntenna.Match> {
255 /**
256 * Initializes the pattern matcher within an existing VIATRA Query engine.
257 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
258 *
259 * @param engine the existing VIATRA Query engine in which this matcher will be created.
260 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
261 *
262 */
263 public static CubeSatWithKaAntenna.Matcher on(final ViatraQueryEngine engine) {
264 // check if matcher already exists
265 Matcher matcher = engine.getExistingMatcher(querySpecification());
266 if (matcher == null) {
267 matcher = (Matcher)engine.getMatcher(querySpecification());
268 }
269 return matcher;
270 }
271
272 /**
273 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
274 * @return an initialized matcher
275 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
276 *
277 */
278 public static CubeSatWithKaAntenna.Matcher create() {
279 return new Matcher();
280 }
281
282 private static final int POSITION_SPACECRAFT = 0;
283
284 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(CubeSatWithKaAntenna.Matcher.class);
285
286 /**
287 * Initializes the pattern matcher within an existing VIATRA Query engine.
288 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
289 *
290 * @param engine the existing VIATRA Query engine in which this matcher will be created.
291 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
292 *
293 */
294 private Matcher() {
295 super(querySpecification());
296 }
297
298 /**
299 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
300 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
301 * @return matches represented as a Match object.
302 *
303 */
304 public Collection<CubeSatWithKaAntenna.Match> getAllMatches(final Spacecraft pSpacecraft) {
305 return rawStreamAllMatches(new Object[]{pSpacecraft}).collect(Collectors.toSet());
306 }
307
308 /**
309 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
310 * </p>
311 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
312 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
313 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
314 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
315 * @return a stream of matches represented as a Match object.
316 *
317 */
318 public Stream<CubeSatWithKaAntenna.Match> streamAllMatches(final Spacecraft pSpacecraft) {
319 return rawStreamAllMatches(new Object[]{pSpacecraft});
320 }
321
322 /**
323 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
324 * Neither determinism nor randomness of selection is guaranteed.
325 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
326 * @return a match represented as a Match object, or null if no match is found.
327 *
328 */
329 public Optional<CubeSatWithKaAntenna.Match> getOneArbitraryMatch(final Spacecraft pSpacecraft) {
330 return rawGetOneArbitraryMatch(new Object[]{pSpacecraft});
331 }
332
333 /**
334 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
335 * under any possible substitution of the unspecified parameters (if any).
336 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
337 * @return true if the input is a valid (partial) match of the pattern.
338 *
339 */
340 public boolean hasMatch(final Spacecraft pSpacecraft) {
341 return rawHasMatch(new Object[]{pSpacecraft});
342 }
343
344 /**
345 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
346 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
347 * @return the number of pattern matches found.
348 *
349 */
350 public int countMatches(final Spacecraft pSpacecraft) {
351 return rawCountMatches(new Object[]{pSpacecraft});
352 }
353
354 /**
355 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
356 * Neither determinism nor randomness of selection is guaranteed.
357 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
358 * @param processor the action that will process the selected match.
359 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
360 *
361 */
362 public boolean forOneArbitraryMatch(final Spacecraft pSpacecraft, final Consumer<? super CubeSatWithKaAntenna.Match> processor) {
363 return rawForOneArbitraryMatch(new Object[]{pSpacecraft}, processor);
364 }
365
366 /**
367 * Returns a new (partial) match.
368 * This can be used e.g. to call the matcher with a partial match.
369 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
370 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
371 * @return the (partial) match object.
372 *
373 */
374 public CubeSatWithKaAntenna.Match newMatch(final Spacecraft pSpacecraft) {
375 return CubeSatWithKaAntenna.Match.newMatch(pSpacecraft);
376 }
377
378 /**
379 * Retrieve the set of values that occur in matches for Spacecraft.
380 * @return the Set of all values or empty set if there are no matches
381 *
382 */
383 protected Stream<Spacecraft> rawStreamAllValuesOfSpacecraft(final Object[] parameters) {
384 return rawStreamAllValues(POSITION_SPACECRAFT, parameters).map(Spacecraft.class::cast);
385 }
386
387 /**
388 * Retrieve the set of values that occur in matches for Spacecraft.
389 * @return the Set of all values or empty set if there are no matches
390 *
391 */
392 public Set<Spacecraft> getAllValuesOfSpacecraft() {
393 return rawStreamAllValuesOfSpacecraft(emptyArray()).collect(Collectors.toSet());
394 }
395
396 /**
397 * Retrieve the set of values that occur in matches for Spacecraft.
398 * @return the Set of all values or empty set if there are no matches
399 *
400 */
401 public Stream<Spacecraft> streamAllValuesOfSpacecraft() {
402 return rawStreamAllValuesOfSpacecraft(emptyArray());
403 }
404
405 @Override
406 protected CubeSatWithKaAntenna.Match tupleToMatch(final Tuple t) {
407 try {
408 return CubeSatWithKaAntenna.Match.newMatch((Spacecraft) t.get(POSITION_SPACECRAFT));
409 } catch(ClassCastException e) {
410 LOGGER.error("Element(s) in tuple not properly typed!",e);
411 return null;
412 }
413 }
414
415 @Override
416 protected CubeSatWithKaAntenna.Match arrayToMatch(final Object[] match) {
417 try {
418 return CubeSatWithKaAntenna.Match.newMatch((Spacecraft) match[POSITION_SPACECRAFT]);
419 } catch(ClassCastException e) {
420 LOGGER.error("Element(s) in array not properly typed!",e);
421 return null;
422 }
423 }
424
425 @Override
426 protected CubeSatWithKaAntenna.Match arrayToMatchMutable(final Object[] match) {
427 try {
428 return CubeSatWithKaAntenna.Match.newMutableMatch((Spacecraft) match[POSITION_SPACECRAFT]);
429 } catch(ClassCastException e) {
430 LOGGER.error("Element(s) in array not properly typed!",e);
431 return null;
432 }
433 }
434
435 /**
436 * @return the singleton instance of the query specification of this pattern
437 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
438 *
439 */
440 public static IQuerySpecification<CubeSatWithKaAntenna.Matcher> querySpecification() {
441 return CubeSatWithKaAntenna.instance();
442 }
443 }
444
445 private CubeSatWithKaAntenna() {
446 super(GeneratedPQuery.INSTANCE);
447 }
448
449 /**
450 * @return the singleton instance of the query specification
451 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
452 *
453 */
454 public static CubeSatWithKaAntenna instance() {
455 try{
456 return LazyHolder.INSTANCE;
457 } catch (ExceptionInInitializerError err) {
458 throw processInitializerError(err);
459 }
460 }
461
462 @Override
463 protected CubeSatWithKaAntenna.Matcher instantiate(final ViatraQueryEngine engine) {
464 return CubeSatWithKaAntenna.Matcher.on(engine);
465 }
466
467 @Override
468 public CubeSatWithKaAntenna.Matcher instantiate() {
469 return CubeSatWithKaAntenna.Matcher.create();
470 }
471
472 @Override
473 public CubeSatWithKaAntenna.Match newEmptyMatch() {
474 return CubeSatWithKaAntenna.Match.newEmptyMatch();
475 }
476
477 @Override
478 public CubeSatWithKaAntenna.Match newMatch(final Object... parameters) {
479 return CubeSatWithKaAntenna.Match.newMatch((satellite.Spacecraft) parameters[0]);
480 }
481
482 /**
483 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CubeSatWithKaAntenna (visibility: PUBLIC, simpleName: CubeSatWithKaAntenna, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CubeSatWithKaAntenna, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
484 * <b>not</b> at the class load time of the outer class,
485 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CubeSatWithKaAntenna (visibility: PUBLIC, simpleName: CubeSatWithKaAntenna, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CubeSatWithKaAntenna, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
486 *
487 * <p> This workaround is required e.g. to support recursion.
488 *
489 */
490 private static class LazyHolder {
491 private static final CubeSatWithKaAntenna INSTANCE = new CubeSatWithKaAntenna();
492
493 /**
494 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
495 * This initialization order is required to support indirect recursion.
496 *
497 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
498 *
499 */
500 private static final Object STATIC_INITIALIZER = ensureInitialized();
501
502 public static Object ensureInitialized() {
503 INSTANCE.ensureInitializedInternal();
504 return null;
505 }
506 }
507
508 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
509 private static final CubeSatWithKaAntenna.GeneratedPQuery INSTANCE = new GeneratedPQuery();
510
511 private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT);
512
513 private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft);
514
515 private GeneratedPQuery() {
516 super(PVisibility.PUBLIC);
517 }
518
519 @Override
520 public String getFullyQualifiedName() {
521 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.cubeSatWithKaAntenna";
522 }
523
524 @Override
525 public List<String> getParameterNames() {
526 return Arrays.asList("Spacecraft");
527 }
528
529 @Override
530 public List<PParameter> getParameters() {
531 return parameters;
532 }
533
534 @Override
535 public Set<PBody> doGetContainedBodies() {
536 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
537 Set<PBody> bodies = new LinkedHashSet<>();
538 {
539 PBody body = new PBody(this);
540 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
541 PVariable var_Comm = body.getOrCreateVariableByName("Comm");
542 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
543 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
544 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft)
545 ));
546 // CommunicatingElement.commSubsystem(Spacecraft, Comm)
547 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
548 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
549 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem")));
550 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
551 new Equality(body, var__virtual_0_, var_Comm);
552 // KaCommSubsystem(Comm)
553 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "KaCommSubsystem")));
554 // neg find smallSat(Spacecraft)
555 new NegativePatternCall(body, Tuples.flatTupleOf(var_Spacecraft), SmallSat.instance().getInternalQueryRepresentation());
556 bodies.add(body);
557 }
558 {
559 PAnnotation annotation = new PAnnotation("Constraint");
560 annotation.addAttribute("severity", "error");
561 annotation.addAttribute("key", Arrays.asList(new Object[] {
562 new ParameterReference("Spacecraft")
563 }));
564 annotation.addAttribute("message", "Only a Small Satellite can be configured with a Ka-band communication system.");
565 addAnnotation(annotation);
566 }
567 return bodies;
568 }
569 }
570}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/IncompatibleSourceAndTargetBand.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/IncompatibleSourceAndTargetBand.java
deleted file mode 100644
index af53fc9f..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/IncompatibleSourceAndTargetBand.java
+++ /dev/null
@@ -1,566 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries;
5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MatchingCommSubsystem;
7import java.util.Arrays;
8import java.util.Collection;
9import java.util.LinkedHashSet;
10import java.util.List;
11import java.util.Objects;
12import java.util.Optional;
13import java.util.Set;
14import java.util.function.Consumer;
15import java.util.stream.Collectors;
16import java.util.stream.Stream;
17import org.apache.log4j.Logger;
18import org.eclipse.emf.ecore.EClass;
19import org.eclipse.viatra.query.runtime.api.IPatternMatch;
20import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
21import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
23import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
24import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
25import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
26import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
27import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
28import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
29import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
30import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
31import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation;
32import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference;
33import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
34import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
35import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall;
36import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
37import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
38import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
39import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
40import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
41import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
42import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
43import satellite.CommSubsystem;
44
45/**
46 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
47 *
48 * <p>Original source:
49 * <code><pre>
50 * // Source and target communication systems must be compatible.
51 *
52 * {@literal @}Constraint(severity = "error", key = {SourceSubsystem},
53 * message = "Two ends of a communication link must use the same band.")
54 * pattern incompatibleSourceAndTargetBand(SourceSubsystem : CommSubsystem) {
55 * CommSubsystem.target(SourceSubsystem, TargetSubsystem);
56 * neg find matchingCommSubsystem(SourceSubsystem, TargetSubsystem);
57 * }
58 * </pre></code>
59 *
60 * @see Matcher
61 * @see Match
62 *
63 */
64@SuppressWarnings("all")
65public final class IncompatibleSourceAndTargetBand extends BaseGeneratedEMFQuerySpecification<IncompatibleSourceAndTargetBand.Matcher> {
66 /**
67 * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetBand pattern,
68 * to be used in conjunction with {@link Matcher}.
69 *
70 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
71 * Each instance is a (possibly partial) substitution of pattern parameters,
72 * usable to represent a match of the pattern in the result of a query,
73 * or to specify the bound (fixed) input parameters when issuing a query.
74 *
75 * @see Matcher
76 *
77 */
78 public static abstract class Match extends BasePatternMatch {
79 private CommSubsystem fSourceSubsystem;
80
81 private static List<String> parameterNames = makeImmutableList("SourceSubsystem");
82
83 private Match(final CommSubsystem pSourceSubsystem) {
84 this.fSourceSubsystem = pSourceSubsystem;
85 }
86
87 @Override
88 public Object get(final String parameterName) {
89 if ("SourceSubsystem".equals(parameterName)) return this.fSourceSubsystem;
90 return null;
91 }
92
93 public CommSubsystem getSourceSubsystem() {
94 return this.fSourceSubsystem;
95 }
96
97 @Override
98 public boolean set(final String parameterName, final Object newValue) {
99 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
100 if ("SourceSubsystem".equals(parameterName) ) {
101 this.fSourceSubsystem = (CommSubsystem) newValue;
102 return true;
103 }
104 return false;
105 }
106
107 public void setSourceSubsystem(final CommSubsystem pSourceSubsystem) {
108 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
109 this.fSourceSubsystem = pSourceSubsystem;
110 }
111
112 @Override
113 public String patternName() {
114 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetBand";
115 }
116
117 @Override
118 public List<String> parameterNames() {
119 return IncompatibleSourceAndTargetBand.Match.parameterNames;
120 }
121
122 @Override
123 public Object[] toArray() {
124 return new Object[]{fSourceSubsystem};
125 }
126
127 @Override
128 public IncompatibleSourceAndTargetBand.Match toImmutable() {
129 return isMutable() ? newMatch(fSourceSubsystem) : this;
130 }
131
132 @Override
133 public String prettyPrint() {
134 StringBuilder result = new StringBuilder();
135 result.append("\"SourceSubsystem\"=" + prettyPrintValue(fSourceSubsystem));
136 return result.toString();
137 }
138
139 @Override
140 public int hashCode() {
141 return Objects.hash(fSourceSubsystem);
142 }
143
144 @Override
145 public boolean equals(final Object obj) {
146 if (this == obj)
147 return true;
148 if (obj == null) {
149 return false;
150 }
151 if ((obj instanceof IncompatibleSourceAndTargetBand.Match)) {
152 IncompatibleSourceAndTargetBand.Match other = (IncompatibleSourceAndTargetBand.Match) obj;
153 return Objects.equals(fSourceSubsystem, other.fSourceSubsystem);
154 } else {
155 // this should be infrequent
156 if (!(obj instanceof IPatternMatch)) {
157 return false;
158 }
159 IPatternMatch otherSig = (IPatternMatch) obj;
160 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
161 }
162 }
163
164 @Override
165 public IncompatibleSourceAndTargetBand specification() {
166 return IncompatibleSourceAndTargetBand.instance();
167 }
168
169 /**
170 * Returns an empty, mutable match.
171 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
172 *
173 * @return the empty match.
174 *
175 */
176 public static IncompatibleSourceAndTargetBand.Match newEmptyMatch() {
177 return new Mutable(null);
178 }
179
180 /**
181 * Returns a mutable (partial) match.
182 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
183 *
184 * @param pSourceSubsystem the fixed value of pattern parameter SourceSubsystem, or null if not bound.
185 * @return the new, mutable (partial) match object.
186 *
187 */
188 public static IncompatibleSourceAndTargetBand.Match newMutableMatch(final CommSubsystem pSourceSubsystem) {
189 return new Mutable(pSourceSubsystem);
190 }
191
192 /**
193 * Returns a new (partial) match.
194 * This can be used e.g. to call the matcher with a partial match.
195 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
196 * @param pSourceSubsystem the fixed value of pattern parameter SourceSubsystem, or null if not bound.
197 * @return the (partial) match object.
198 *
199 */
200 public static IncompatibleSourceAndTargetBand.Match newMatch(final CommSubsystem pSourceSubsystem) {
201 return new Immutable(pSourceSubsystem);
202 }
203
204 private static final class Mutable extends IncompatibleSourceAndTargetBand.Match {
205 Mutable(final CommSubsystem pSourceSubsystem) {
206 super(pSourceSubsystem);
207 }
208
209 @Override
210 public boolean isMutable() {
211 return true;
212 }
213 }
214
215 private static final class Immutable extends IncompatibleSourceAndTargetBand.Match {
216 Immutable(final CommSubsystem pSourceSubsystem) {
217 super(pSourceSubsystem);
218 }
219
220 @Override
221 public boolean isMutable() {
222 return false;
223 }
224 }
225 }
226
227 /**
228 * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetBand pattern,
229 * providing pattern-specific query methods.
230 *
231 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
232 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
233 *
234 * <p>Matches of the pattern will be represented as {@link Match}.
235 *
236 * <p>Original source:
237 * <code><pre>
238 * // Source and target communication systems must be compatible.
239 *
240 * {@literal @}Constraint(severity = "error", key = {SourceSubsystem},
241 * message = "Two ends of a communication link must use the same band.")
242 * pattern incompatibleSourceAndTargetBand(SourceSubsystem : CommSubsystem) {
243 * CommSubsystem.target(SourceSubsystem, TargetSubsystem);
244 * neg find matchingCommSubsystem(SourceSubsystem, TargetSubsystem);
245 * }
246 * </pre></code>
247 *
248 * @see Match
249 * @see IncompatibleSourceAndTargetBand
250 *
251 */
252 public static class Matcher extends BaseMatcher<IncompatibleSourceAndTargetBand.Match> {
253 /**
254 * Initializes the pattern matcher within an existing VIATRA Query engine.
255 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
256 *
257 * @param engine the existing VIATRA Query engine in which this matcher will be created.
258 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
259 *
260 */
261 public static IncompatibleSourceAndTargetBand.Matcher on(final ViatraQueryEngine engine) {
262 // check if matcher already exists
263 Matcher matcher = engine.getExistingMatcher(querySpecification());
264 if (matcher == null) {
265 matcher = (Matcher)engine.getMatcher(querySpecification());
266 }
267 return matcher;
268 }
269
270 /**
271 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
272 * @return an initialized matcher
273 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
274 *
275 */
276 public static IncompatibleSourceAndTargetBand.Matcher create() {
277 return new Matcher();
278 }
279
280 private static final int POSITION_SOURCESUBSYSTEM = 0;
281
282 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(IncompatibleSourceAndTargetBand.Matcher.class);
283
284 /**
285 * Initializes the pattern matcher within an existing VIATRA Query engine.
286 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
287 *
288 * @param engine the existing VIATRA Query engine in which this matcher will be created.
289 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
290 *
291 */
292 private Matcher() {
293 super(querySpecification());
294 }
295
296 /**
297 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
298 * @param pSourceSubsystem the fixed value of pattern parameter SourceSubsystem, or null if not bound.
299 * @return matches represented as a Match object.
300 *
301 */
302 public Collection<IncompatibleSourceAndTargetBand.Match> getAllMatches(final CommSubsystem pSourceSubsystem) {
303 return rawStreamAllMatches(new Object[]{pSourceSubsystem}).collect(Collectors.toSet());
304 }
305
306 /**
307 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
308 * </p>
309 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
310 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
311 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
312 * @param pSourceSubsystem the fixed value of pattern parameter SourceSubsystem, or null if not bound.
313 * @return a stream of matches represented as a Match object.
314 *
315 */
316 public Stream<IncompatibleSourceAndTargetBand.Match> streamAllMatches(final CommSubsystem pSourceSubsystem) {
317 return rawStreamAllMatches(new Object[]{pSourceSubsystem});
318 }
319
320 /**
321 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
322 * Neither determinism nor randomness of selection is guaranteed.
323 * @param pSourceSubsystem the fixed value of pattern parameter SourceSubsystem, or null if not bound.
324 * @return a match represented as a Match object, or null if no match is found.
325 *
326 */
327 public Optional<IncompatibleSourceAndTargetBand.Match> getOneArbitraryMatch(final CommSubsystem pSourceSubsystem) {
328 return rawGetOneArbitraryMatch(new Object[]{pSourceSubsystem});
329 }
330
331 /**
332 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
333 * under any possible substitution of the unspecified parameters (if any).
334 * @param pSourceSubsystem the fixed value of pattern parameter SourceSubsystem, or null if not bound.
335 * @return true if the input is a valid (partial) match of the pattern.
336 *
337 */
338 public boolean hasMatch(final CommSubsystem pSourceSubsystem) {
339 return rawHasMatch(new Object[]{pSourceSubsystem});
340 }
341
342 /**
343 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
344 * @param pSourceSubsystem the fixed value of pattern parameter SourceSubsystem, or null if not bound.
345 * @return the number of pattern matches found.
346 *
347 */
348 public int countMatches(final CommSubsystem pSourceSubsystem) {
349 return rawCountMatches(new Object[]{pSourceSubsystem});
350 }
351
352 /**
353 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
354 * Neither determinism nor randomness of selection is guaranteed.
355 * @param pSourceSubsystem the fixed value of pattern parameter SourceSubsystem, or null if not bound.
356 * @param processor the action that will process the selected match.
357 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
358 *
359 */
360 public boolean forOneArbitraryMatch(final CommSubsystem pSourceSubsystem, final Consumer<? super IncompatibleSourceAndTargetBand.Match> processor) {
361 return rawForOneArbitraryMatch(new Object[]{pSourceSubsystem}, processor);
362 }
363
364 /**
365 * Returns a new (partial) match.
366 * This can be used e.g. to call the matcher with a partial match.
367 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
368 * @param pSourceSubsystem the fixed value of pattern parameter SourceSubsystem, or null if not bound.
369 * @return the (partial) match object.
370 *
371 */
372 public IncompatibleSourceAndTargetBand.Match newMatch(final CommSubsystem pSourceSubsystem) {
373 return IncompatibleSourceAndTargetBand.Match.newMatch(pSourceSubsystem);
374 }
375
376 /**
377 * Retrieve the set of values that occur in matches for SourceSubsystem.
378 * @return the Set of all values or empty set if there are no matches
379 *
380 */
381 protected Stream<CommSubsystem> rawStreamAllValuesOfSourceSubsystem(final Object[] parameters) {
382 return rawStreamAllValues(POSITION_SOURCESUBSYSTEM, parameters).map(CommSubsystem.class::cast);
383 }
384
385 /**
386 * Retrieve the set of values that occur in matches for SourceSubsystem.
387 * @return the Set of all values or empty set if there are no matches
388 *
389 */
390 public Set<CommSubsystem> getAllValuesOfSourceSubsystem() {
391 return rawStreamAllValuesOfSourceSubsystem(emptyArray()).collect(Collectors.toSet());
392 }
393
394 /**
395 * Retrieve the set of values that occur in matches for SourceSubsystem.
396 * @return the Set of all values or empty set if there are no matches
397 *
398 */
399 public Stream<CommSubsystem> streamAllValuesOfSourceSubsystem() {
400 return rawStreamAllValuesOfSourceSubsystem(emptyArray());
401 }
402
403 @Override
404 protected IncompatibleSourceAndTargetBand.Match tupleToMatch(final Tuple t) {
405 try {
406 return IncompatibleSourceAndTargetBand.Match.newMatch((CommSubsystem) t.get(POSITION_SOURCESUBSYSTEM));
407 } catch(ClassCastException e) {
408 LOGGER.error("Element(s) in tuple not properly typed!",e);
409 return null;
410 }
411 }
412
413 @Override
414 protected IncompatibleSourceAndTargetBand.Match arrayToMatch(final Object[] match) {
415 try {
416 return IncompatibleSourceAndTargetBand.Match.newMatch((CommSubsystem) match[POSITION_SOURCESUBSYSTEM]);
417 } catch(ClassCastException e) {
418 LOGGER.error("Element(s) in array not properly typed!",e);
419 return null;
420 }
421 }
422
423 @Override
424 protected IncompatibleSourceAndTargetBand.Match arrayToMatchMutable(final Object[] match) {
425 try {
426 return IncompatibleSourceAndTargetBand.Match.newMutableMatch((CommSubsystem) match[POSITION_SOURCESUBSYSTEM]);
427 } catch(ClassCastException e) {
428 LOGGER.error("Element(s) in array not properly typed!",e);
429 return null;
430 }
431 }
432
433 /**
434 * @return the singleton instance of the query specification of this pattern
435 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
436 *
437 */
438 public static IQuerySpecification<IncompatibleSourceAndTargetBand.Matcher> querySpecification() {
439 return IncompatibleSourceAndTargetBand.instance();
440 }
441 }
442
443 private IncompatibleSourceAndTargetBand() {
444 super(GeneratedPQuery.INSTANCE);
445 }
446
447 /**
448 * @return the singleton instance of the query specification
449 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
450 *
451 */
452 public static IncompatibleSourceAndTargetBand instance() {
453 try{
454 return LazyHolder.INSTANCE;
455 } catch (ExceptionInInitializerError err) {
456 throw processInitializerError(err);
457 }
458 }
459
460 @Override
461 protected IncompatibleSourceAndTargetBand.Matcher instantiate(final ViatraQueryEngine engine) {
462 return IncompatibleSourceAndTargetBand.Matcher.on(engine);
463 }
464
465 @Override
466 public IncompatibleSourceAndTargetBand.Matcher instantiate() {
467 return IncompatibleSourceAndTargetBand.Matcher.create();
468 }
469
470 @Override
471 public IncompatibleSourceAndTargetBand.Match newEmptyMatch() {
472 return IncompatibleSourceAndTargetBand.Match.newEmptyMatch();
473 }
474
475 @Override
476 public IncompatibleSourceAndTargetBand.Match newMatch(final Object... parameters) {
477 return IncompatibleSourceAndTargetBand.Match.newMatch((satellite.CommSubsystem) parameters[0]);
478 }
479
480 /**
481 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetBand (visibility: PUBLIC, simpleName: IncompatibleSourceAndTargetBand, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetBand, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
482 * <b>not</b> at the class load time of the outer class,
483 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetBand (visibility: PUBLIC, simpleName: IncompatibleSourceAndTargetBand, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetBand, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
484 *
485 * <p> This workaround is required e.g. to support recursion.
486 *
487 */
488 private static class LazyHolder {
489 private static final IncompatibleSourceAndTargetBand INSTANCE = new IncompatibleSourceAndTargetBand();
490
491 /**
492 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
493 * This initialization order is required to support indirect recursion.
494 *
495 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
496 *
497 */
498 private static final Object STATIC_INITIALIZER = ensureInitialized();
499
500 public static Object ensureInitialized() {
501 INSTANCE.ensureInitializedInternal();
502 return null;
503 }
504 }
505
506 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
507 private static final IncompatibleSourceAndTargetBand.GeneratedPQuery INSTANCE = new GeneratedPQuery();
508
509 private final PParameter parameter_SourceSubsystem = new PParameter("SourceSubsystem", "satellite.CommSubsystem", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommSubsystem")), PParameterDirection.INOUT);
510
511 private final List<PParameter> parameters = Arrays.asList(parameter_SourceSubsystem);
512
513 private GeneratedPQuery() {
514 super(PVisibility.PUBLIC);
515 }
516
517 @Override
518 public String getFullyQualifiedName() {
519 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.incompatibleSourceAndTargetBand";
520 }
521
522 @Override
523 public List<String> getParameterNames() {
524 return Arrays.asList("SourceSubsystem");
525 }
526
527 @Override
528 public List<PParameter> getParameters() {
529 return parameters;
530 }
531
532 @Override
533 public Set<PBody> doGetContainedBodies() {
534 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
535 Set<PBody> bodies = new LinkedHashSet<>();
536 {
537 PBody body = new PBody(this);
538 PVariable var_SourceSubsystem = body.getOrCreateVariableByName("SourceSubsystem");
539 PVariable var_TargetSubsystem = body.getOrCreateVariableByName("TargetSubsystem");
540 new TypeConstraint(body, Tuples.flatTupleOf(var_SourceSubsystem), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
541 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
542 new ExportedParameter(body, var_SourceSubsystem, parameter_SourceSubsystem)
543 ));
544 // CommSubsystem.target(SourceSubsystem, TargetSubsystem)
545 new TypeConstraint(body, Tuples.flatTupleOf(var_SourceSubsystem), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
546 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
547 new TypeConstraint(body, Tuples.flatTupleOf(var_SourceSubsystem, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommSubsystem", "target")));
548 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
549 new Equality(body, var__virtual_0_, var_TargetSubsystem);
550 // neg find matchingCommSubsystem(SourceSubsystem, TargetSubsystem)
551 new NegativePatternCall(body, Tuples.flatTupleOf(var_SourceSubsystem, var_TargetSubsystem), MatchingCommSubsystem.instance().getInternalQueryRepresentation());
552 bodies.add(body);
553 }
554 {
555 PAnnotation annotation = new PAnnotation("Constraint");
556 annotation.addAttribute("severity", "error");
557 annotation.addAttribute("key", Arrays.asList(new Object[] {
558 new ParameterReference("SourceSubsystem")
559 }));
560 annotation.addAttribute("message", "Two ends of a communication link must use the same band.");
561 addAnnotation(annotation);
562 }
563 return bodies;
564 }
565 }
566}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NoLinkToGroundStation.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NoLinkToGroundStation.java
deleted file mode 100644
index 45952f33..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NoLinkToGroundStation.java
+++ /dev/null
@@ -1,575 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries;
5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectCommunicationLink;
7import java.util.Arrays;
8import java.util.Collection;
9import java.util.LinkedHashSet;
10import java.util.List;
11import java.util.Objects;
12import java.util.Optional;
13import java.util.Set;
14import java.util.function.Consumer;
15import java.util.stream.Collectors;
16import java.util.stream.Stream;
17import org.apache.log4j.Logger;
18import org.eclipse.emf.ecore.EClass;
19import org.eclipse.viatra.query.runtime.api.IPatternMatch;
20import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
21import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
23import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
24import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
25import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
26import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
27import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
28import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
29import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
30import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
31import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation;
32import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference;
33import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
34import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
35import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall;
36import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
37import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
38import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
39import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
40import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
41import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
42import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
43import satellite.Spacecraft;
44
45/**
46 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
47 *
48 * <p>Original source:
49 * <code><pre>
50 * // All spacecraft must have some communication path to the ground station
51 *
52 * {@literal @}Constraint(severity = "error", key = {Spacecraft},
53 * message = "Spacecraft has no communication path to the ground station.")
54 * pattern noLinkToGroundStation(Spacecraft : Spacecraft) {
55 * ConstellationMission.groundStationNetwork(Mission, GroundStation);
56 * ConstellationMission.spacecraft(Mission, Spacecraft);
57 * neg find indirectCommunicationLink(Spacecraft, GroundStation);
58 * }
59 * </pre></code>
60 *
61 * @see Matcher
62 * @see Match
63 *
64 */
65@SuppressWarnings("all")
66public final class NoLinkToGroundStation extends BaseGeneratedEMFQuerySpecification<NoLinkToGroundStation.Matcher> {
67 /**
68 * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noLinkToGroundStation pattern,
69 * to be used in conjunction with {@link Matcher}.
70 *
71 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
72 * Each instance is a (possibly partial) substitution of pattern parameters,
73 * usable to represent a match of the pattern in the result of a query,
74 * or to specify the bound (fixed) input parameters when issuing a query.
75 *
76 * @see Matcher
77 *
78 */
79 public static abstract class Match extends BasePatternMatch {
80 private Spacecraft fSpacecraft;
81
82 private static List<String> parameterNames = makeImmutableList("Spacecraft");
83
84 private Match(final Spacecraft pSpacecraft) {
85 this.fSpacecraft = pSpacecraft;
86 }
87
88 @Override
89 public Object get(final String parameterName) {
90 if ("Spacecraft".equals(parameterName)) return this.fSpacecraft;
91 return null;
92 }
93
94 public Spacecraft getSpacecraft() {
95 return this.fSpacecraft;
96 }
97
98 @Override
99 public boolean set(final String parameterName, final Object newValue) {
100 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
101 if ("Spacecraft".equals(parameterName) ) {
102 this.fSpacecraft = (Spacecraft) newValue;
103 return true;
104 }
105 return false;
106 }
107
108 public void setSpacecraft(final Spacecraft pSpacecraft) {
109 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
110 this.fSpacecraft = pSpacecraft;
111 }
112
113 @Override
114 public String patternName() {
115 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noLinkToGroundStation";
116 }
117
118 @Override
119 public List<String> parameterNames() {
120 return NoLinkToGroundStation.Match.parameterNames;
121 }
122
123 @Override
124 public Object[] toArray() {
125 return new Object[]{fSpacecraft};
126 }
127
128 @Override
129 public NoLinkToGroundStation.Match toImmutable() {
130 return isMutable() ? newMatch(fSpacecraft) : this;
131 }
132
133 @Override
134 public String prettyPrint() {
135 StringBuilder result = new StringBuilder();
136 result.append("\"Spacecraft\"=" + prettyPrintValue(fSpacecraft));
137 return result.toString();
138 }
139
140 @Override
141 public int hashCode() {
142 return Objects.hash(fSpacecraft);
143 }
144
145 @Override
146 public boolean equals(final Object obj) {
147 if (this == obj)
148 return true;
149 if (obj == null) {
150 return false;
151 }
152 if ((obj instanceof NoLinkToGroundStation.Match)) {
153 NoLinkToGroundStation.Match other = (NoLinkToGroundStation.Match) obj;
154 return Objects.equals(fSpacecraft, other.fSpacecraft);
155 } else {
156 // this should be infrequent
157 if (!(obj instanceof IPatternMatch)) {
158 return false;
159 }
160 IPatternMatch otherSig = (IPatternMatch) obj;
161 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
162 }
163 }
164
165 @Override
166 public NoLinkToGroundStation specification() {
167 return NoLinkToGroundStation.instance();
168 }
169
170 /**
171 * Returns an empty, mutable match.
172 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
173 *
174 * @return the empty match.
175 *
176 */
177 public static NoLinkToGroundStation.Match newEmptyMatch() {
178 return new Mutable(null);
179 }
180
181 /**
182 * Returns a mutable (partial) match.
183 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
184 *
185 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
186 * @return the new, mutable (partial) match object.
187 *
188 */
189 public static NoLinkToGroundStation.Match newMutableMatch(final Spacecraft pSpacecraft) {
190 return new Mutable(pSpacecraft);
191 }
192
193 /**
194 * Returns a new (partial) match.
195 * This can be used e.g. to call the matcher with a partial match.
196 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
197 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
198 * @return the (partial) match object.
199 *
200 */
201 public static NoLinkToGroundStation.Match newMatch(final Spacecraft pSpacecraft) {
202 return new Immutable(pSpacecraft);
203 }
204
205 private static final class Mutable extends NoLinkToGroundStation.Match {
206 Mutable(final Spacecraft pSpacecraft) {
207 super(pSpacecraft);
208 }
209
210 @Override
211 public boolean isMutable() {
212 return true;
213 }
214 }
215
216 private static final class Immutable extends NoLinkToGroundStation.Match {
217 Immutable(final Spacecraft pSpacecraft) {
218 super(pSpacecraft);
219 }
220
221 @Override
222 public boolean isMutable() {
223 return false;
224 }
225 }
226 }
227
228 /**
229 * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noLinkToGroundStation pattern,
230 * providing pattern-specific query methods.
231 *
232 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
233 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
234 *
235 * <p>Matches of the pattern will be represented as {@link Match}.
236 *
237 * <p>Original source:
238 * <code><pre>
239 * // All spacecraft must have some communication path to the ground station
240 *
241 * {@literal @}Constraint(severity = "error", key = {Spacecraft},
242 * message = "Spacecraft has no communication path to the ground station.")
243 * pattern noLinkToGroundStation(Spacecraft : Spacecraft) {
244 * ConstellationMission.groundStationNetwork(Mission, GroundStation);
245 * ConstellationMission.spacecraft(Mission, Spacecraft);
246 * neg find indirectCommunicationLink(Spacecraft, GroundStation);
247 * }
248 * </pre></code>
249 *
250 * @see Match
251 * @see NoLinkToGroundStation
252 *
253 */
254 public static class Matcher extends BaseMatcher<NoLinkToGroundStation.Match> {
255 /**
256 * Initializes the pattern matcher within an existing VIATRA Query engine.
257 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
258 *
259 * @param engine the existing VIATRA Query engine in which this matcher will be created.
260 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
261 *
262 */
263 public static NoLinkToGroundStation.Matcher on(final ViatraQueryEngine engine) {
264 // check if matcher already exists
265 Matcher matcher = engine.getExistingMatcher(querySpecification());
266 if (matcher == null) {
267 matcher = (Matcher)engine.getMatcher(querySpecification());
268 }
269 return matcher;
270 }
271
272 /**
273 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
274 * @return an initialized matcher
275 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
276 *
277 */
278 public static NoLinkToGroundStation.Matcher create() {
279 return new Matcher();
280 }
281
282 private static final int POSITION_SPACECRAFT = 0;
283
284 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(NoLinkToGroundStation.Matcher.class);
285
286 /**
287 * Initializes the pattern matcher within an existing VIATRA Query engine.
288 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
289 *
290 * @param engine the existing VIATRA Query engine in which this matcher will be created.
291 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
292 *
293 */
294 private Matcher() {
295 super(querySpecification());
296 }
297
298 /**
299 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
300 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
301 * @return matches represented as a Match object.
302 *
303 */
304 public Collection<NoLinkToGroundStation.Match> getAllMatches(final Spacecraft pSpacecraft) {
305 return rawStreamAllMatches(new Object[]{pSpacecraft}).collect(Collectors.toSet());
306 }
307
308 /**
309 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
310 * </p>
311 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
312 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
313 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
314 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
315 * @return a stream of matches represented as a Match object.
316 *
317 */
318 public Stream<NoLinkToGroundStation.Match> streamAllMatches(final Spacecraft pSpacecraft) {
319 return rawStreamAllMatches(new Object[]{pSpacecraft});
320 }
321
322 /**
323 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
324 * Neither determinism nor randomness of selection is guaranteed.
325 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
326 * @return a match represented as a Match object, or null if no match is found.
327 *
328 */
329 public Optional<NoLinkToGroundStation.Match> getOneArbitraryMatch(final Spacecraft pSpacecraft) {
330 return rawGetOneArbitraryMatch(new Object[]{pSpacecraft});
331 }
332
333 /**
334 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
335 * under any possible substitution of the unspecified parameters (if any).
336 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
337 * @return true if the input is a valid (partial) match of the pattern.
338 *
339 */
340 public boolean hasMatch(final Spacecraft pSpacecraft) {
341 return rawHasMatch(new Object[]{pSpacecraft});
342 }
343
344 /**
345 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
346 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
347 * @return the number of pattern matches found.
348 *
349 */
350 public int countMatches(final Spacecraft pSpacecraft) {
351 return rawCountMatches(new Object[]{pSpacecraft});
352 }
353
354 /**
355 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
356 * Neither determinism nor randomness of selection is guaranteed.
357 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
358 * @param processor the action that will process the selected match.
359 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
360 *
361 */
362 public boolean forOneArbitraryMatch(final Spacecraft pSpacecraft, final Consumer<? super NoLinkToGroundStation.Match> processor) {
363 return rawForOneArbitraryMatch(new Object[]{pSpacecraft}, processor);
364 }
365
366 /**
367 * Returns a new (partial) match.
368 * This can be used e.g. to call the matcher with a partial match.
369 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
370 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
371 * @return the (partial) match object.
372 *
373 */
374 public NoLinkToGroundStation.Match newMatch(final Spacecraft pSpacecraft) {
375 return NoLinkToGroundStation.Match.newMatch(pSpacecraft);
376 }
377
378 /**
379 * Retrieve the set of values that occur in matches for Spacecraft.
380 * @return the Set of all values or empty set if there are no matches
381 *
382 */
383 protected Stream<Spacecraft> rawStreamAllValuesOfSpacecraft(final Object[] parameters) {
384 return rawStreamAllValues(POSITION_SPACECRAFT, parameters).map(Spacecraft.class::cast);
385 }
386
387 /**
388 * Retrieve the set of values that occur in matches for Spacecraft.
389 * @return the Set of all values or empty set if there are no matches
390 *
391 */
392 public Set<Spacecraft> getAllValuesOfSpacecraft() {
393 return rawStreamAllValuesOfSpacecraft(emptyArray()).collect(Collectors.toSet());
394 }
395
396 /**
397 * Retrieve the set of values that occur in matches for Spacecraft.
398 * @return the Set of all values or empty set if there are no matches
399 *
400 */
401 public Stream<Spacecraft> streamAllValuesOfSpacecraft() {
402 return rawStreamAllValuesOfSpacecraft(emptyArray());
403 }
404
405 @Override
406 protected NoLinkToGroundStation.Match tupleToMatch(final Tuple t) {
407 try {
408 return NoLinkToGroundStation.Match.newMatch((Spacecraft) t.get(POSITION_SPACECRAFT));
409 } catch(ClassCastException e) {
410 LOGGER.error("Element(s) in tuple not properly typed!",e);
411 return null;
412 }
413 }
414
415 @Override
416 protected NoLinkToGroundStation.Match arrayToMatch(final Object[] match) {
417 try {
418 return NoLinkToGroundStation.Match.newMatch((Spacecraft) match[POSITION_SPACECRAFT]);
419 } catch(ClassCastException e) {
420 LOGGER.error("Element(s) in array not properly typed!",e);
421 return null;
422 }
423 }
424
425 @Override
426 protected NoLinkToGroundStation.Match arrayToMatchMutable(final Object[] match) {
427 try {
428 return NoLinkToGroundStation.Match.newMutableMatch((Spacecraft) match[POSITION_SPACECRAFT]);
429 } catch(ClassCastException e) {
430 LOGGER.error("Element(s) in array not properly typed!",e);
431 return null;
432 }
433 }
434
435 /**
436 * @return the singleton instance of the query specification of this pattern
437 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
438 *
439 */
440 public static IQuerySpecification<NoLinkToGroundStation.Matcher> querySpecification() {
441 return NoLinkToGroundStation.instance();
442 }
443 }
444
445 private NoLinkToGroundStation() {
446 super(GeneratedPQuery.INSTANCE);
447 }
448
449 /**
450 * @return the singleton instance of the query specification
451 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
452 *
453 */
454 public static NoLinkToGroundStation instance() {
455 try{
456 return LazyHolder.INSTANCE;
457 } catch (ExceptionInInitializerError err) {
458 throw processInitializerError(err);
459 }
460 }
461
462 @Override
463 protected NoLinkToGroundStation.Matcher instantiate(final ViatraQueryEngine engine) {
464 return NoLinkToGroundStation.Matcher.on(engine);
465 }
466
467 @Override
468 public NoLinkToGroundStation.Matcher instantiate() {
469 return NoLinkToGroundStation.Matcher.create();
470 }
471
472 @Override
473 public NoLinkToGroundStation.Match newEmptyMatch() {
474 return NoLinkToGroundStation.Match.newEmptyMatch();
475 }
476
477 @Override
478 public NoLinkToGroundStation.Match newMatch(final Object... parameters) {
479 return NoLinkToGroundStation.Match.newMatch((satellite.Spacecraft) parameters[0]);
480 }
481
482 /**
483 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoLinkToGroundStation (visibility: PUBLIC, simpleName: NoLinkToGroundStation, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoLinkToGroundStation, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
484 * <b>not</b> at the class load time of the outer class,
485 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoLinkToGroundStation (visibility: PUBLIC, simpleName: NoLinkToGroundStation, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoLinkToGroundStation, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
486 *
487 * <p> This workaround is required e.g. to support recursion.
488 *
489 */
490 private static class LazyHolder {
491 private static final NoLinkToGroundStation INSTANCE = new NoLinkToGroundStation();
492
493 /**
494 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
495 * This initialization order is required to support indirect recursion.
496 *
497 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
498 *
499 */
500 private static final Object STATIC_INITIALIZER = ensureInitialized();
501
502 public static Object ensureInitialized() {
503 INSTANCE.ensureInitializedInternal();
504 return null;
505 }
506 }
507
508 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
509 private static final NoLinkToGroundStation.GeneratedPQuery INSTANCE = new GeneratedPQuery();
510
511 private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT);
512
513 private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft);
514
515 private GeneratedPQuery() {
516 super(PVisibility.PUBLIC);
517 }
518
519 @Override
520 public String getFullyQualifiedName() {
521 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noLinkToGroundStation";
522 }
523
524 @Override
525 public List<String> getParameterNames() {
526 return Arrays.asList("Spacecraft");
527 }
528
529 @Override
530 public List<PParameter> getParameters() {
531 return parameters;
532 }
533
534 @Override
535 public Set<PBody> doGetContainedBodies() {
536 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
537 Set<PBody> bodies = new LinkedHashSet<>();
538 {
539 PBody body = new PBody(this);
540 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
541 PVariable var_Mission = body.getOrCreateVariableByName("Mission");
542 PVariable var_GroundStation = body.getOrCreateVariableByName("GroundStation");
543 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
544 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
545 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft)
546 ));
547 // ConstellationMission.groundStationNetwork(Mission, GroundStation)
548 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "ConstellationMission")));
549 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
550 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "ConstellationMission", "groundStationNetwork")));
551 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "GroundStationNetwork")));
552 new Equality(body, var__virtual_0_, var_GroundStation);
553 // ConstellationMission.spacecraft(Mission, Spacecraft)
554 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "ConstellationMission")));
555 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
556 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "ConstellationMission", "spacecraft")));
557 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
558 new Equality(body, var__virtual_1_, var_Spacecraft);
559 // neg find indirectCommunicationLink(Spacecraft, GroundStation)
560 new NegativePatternCall(body, Tuples.flatTupleOf(var_Spacecraft, var_GroundStation), IndirectCommunicationLink.instance().getInternalQueryRepresentation());
561 bodies.add(body);
562 }
563 {
564 PAnnotation annotation = new PAnnotation("Constraint");
565 annotation.addAttribute("severity", "error");
566 annotation.addAttribute("key", Arrays.asList(new Object[] {
567 new ParameterReference("Spacecraft")
568 }));
569 annotation.addAttribute("message", "Spacecraft has no communication path to the ground station.");
570 addAnnotation(annotation);
571 }
572 return bodies;
573 }
574 }
575}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NoPotentialLinkToGroundStation.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NoPotentialLinkToGroundStation.java
deleted file mode 100644
index 3366de46..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NoPotentialLinkToGroundStation.java
+++ /dev/null
@@ -1,571 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries;
5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectLinkAllowed;
7import java.util.Arrays;
8import java.util.Collection;
9import java.util.LinkedHashSet;
10import java.util.List;
11import java.util.Objects;
12import java.util.Optional;
13import java.util.Set;
14import java.util.function.Consumer;
15import java.util.stream.Collectors;
16import java.util.stream.Stream;
17import org.apache.log4j.Logger;
18import org.eclipse.emf.ecore.EClass;
19import org.eclipse.viatra.query.runtime.api.IPatternMatch;
20import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
21import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
23import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
24import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
25import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
26import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
27import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
28import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
29import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
30import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
31import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation;
32import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference;
33import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
34import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
35import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall;
36import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
37import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
38import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
39import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
40import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
41import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
42import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
43import satellite.Spacecraft;
44
45/**
46 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
47 *
48 * <p>Original source:
49 * <code><pre>
50 * {@literal @}Constraint(severity = "error", key = {Spacecraft},
51 * message = "Spacecraft has no potential communication path to the ground station.")
52 * pattern noPotentialLinkToGroundStation(Spacecraft : Spacecraft) {
53 * ConstellationMission.groundStationNetwork(Mission, GroundStation);
54 * ConstellationMission.spacecraft(Mission, Spacecraft);
55 * neg find indirectLinkAllowed(Spacecraft, GroundStation);
56 * }
57 * </pre></code>
58 *
59 * @see Matcher
60 * @see Match
61 *
62 */
63@SuppressWarnings("all")
64public final class NoPotentialLinkToGroundStation extends BaseGeneratedEMFQuerySpecification<NoPotentialLinkToGroundStation.Matcher> {
65 /**
66 * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noPotentialLinkToGroundStation pattern,
67 * to be used in conjunction with {@link Matcher}.
68 *
69 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
70 * Each instance is a (possibly partial) substitution of pattern parameters,
71 * usable to represent a match of the pattern in the result of a query,
72 * or to specify the bound (fixed) input parameters when issuing a query.
73 *
74 * @see Matcher
75 *
76 */
77 public static abstract class Match extends BasePatternMatch {
78 private Spacecraft fSpacecraft;
79
80 private static List<String> parameterNames = makeImmutableList("Spacecraft");
81
82 private Match(final Spacecraft pSpacecraft) {
83 this.fSpacecraft = pSpacecraft;
84 }
85
86 @Override
87 public Object get(final String parameterName) {
88 if ("Spacecraft".equals(parameterName)) return this.fSpacecraft;
89 return null;
90 }
91
92 public Spacecraft getSpacecraft() {
93 return this.fSpacecraft;
94 }
95
96 @Override
97 public boolean set(final String parameterName, final Object newValue) {
98 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
99 if ("Spacecraft".equals(parameterName) ) {
100 this.fSpacecraft = (Spacecraft) newValue;
101 return true;
102 }
103 return false;
104 }
105
106 public void setSpacecraft(final Spacecraft pSpacecraft) {
107 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
108 this.fSpacecraft = pSpacecraft;
109 }
110
111 @Override
112 public String patternName() {
113 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noPotentialLinkToGroundStation";
114 }
115
116 @Override
117 public List<String> parameterNames() {
118 return NoPotentialLinkToGroundStation.Match.parameterNames;
119 }
120
121 @Override
122 public Object[] toArray() {
123 return new Object[]{fSpacecraft};
124 }
125
126 @Override
127 public NoPotentialLinkToGroundStation.Match toImmutable() {
128 return isMutable() ? newMatch(fSpacecraft) : this;
129 }
130
131 @Override
132 public String prettyPrint() {
133 StringBuilder result = new StringBuilder();
134 result.append("\"Spacecraft\"=" + prettyPrintValue(fSpacecraft));
135 return result.toString();
136 }
137
138 @Override
139 public int hashCode() {
140 return Objects.hash(fSpacecraft);
141 }
142
143 @Override
144 public boolean equals(final Object obj) {
145 if (this == obj)
146 return true;
147 if (obj == null) {
148 return false;
149 }
150 if ((obj instanceof NoPotentialLinkToGroundStation.Match)) {
151 NoPotentialLinkToGroundStation.Match other = (NoPotentialLinkToGroundStation.Match) obj;
152 return Objects.equals(fSpacecraft, other.fSpacecraft);
153 } else {
154 // this should be infrequent
155 if (!(obj instanceof IPatternMatch)) {
156 return false;
157 }
158 IPatternMatch otherSig = (IPatternMatch) obj;
159 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
160 }
161 }
162
163 @Override
164 public NoPotentialLinkToGroundStation specification() {
165 return NoPotentialLinkToGroundStation.instance();
166 }
167
168 /**
169 * Returns an empty, mutable match.
170 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
171 *
172 * @return the empty match.
173 *
174 */
175 public static NoPotentialLinkToGroundStation.Match newEmptyMatch() {
176 return new Mutable(null);
177 }
178
179 /**
180 * Returns a mutable (partial) match.
181 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
182 *
183 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
184 * @return the new, mutable (partial) match object.
185 *
186 */
187 public static NoPotentialLinkToGroundStation.Match newMutableMatch(final Spacecraft pSpacecraft) {
188 return new Mutable(pSpacecraft);
189 }
190
191 /**
192 * Returns a new (partial) match.
193 * This can be used e.g. to call the matcher with a partial match.
194 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
195 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
196 * @return the (partial) match object.
197 *
198 */
199 public static NoPotentialLinkToGroundStation.Match newMatch(final Spacecraft pSpacecraft) {
200 return new Immutable(pSpacecraft);
201 }
202
203 private static final class Mutable extends NoPotentialLinkToGroundStation.Match {
204 Mutable(final Spacecraft pSpacecraft) {
205 super(pSpacecraft);
206 }
207
208 @Override
209 public boolean isMutable() {
210 return true;
211 }
212 }
213
214 private static final class Immutable extends NoPotentialLinkToGroundStation.Match {
215 Immutable(final Spacecraft pSpacecraft) {
216 super(pSpacecraft);
217 }
218
219 @Override
220 public boolean isMutable() {
221 return false;
222 }
223 }
224 }
225
226 /**
227 * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noPotentialLinkToGroundStation pattern,
228 * providing pattern-specific query methods.
229 *
230 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
231 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
232 *
233 * <p>Matches of the pattern will be represented as {@link Match}.
234 *
235 * <p>Original source:
236 * <code><pre>
237 * {@literal @}Constraint(severity = "error", key = {Spacecraft},
238 * message = "Spacecraft has no potential communication path to the ground station.")
239 * pattern noPotentialLinkToGroundStation(Spacecraft : Spacecraft) {
240 * ConstellationMission.groundStationNetwork(Mission, GroundStation);
241 * ConstellationMission.spacecraft(Mission, Spacecraft);
242 * neg find indirectLinkAllowed(Spacecraft, GroundStation);
243 * }
244 * </pre></code>
245 *
246 * @see Match
247 * @see NoPotentialLinkToGroundStation
248 *
249 */
250 public static class Matcher extends BaseMatcher<NoPotentialLinkToGroundStation.Match> {
251 /**
252 * Initializes the pattern matcher within an existing VIATRA Query engine.
253 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
254 *
255 * @param engine the existing VIATRA Query engine in which this matcher will be created.
256 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
257 *
258 */
259 public static NoPotentialLinkToGroundStation.Matcher on(final ViatraQueryEngine engine) {
260 // check if matcher already exists
261 Matcher matcher = engine.getExistingMatcher(querySpecification());
262 if (matcher == null) {
263 matcher = (Matcher)engine.getMatcher(querySpecification());
264 }
265 return matcher;
266 }
267
268 /**
269 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
270 * @return an initialized matcher
271 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
272 *
273 */
274 public static NoPotentialLinkToGroundStation.Matcher create() {
275 return new Matcher();
276 }
277
278 private static final int POSITION_SPACECRAFT = 0;
279
280 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(NoPotentialLinkToGroundStation.Matcher.class);
281
282 /**
283 * Initializes the pattern matcher within an existing VIATRA Query engine.
284 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
285 *
286 * @param engine the existing VIATRA Query engine in which this matcher will be created.
287 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
288 *
289 */
290 private Matcher() {
291 super(querySpecification());
292 }
293
294 /**
295 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
296 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
297 * @return matches represented as a Match object.
298 *
299 */
300 public Collection<NoPotentialLinkToGroundStation.Match> getAllMatches(final Spacecraft pSpacecraft) {
301 return rawStreamAllMatches(new Object[]{pSpacecraft}).collect(Collectors.toSet());
302 }
303
304 /**
305 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
306 * </p>
307 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
308 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
309 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
310 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
311 * @return a stream of matches represented as a Match object.
312 *
313 */
314 public Stream<NoPotentialLinkToGroundStation.Match> streamAllMatches(final Spacecraft pSpacecraft) {
315 return rawStreamAllMatches(new Object[]{pSpacecraft});
316 }
317
318 /**
319 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
320 * Neither determinism nor randomness of selection is guaranteed.
321 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
322 * @return a match represented as a Match object, or null if no match is found.
323 *
324 */
325 public Optional<NoPotentialLinkToGroundStation.Match> getOneArbitraryMatch(final Spacecraft pSpacecraft) {
326 return rawGetOneArbitraryMatch(new Object[]{pSpacecraft});
327 }
328
329 /**
330 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
331 * under any possible substitution of the unspecified parameters (if any).
332 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
333 * @return true if the input is a valid (partial) match of the pattern.
334 *
335 */
336 public boolean hasMatch(final Spacecraft pSpacecraft) {
337 return rawHasMatch(new Object[]{pSpacecraft});
338 }
339
340 /**
341 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
342 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
343 * @return the number of pattern matches found.
344 *
345 */
346 public int countMatches(final Spacecraft pSpacecraft) {
347 return rawCountMatches(new Object[]{pSpacecraft});
348 }
349
350 /**
351 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
352 * Neither determinism nor randomness of selection is guaranteed.
353 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
354 * @param processor the action that will process the selected match.
355 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
356 *
357 */
358 public boolean forOneArbitraryMatch(final Spacecraft pSpacecraft, final Consumer<? super NoPotentialLinkToGroundStation.Match> processor) {
359 return rawForOneArbitraryMatch(new Object[]{pSpacecraft}, processor);
360 }
361
362 /**
363 * Returns a new (partial) match.
364 * This can be used e.g. to call the matcher with a partial match.
365 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
366 * @param pSpacecraft the fixed value of pattern parameter Spacecraft, or null if not bound.
367 * @return the (partial) match object.
368 *
369 */
370 public NoPotentialLinkToGroundStation.Match newMatch(final Spacecraft pSpacecraft) {
371 return NoPotentialLinkToGroundStation.Match.newMatch(pSpacecraft);
372 }
373
374 /**
375 * Retrieve the set of values that occur in matches for Spacecraft.
376 * @return the Set of all values or empty set if there are no matches
377 *
378 */
379 protected Stream<Spacecraft> rawStreamAllValuesOfSpacecraft(final Object[] parameters) {
380 return rawStreamAllValues(POSITION_SPACECRAFT, parameters).map(Spacecraft.class::cast);
381 }
382
383 /**
384 * Retrieve the set of values that occur in matches for Spacecraft.
385 * @return the Set of all values or empty set if there are no matches
386 *
387 */
388 public Set<Spacecraft> getAllValuesOfSpacecraft() {
389 return rawStreamAllValuesOfSpacecraft(emptyArray()).collect(Collectors.toSet());
390 }
391
392 /**
393 * Retrieve the set of values that occur in matches for Spacecraft.
394 * @return the Set of all values or empty set if there are no matches
395 *
396 */
397 public Stream<Spacecraft> streamAllValuesOfSpacecraft() {
398 return rawStreamAllValuesOfSpacecraft(emptyArray());
399 }
400
401 @Override
402 protected NoPotentialLinkToGroundStation.Match tupleToMatch(final Tuple t) {
403 try {
404 return NoPotentialLinkToGroundStation.Match.newMatch((Spacecraft) t.get(POSITION_SPACECRAFT));
405 } catch(ClassCastException e) {
406 LOGGER.error("Element(s) in tuple not properly typed!",e);
407 return null;
408 }
409 }
410
411 @Override
412 protected NoPotentialLinkToGroundStation.Match arrayToMatch(final Object[] match) {
413 try {
414 return NoPotentialLinkToGroundStation.Match.newMatch((Spacecraft) match[POSITION_SPACECRAFT]);
415 } catch(ClassCastException e) {
416 LOGGER.error("Element(s) in array not properly typed!",e);
417 return null;
418 }
419 }
420
421 @Override
422 protected NoPotentialLinkToGroundStation.Match arrayToMatchMutable(final Object[] match) {
423 try {
424 return NoPotentialLinkToGroundStation.Match.newMutableMatch((Spacecraft) match[POSITION_SPACECRAFT]);
425 } catch(ClassCastException e) {
426 LOGGER.error("Element(s) in array not properly typed!",e);
427 return null;
428 }
429 }
430
431 /**
432 * @return the singleton instance of the query specification of this pattern
433 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
434 *
435 */
436 public static IQuerySpecification<NoPotentialLinkToGroundStation.Matcher> querySpecification() {
437 return NoPotentialLinkToGroundStation.instance();
438 }
439 }
440
441 private NoPotentialLinkToGroundStation() {
442 super(GeneratedPQuery.INSTANCE);
443 }
444
445 /**
446 * @return the singleton instance of the query specification
447 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
448 *
449 */
450 public static NoPotentialLinkToGroundStation instance() {
451 try{
452 return LazyHolder.INSTANCE;
453 } catch (ExceptionInInitializerError err) {
454 throw processInitializerError(err);
455 }
456 }
457
458 @Override
459 protected NoPotentialLinkToGroundStation.Matcher instantiate(final ViatraQueryEngine engine) {
460 return NoPotentialLinkToGroundStation.Matcher.on(engine);
461 }
462
463 @Override
464 public NoPotentialLinkToGroundStation.Matcher instantiate() {
465 return NoPotentialLinkToGroundStation.Matcher.create();
466 }
467
468 @Override
469 public NoPotentialLinkToGroundStation.Match newEmptyMatch() {
470 return NoPotentialLinkToGroundStation.Match.newEmptyMatch();
471 }
472
473 @Override
474 public NoPotentialLinkToGroundStation.Match newMatch(final Object... parameters) {
475 return NoPotentialLinkToGroundStation.Match.newMatch((satellite.Spacecraft) parameters[0]);
476 }
477
478 /**
479 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoPotentialLinkToGroundStation (visibility: PUBLIC, simpleName: NoPotentialLinkToGroundStation, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoPotentialLinkToGroundStation, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
480 * <b>not</b> at the class load time of the outer class,
481 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoPotentialLinkToGroundStation (visibility: PUBLIC, simpleName: NoPotentialLinkToGroundStation, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoPotentialLinkToGroundStation, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
482 *
483 * <p> This workaround is required e.g. to support recursion.
484 *
485 */
486 private static class LazyHolder {
487 private static final NoPotentialLinkToGroundStation INSTANCE = new NoPotentialLinkToGroundStation();
488
489 /**
490 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
491 * This initialization order is required to support indirect recursion.
492 *
493 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
494 *
495 */
496 private static final Object STATIC_INITIALIZER = ensureInitialized();
497
498 public static Object ensureInitialized() {
499 INSTANCE.ensureInitializedInternal();
500 return null;
501 }
502 }
503
504 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
505 private static final NoPotentialLinkToGroundStation.GeneratedPQuery INSTANCE = new GeneratedPQuery();
506
507 private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT);
508
509 private final List<PParameter> parameters = Arrays.asList(parameter_Spacecraft);
510
511 private GeneratedPQuery() {
512 super(PVisibility.PUBLIC);
513 }
514
515 @Override
516 public String getFullyQualifiedName() {
517 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noPotentialLinkToGroundStation";
518 }
519
520 @Override
521 public List<String> getParameterNames() {
522 return Arrays.asList("Spacecraft");
523 }
524
525 @Override
526 public List<PParameter> getParameters() {
527 return parameters;
528 }
529
530 @Override
531 public Set<PBody> doGetContainedBodies() {
532 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
533 Set<PBody> bodies = new LinkedHashSet<>();
534 {
535 PBody body = new PBody(this);
536 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
537 PVariable var_Mission = body.getOrCreateVariableByName("Mission");
538 PVariable var_GroundStation = body.getOrCreateVariableByName("GroundStation");
539 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
540 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
541 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft)
542 ));
543 // ConstellationMission.groundStationNetwork(Mission, GroundStation)
544 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "ConstellationMission")));
545 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
546 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "ConstellationMission", "groundStationNetwork")));
547 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "GroundStationNetwork")));
548 new Equality(body, var__virtual_0_, var_GroundStation);
549 // ConstellationMission.spacecraft(Mission, Spacecraft)
550 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "ConstellationMission")));
551 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
552 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "ConstellationMission", "spacecraft")));
553 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
554 new Equality(body, var__virtual_1_, var_Spacecraft);
555 // neg find indirectLinkAllowed(Spacecraft, GroundStation)
556 new NegativePatternCall(body, Tuples.flatTupleOf(var_Spacecraft, var_GroundStation), IndirectLinkAllowed.instance().getInternalQueryRepresentation());
557 bodies.add(body);
558 }
559 {
560 PAnnotation annotation = new PAnnotation("Constraint");
561 annotation.addAttribute("severity", "error");
562 annotation.addAttribute("key", Arrays.asList(new Object[] {
563 new ParameterReference("Spacecraft")
564 }));
565 annotation.addAttribute("message", "Spacecraft has no potential communication path to the ground station.");
566 addAnnotation(annotation);
567 }
568 return bodies;
569 }
570 }
571}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NotEnoughInterferometryPayloads.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NotEnoughInterferometryPayloads.java
deleted file mode 100644
index bdd97100..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/NotEnoughInterferometryPayloads.java
+++ /dev/null
@@ -1,559 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries;
5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.AtLeastTwoInterferometryPayloads;
7import java.util.Arrays;
8import java.util.Collection;
9import java.util.LinkedHashSet;
10import java.util.List;
11import java.util.Objects;
12import java.util.Optional;
13import java.util.Set;
14import java.util.function.Consumer;
15import java.util.stream.Collectors;
16import java.util.stream.Stream;
17import org.apache.log4j.Logger;
18import org.eclipse.emf.ecore.EClass;
19import org.eclipse.viatra.query.runtime.api.IPatternMatch;
20import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
21import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
23import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
24import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
25import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
26import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
27import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
28import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
29import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
30import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation;
31import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference;
32import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
33import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall;
34import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
35import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
36import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
37import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
38import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
39import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
40import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
41import satellite.InterferometryMission;
42
43/**
44 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
45 *
46 * <p>Original source:
47 * <code><pre>
48 * // At least two spacecraft must have the interferometry payload configured
49 *
50 * {@literal @}Constraint(severity = "error", key = {Mission},
51 * message = "Interferometry mission needs at least two spacecraft configured with the interferometry payload.")
52 * pattern notEnoughInterferometryPayloads(Mission : InterferometryMission) {
53 * InterferometryMission(Mission);
54 * neg find atLeastTwoInterferometryPayloads(Mission);
55 * }
56 * </pre></code>
57 *
58 * @see Matcher
59 * @see Match
60 *
61 */
62@SuppressWarnings("all")
63public final class NotEnoughInterferometryPayloads extends BaseGeneratedEMFQuerySpecification<NotEnoughInterferometryPayloads.Matcher> {
64 /**
65 * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.notEnoughInterferometryPayloads pattern,
66 * to be used in conjunction with {@link Matcher}.
67 *
68 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
69 * Each instance is a (possibly partial) substitution of pattern parameters,
70 * usable to represent a match of the pattern in the result of a query,
71 * or to specify the bound (fixed) input parameters when issuing a query.
72 *
73 * @see Matcher
74 *
75 */
76 public static abstract class Match extends BasePatternMatch {
77 private InterferometryMission fMission;
78
79 private static List<String> parameterNames = makeImmutableList("Mission");
80
81 private Match(final InterferometryMission pMission) {
82 this.fMission = pMission;
83 }
84
85 @Override
86 public Object get(final String parameterName) {
87 if ("Mission".equals(parameterName)) return this.fMission;
88 return null;
89 }
90
91 public InterferometryMission getMission() {
92 return this.fMission;
93 }
94
95 @Override
96 public boolean set(final String parameterName, final Object newValue) {
97 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
98 if ("Mission".equals(parameterName) ) {
99 this.fMission = (InterferometryMission) newValue;
100 return true;
101 }
102 return false;
103 }
104
105 public void setMission(final InterferometryMission pMission) {
106 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
107 this.fMission = pMission;
108 }
109
110 @Override
111 public String patternName() {
112 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.notEnoughInterferometryPayloads";
113 }
114
115 @Override
116 public List<String> parameterNames() {
117 return NotEnoughInterferometryPayloads.Match.parameterNames;
118 }
119
120 @Override
121 public Object[] toArray() {
122 return new Object[]{fMission};
123 }
124
125 @Override
126 public NotEnoughInterferometryPayloads.Match toImmutable() {
127 return isMutable() ? newMatch(fMission) : this;
128 }
129
130 @Override
131 public String prettyPrint() {
132 StringBuilder result = new StringBuilder();
133 result.append("\"Mission\"=" + prettyPrintValue(fMission));
134 return result.toString();
135 }
136
137 @Override
138 public int hashCode() {
139 return Objects.hash(fMission);
140 }
141
142 @Override
143 public boolean equals(final Object obj) {
144 if (this == obj)
145 return true;
146 if (obj == null) {
147 return false;
148 }
149 if ((obj instanceof NotEnoughInterferometryPayloads.Match)) {
150 NotEnoughInterferometryPayloads.Match other = (NotEnoughInterferometryPayloads.Match) obj;
151 return Objects.equals(fMission, other.fMission);
152 } else {
153 // this should be infrequent
154 if (!(obj instanceof IPatternMatch)) {
155 return false;
156 }
157 IPatternMatch otherSig = (IPatternMatch) obj;
158 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
159 }
160 }
161
162 @Override
163 public NotEnoughInterferometryPayloads specification() {
164 return NotEnoughInterferometryPayloads.instance();
165 }
166
167 /**
168 * Returns an empty, mutable match.
169 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
170 *
171 * @return the empty match.
172 *
173 */
174 public static NotEnoughInterferometryPayloads.Match newEmptyMatch() {
175 return new Mutable(null);
176 }
177
178 /**
179 * Returns a mutable (partial) match.
180 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
181 *
182 * @param pMission the fixed value of pattern parameter Mission, or null if not bound.
183 * @return the new, mutable (partial) match object.
184 *
185 */
186 public static NotEnoughInterferometryPayloads.Match newMutableMatch(final InterferometryMission pMission) {
187 return new Mutable(pMission);
188 }
189
190 /**
191 * Returns a new (partial) match.
192 * This can be used e.g. to call the matcher with a partial match.
193 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
194 * @param pMission the fixed value of pattern parameter Mission, or null if not bound.
195 * @return the (partial) match object.
196 *
197 */
198 public static NotEnoughInterferometryPayloads.Match newMatch(final InterferometryMission pMission) {
199 return new Immutable(pMission);
200 }
201
202 private static final class Mutable extends NotEnoughInterferometryPayloads.Match {
203 Mutable(final InterferometryMission pMission) {
204 super(pMission);
205 }
206
207 @Override
208 public boolean isMutable() {
209 return true;
210 }
211 }
212
213 private static final class Immutable extends NotEnoughInterferometryPayloads.Match {
214 Immutable(final InterferometryMission pMission) {
215 super(pMission);
216 }
217
218 @Override
219 public boolean isMutable() {
220 return false;
221 }
222 }
223 }
224
225 /**
226 * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.notEnoughInterferometryPayloads pattern,
227 * providing pattern-specific query methods.
228 *
229 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
230 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
231 *
232 * <p>Matches of the pattern will be represented as {@link Match}.
233 *
234 * <p>Original source:
235 * <code><pre>
236 * // At least two spacecraft must have the interferometry payload configured
237 *
238 * {@literal @}Constraint(severity = "error", key = {Mission},
239 * message = "Interferometry mission needs at least two spacecraft configured with the interferometry payload.")
240 * pattern notEnoughInterferometryPayloads(Mission : InterferometryMission) {
241 * InterferometryMission(Mission);
242 * neg find atLeastTwoInterferometryPayloads(Mission);
243 * }
244 * </pre></code>
245 *
246 * @see Match
247 * @see NotEnoughInterferometryPayloads
248 *
249 */
250 public static class Matcher extends BaseMatcher<NotEnoughInterferometryPayloads.Match> {
251 /**
252 * Initializes the pattern matcher within an existing VIATRA Query engine.
253 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
254 *
255 * @param engine the existing VIATRA Query engine in which this matcher will be created.
256 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
257 *
258 */
259 public static NotEnoughInterferometryPayloads.Matcher on(final ViatraQueryEngine engine) {
260 // check if matcher already exists
261 Matcher matcher = engine.getExistingMatcher(querySpecification());
262 if (matcher == null) {
263 matcher = (Matcher)engine.getMatcher(querySpecification());
264 }
265 return matcher;
266 }
267
268 /**
269 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
270 * @return an initialized matcher
271 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
272 *
273 */
274 public static NotEnoughInterferometryPayloads.Matcher create() {
275 return new Matcher();
276 }
277
278 private static final int POSITION_MISSION = 0;
279
280 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(NotEnoughInterferometryPayloads.Matcher.class);
281
282 /**
283 * Initializes the pattern matcher within an existing VIATRA Query engine.
284 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
285 *
286 * @param engine the existing VIATRA Query engine in which this matcher will be created.
287 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
288 *
289 */
290 private Matcher() {
291 super(querySpecification());
292 }
293
294 /**
295 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
296 * @param pMission the fixed value of pattern parameter Mission, or null if not bound.
297 * @return matches represented as a Match object.
298 *
299 */
300 public Collection<NotEnoughInterferometryPayloads.Match> getAllMatches(final InterferometryMission pMission) {
301 return rawStreamAllMatches(new Object[]{pMission}).collect(Collectors.toSet());
302 }
303
304 /**
305 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
306 * </p>
307 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
308 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
309 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
310 * @param pMission the fixed value of pattern parameter Mission, or null if not bound.
311 * @return a stream of matches represented as a Match object.
312 *
313 */
314 public Stream<NotEnoughInterferometryPayloads.Match> streamAllMatches(final InterferometryMission pMission) {
315 return rawStreamAllMatches(new Object[]{pMission});
316 }
317
318 /**
319 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
320 * Neither determinism nor randomness of selection is guaranteed.
321 * @param pMission the fixed value of pattern parameter Mission, or null if not bound.
322 * @return a match represented as a Match object, or null if no match is found.
323 *
324 */
325 public Optional<NotEnoughInterferometryPayloads.Match> getOneArbitraryMatch(final InterferometryMission pMission) {
326 return rawGetOneArbitraryMatch(new Object[]{pMission});
327 }
328
329 /**
330 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
331 * under any possible substitution of the unspecified parameters (if any).
332 * @param pMission the fixed value of pattern parameter Mission, or null if not bound.
333 * @return true if the input is a valid (partial) match of the pattern.
334 *
335 */
336 public boolean hasMatch(final InterferometryMission pMission) {
337 return rawHasMatch(new Object[]{pMission});
338 }
339
340 /**
341 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
342 * @param pMission the fixed value of pattern parameter Mission, or null if not bound.
343 * @return the number of pattern matches found.
344 *
345 */
346 public int countMatches(final InterferometryMission pMission) {
347 return rawCountMatches(new Object[]{pMission});
348 }
349
350 /**
351 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
352 * Neither determinism nor randomness of selection is guaranteed.
353 * @param pMission the fixed value of pattern parameter Mission, or null if not bound.
354 * @param processor the action that will process the selected match.
355 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
356 *
357 */
358 public boolean forOneArbitraryMatch(final InterferometryMission pMission, final Consumer<? super NotEnoughInterferometryPayloads.Match> processor) {
359 return rawForOneArbitraryMatch(new Object[]{pMission}, processor);
360 }
361
362 /**
363 * Returns a new (partial) match.
364 * This can be used e.g. to call the matcher with a partial match.
365 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
366 * @param pMission the fixed value of pattern parameter Mission, or null if not bound.
367 * @return the (partial) match object.
368 *
369 */
370 public NotEnoughInterferometryPayloads.Match newMatch(final InterferometryMission pMission) {
371 return NotEnoughInterferometryPayloads.Match.newMatch(pMission);
372 }
373
374 /**
375 * Retrieve the set of values that occur in matches for Mission.
376 * @return the Set of all values or empty set if there are no matches
377 *
378 */
379 protected Stream<InterferometryMission> rawStreamAllValuesOfMission(final Object[] parameters) {
380 return rawStreamAllValues(POSITION_MISSION, parameters).map(InterferometryMission.class::cast);
381 }
382
383 /**
384 * Retrieve the set of values that occur in matches for Mission.
385 * @return the Set of all values or empty set if there are no matches
386 *
387 */
388 public Set<InterferometryMission> getAllValuesOfMission() {
389 return rawStreamAllValuesOfMission(emptyArray()).collect(Collectors.toSet());
390 }
391
392 /**
393 * Retrieve the set of values that occur in matches for Mission.
394 * @return the Set of all values or empty set if there are no matches
395 *
396 */
397 public Stream<InterferometryMission> streamAllValuesOfMission() {
398 return rawStreamAllValuesOfMission(emptyArray());
399 }
400
401 @Override
402 protected NotEnoughInterferometryPayloads.Match tupleToMatch(final Tuple t) {
403 try {
404 return NotEnoughInterferometryPayloads.Match.newMatch((InterferometryMission) t.get(POSITION_MISSION));
405 } catch(ClassCastException e) {
406 LOGGER.error("Element(s) in tuple not properly typed!",e);
407 return null;
408 }
409 }
410
411 @Override
412 protected NotEnoughInterferometryPayloads.Match arrayToMatch(final Object[] match) {
413 try {
414 return NotEnoughInterferometryPayloads.Match.newMatch((InterferometryMission) match[POSITION_MISSION]);
415 } catch(ClassCastException e) {
416 LOGGER.error("Element(s) in array not properly typed!",e);
417 return null;
418 }
419 }
420
421 @Override
422 protected NotEnoughInterferometryPayloads.Match arrayToMatchMutable(final Object[] match) {
423 try {
424 return NotEnoughInterferometryPayloads.Match.newMutableMatch((InterferometryMission) match[POSITION_MISSION]);
425 } catch(ClassCastException e) {
426 LOGGER.error("Element(s) in array not properly typed!",e);
427 return null;
428 }
429 }
430
431 /**
432 * @return the singleton instance of the query specification of this pattern
433 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
434 *
435 */
436 public static IQuerySpecification<NotEnoughInterferometryPayloads.Matcher> querySpecification() {
437 return NotEnoughInterferometryPayloads.instance();
438 }
439 }
440
441 private NotEnoughInterferometryPayloads() {
442 super(GeneratedPQuery.INSTANCE);
443 }
444
445 /**
446 * @return the singleton instance of the query specification
447 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
448 *
449 */
450 public static NotEnoughInterferometryPayloads instance() {
451 try{
452 return LazyHolder.INSTANCE;
453 } catch (ExceptionInInitializerError err) {
454 throw processInitializerError(err);
455 }
456 }
457
458 @Override
459 protected NotEnoughInterferometryPayloads.Matcher instantiate(final ViatraQueryEngine engine) {
460 return NotEnoughInterferometryPayloads.Matcher.on(engine);
461 }
462
463 @Override
464 public NotEnoughInterferometryPayloads.Matcher instantiate() {
465 return NotEnoughInterferometryPayloads.Matcher.create();
466 }
467
468 @Override
469 public NotEnoughInterferometryPayloads.Match newEmptyMatch() {
470 return NotEnoughInterferometryPayloads.Match.newEmptyMatch();
471 }
472
473 @Override
474 public NotEnoughInterferometryPayloads.Match newMatch(final Object... parameters) {
475 return NotEnoughInterferometryPayloads.Match.newMatch((satellite.InterferometryMission) parameters[0]);
476 }
477
478 /**
479 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NotEnoughInterferometryPayloads (visibility: PUBLIC, simpleName: NotEnoughInterferometryPayloads, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NotEnoughInterferometryPayloads, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
480 * <b>not</b> at the class load time of the outer class,
481 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NotEnoughInterferometryPayloads (visibility: PUBLIC, simpleName: NotEnoughInterferometryPayloads, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NotEnoughInterferometryPayloads, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
482 *
483 * <p> This workaround is required e.g. to support recursion.
484 *
485 */
486 private static class LazyHolder {
487 private static final NotEnoughInterferometryPayloads INSTANCE = new NotEnoughInterferometryPayloads();
488
489 /**
490 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
491 * This initialization order is required to support indirect recursion.
492 *
493 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
494 *
495 */
496 private static final Object STATIC_INITIALIZER = ensureInitialized();
497
498 public static Object ensureInitialized() {
499 INSTANCE.ensureInitializedInternal();
500 return null;
501 }
502 }
503
504 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
505 private static final NotEnoughInterferometryPayloads.GeneratedPQuery INSTANCE = new GeneratedPQuery();
506
507 private final PParameter parameter_Mission = new PParameter("Mission", "satellite.InterferometryMission", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "InterferometryMission")), PParameterDirection.INOUT);
508
509 private final List<PParameter> parameters = Arrays.asList(parameter_Mission);
510
511 private GeneratedPQuery() {
512 super(PVisibility.PUBLIC);
513 }
514
515 @Override
516 public String getFullyQualifiedName() {
517 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.notEnoughInterferometryPayloads";
518 }
519
520 @Override
521 public List<String> getParameterNames() {
522 return Arrays.asList("Mission");
523 }
524
525 @Override
526 public List<PParameter> getParameters() {
527 return parameters;
528 }
529
530 @Override
531 public Set<PBody> doGetContainedBodies() {
532 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
533 Set<PBody> bodies = new LinkedHashSet<>();
534 {
535 PBody body = new PBody(this);
536 PVariable var_Mission = body.getOrCreateVariableByName("Mission");
537 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission")));
538 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
539 new ExportedParameter(body, var_Mission, parameter_Mission)
540 ));
541 // InterferometryMission(Mission)
542 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission")));
543 // neg find atLeastTwoInterferometryPayloads(Mission)
544 new NegativePatternCall(body, Tuples.flatTupleOf(var_Mission), AtLeastTwoInterferometryPayloads.instance().getInternalQueryRepresentation());
545 bodies.add(body);
546 }
547 {
548 PAnnotation annotation = new PAnnotation("Constraint");
549 annotation.addAttribute("severity", "error");
550 annotation.addAttribute("key", Arrays.asList(new Object[] {
551 new ParameterReference("Mission")
552 }));
553 annotation.addAttribute("message", "Interferometry mission needs at least two spacecraft configured with the interferometry payload.");
554 addAnnotation(annotation);
555 }
556 return bodies;
557 }
558 }
559}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.java
deleted file mode 100644
index 9025d93a..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.java
+++ /dev/null
@@ -1,141 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries;
5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLinkDoesNotStartAtContainingElement;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLoop;
8import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CubeSatWithKaAntenna;
9import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetBand;
10import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoLinkToGroundStation;
11import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoPotentialLinkToGroundStation;
12import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NotEnoughInterferometryPayloads;
13import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SmallSat;
14import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.ThreeUCubeSatWithNonUhfCrossLink;
15import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
16import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedPatternGroup;
17
18/**
19 * A pattern group formed of all public patterns defined in SatelliteQueries.vql.
20 *
21 * <p>Use the static instance as any {@link interface org.eclipse.viatra.query.runtime.api.IQueryGroup}, to conveniently prepare
22 * a VIATRA Query engine for matching all patterns originally defined in file SatelliteQueries.vql,
23 * in order to achieve better performance than one-by-one on-demand matcher initialization.
24 *
25 * <p> From package hu.bme.mit.inf.dslreasoner.domains.satellite.queries, the group contains the definition of the following patterns: <ul>
26 * <li>communicationLinkDoesNotStartAtContainingElement</li>
27 * <li>notEnoughInterferometryPayloads</li>
28 * <li>noLinkToGroundStation</li>
29 * <li>noPotentialLinkToGroundStation</li>
30 * <li>communicationLoop</li>
31 * <li>incompatibleSourceAndTargetBand</li>
32 * <li>threeUCubeSatWithNonUhfCrossLink</li>
33 * <li>cubeSatWithKaAntenna</li>
34 * <li>smallSat</li>
35 * </ul>
36 *
37 * @see IQueryGroup
38 *
39 */
40@SuppressWarnings("all")
41public final class SatelliteQueries extends BaseGeneratedPatternGroup {
42 /**
43 * Access the pattern group.
44 *
45 * @return the singleton instance of the group
46 * @throws ViatraQueryRuntimeException if there was an error loading the generated code of pattern specifications
47 *
48 */
49 public static SatelliteQueries instance() {
50 if (INSTANCE == null) {
51 INSTANCE = new SatelliteQueries();
52 }
53 return INSTANCE;
54 }
55
56 private static SatelliteQueries INSTANCE;
57
58 private SatelliteQueries() {
59 querySpecifications.add(CommunicationLinkDoesNotStartAtContainingElement.instance());
60 querySpecifications.add(NotEnoughInterferometryPayloads.instance());
61 querySpecifications.add(NoLinkToGroundStation.instance());
62 querySpecifications.add(NoPotentialLinkToGroundStation.instance());
63 querySpecifications.add(CommunicationLoop.instance());
64 querySpecifications.add(IncompatibleSourceAndTargetBand.instance());
65 querySpecifications.add(ThreeUCubeSatWithNonUhfCrossLink.instance());
66 querySpecifications.add(CubeSatWithKaAntenna.instance());
67 querySpecifications.add(SmallSat.instance());
68 }
69
70 public CommunicationLinkDoesNotStartAtContainingElement getCommunicationLinkDoesNotStartAtContainingElement() {
71 return CommunicationLinkDoesNotStartAtContainingElement.instance();
72 }
73
74 public CommunicationLinkDoesNotStartAtContainingElement.Matcher getCommunicationLinkDoesNotStartAtContainingElement(final ViatraQueryEngine engine) {
75 return CommunicationLinkDoesNotStartAtContainingElement.Matcher.on(engine);
76 }
77
78 public NotEnoughInterferometryPayloads getNotEnoughInterferometryPayloads() {
79 return NotEnoughInterferometryPayloads.instance();
80 }
81
82 public NotEnoughInterferometryPayloads.Matcher getNotEnoughInterferometryPayloads(final ViatraQueryEngine engine) {
83 return NotEnoughInterferometryPayloads.Matcher.on(engine);
84 }
85
86 public NoLinkToGroundStation getNoLinkToGroundStation() {
87 return NoLinkToGroundStation.instance();
88 }
89
90 public NoLinkToGroundStation.Matcher getNoLinkToGroundStation(final ViatraQueryEngine engine) {
91 return NoLinkToGroundStation.Matcher.on(engine);
92 }
93
94 public NoPotentialLinkToGroundStation getNoPotentialLinkToGroundStation() {
95 return NoPotentialLinkToGroundStation.instance();
96 }
97
98 public NoPotentialLinkToGroundStation.Matcher getNoPotentialLinkToGroundStation(final ViatraQueryEngine engine) {
99 return NoPotentialLinkToGroundStation.Matcher.on(engine);
100 }
101
102 public CommunicationLoop getCommunicationLoop() {
103 return CommunicationLoop.instance();
104 }
105
106 public CommunicationLoop.Matcher getCommunicationLoop(final ViatraQueryEngine engine) {
107 return CommunicationLoop.Matcher.on(engine);
108 }
109
110 public IncompatibleSourceAndTargetBand getIncompatibleSourceAndTargetBand() {
111 return IncompatibleSourceAndTargetBand.instance();
112 }
113
114 public IncompatibleSourceAndTargetBand.Matcher getIncompatibleSourceAndTargetBand(final ViatraQueryEngine engine) {
115 return IncompatibleSourceAndTargetBand.Matcher.on(engine);
116 }
117
118 public ThreeUCubeSatWithNonUhfCrossLink getThreeUCubeSatWithNonUhfCrossLink() {
119 return ThreeUCubeSatWithNonUhfCrossLink.instance();
120 }
121
122 public ThreeUCubeSatWithNonUhfCrossLink.Matcher getThreeUCubeSatWithNonUhfCrossLink(final ViatraQueryEngine engine) {
123 return ThreeUCubeSatWithNonUhfCrossLink.Matcher.on(engine);
124 }
125
126 public CubeSatWithKaAntenna getCubeSatWithKaAntenna() {
127 return CubeSatWithKaAntenna.instance();
128 }
129
130 public CubeSatWithKaAntenna.Matcher getCubeSatWithKaAntenna(final ViatraQueryEngine engine) {
131 return CubeSatWithKaAntenna.Matcher.on(engine);
132 }
133
134 public SmallSat getSmallSat() {
135 return SmallSat.instance();
136 }
137
138 public SmallSat.Matcher getSmallSat(final ViatraQueryEngine engine) {
139 return SmallSat.Matcher.on(engine);
140 }
141}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SmallSat.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SmallSat.java
deleted file mode 100644
index 4791740e..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SmallSat.java
+++ /dev/null
@@ -1,533 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries;
5
6import java.util.Arrays;
7import java.util.Collection;
8import java.util.LinkedHashSet;
9import java.util.List;
10import java.util.Objects;
11import java.util.Optional;
12import java.util.Set;
13import java.util.function.Consumer;
14import java.util.stream.Collectors;
15import java.util.stream.Stream;
16import org.apache.log4j.Logger;
17import org.eclipse.emf.ecore.EClass;
18import org.eclipse.viatra.query.runtime.api.IPatternMatch;
19import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
20import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
21import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
23import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
24import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
25import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
26import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
27import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
28import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
29import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
30import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
31import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
32import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
33import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
34import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
35import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
36import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
37
38/**
39 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
40 *
41 * <p>Original source:
42 * <code><pre>
43 * pattern smallSat(Sat : SmallSat) {
44 * SmallSat(Sat);
45 * }
46 * </pre></code>
47 *
48 * @see Matcher
49 * @see Match
50 *
51 */
52@SuppressWarnings("all")
53public final class SmallSat extends BaseGeneratedEMFQuerySpecification<SmallSat.Matcher> {
54 /**
55 * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.smallSat pattern,
56 * to be used in conjunction with {@link Matcher}.
57 *
58 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
59 * Each instance is a (possibly partial) substitution of pattern parameters,
60 * usable to represent a match of the pattern in the result of a query,
61 * or to specify the bound (fixed) input parameters when issuing a query.
62 *
63 * @see Matcher
64 *
65 */
66 public static abstract class Match extends BasePatternMatch {
67 private satellite.SmallSat fSat;
68
69 private static List<String> parameterNames = makeImmutableList("Sat");
70
71 private Match(final satellite.SmallSat pSat) {
72 this.fSat = pSat;
73 }
74
75 @Override
76 public Object get(final String parameterName) {
77 if ("Sat".equals(parameterName)) return this.fSat;
78 return null;
79 }
80
81 public satellite.SmallSat getSat() {
82 return this.fSat;
83 }
84
85 @Override
86 public boolean set(final String parameterName, final Object newValue) {
87 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
88 if ("Sat".equals(parameterName) ) {
89 this.fSat = (satellite.SmallSat) newValue;
90 return true;
91 }
92 return false;
93 }
94
95 public void setSat(final satellite.SmallSat pSat) {
96 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
97 this.fSat = pSat;
98 }
99
100 @Override
101 public String patternName() {
102 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.smallSat";
103 }
104
105 @Override
106 public List<String> parameterNames() {
107 return SmallSat.Match.parameterNames;
108 }
109
110 @Override
111 public Object[] toArray() {
112 return new Object[]{fSat};
113 }
114
115 @Override
116 public SmallSat.Match toImmutable() {
117 return isMutable() ? newMatch(fSat) : this;
118 }
119
120 @Override
121 public String prettyPrint() {
122 StringBuilder result = new StringBuilder();
123 result.append("\"Sat\"=" + prettyPrintValue(fSat));
124 return result.toString();
125 }
126
127 @Override
128 public int hashCode() {
129 return Objects.hash(fSat);
130 }
131
132 @Override
133 public boolean equals(final Object obj) {
134 if (this == obj)
135 return true;
136 if (obj == null) {
137 return false;
138 }
139 if ((obj instanceof SmallSat.Match)) {
140 SmallSat.Match other = (SmallSat.Match) obj;
141 return Objects.equals(fSat, other.fSat);
142 } else {
143 // this should be infrequent
144 if (!(obj instanceof IPatternMatch)) {
145 return false;
146 }
147 IPatternMatch otherSig = (IPatternMatch) obj;
148 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
149 }
150 }
151
152 @Override
153 public SmallSat specification() {
154 return SmallSat.instance();
155 }
156
157 /**
158 * Returns an empty, mutable match.
159 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
160 *
161 * @return the empty match.
162 *
163 */
164 public static SmallSat.Match newEmptyMatch() {
165 return new Mutable(null);
166 }
167
168 /**
169 * Returns a mutable (partial) match.
170 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
171 *
172 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
173 * @return the new, mutable (partial) match object.
174 *
175 */
176 public static SmallSat.Match newMutableMatch(final satellite.SmallSat pSat) {
177 return new Mutable(pSat);
178 }
179
180 /**
181 * Returns a new (partial) match.
182 * This can be used e.g. to call the matcher with a partial match.
183 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
184 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
185 * @return the (partial) match object.
186 *
187 */
188 public static SmallSat.Match newMatch(final satellite.SmallSat pSat) {
189 return new Immutable(pSat);
190 }
191
192 private static final class Mutable extends SmallSat.Match {
193 Mutable(final satellite.SmallSat pSat) {
194 super(pSat);
195 }
196
197 @Override
198 public boolean isMutable() {
199 return true;
200 }
201 }
202
203 private static final class Immutable extends SmallSat.Match {
204 Immutable(final satellite.SmallSat pSat) {
205 super(pSat);
206 }
207
208 @Override
209 public boolean isMutable() {
210 return false;
211 }
212 }
213 }
214
215 /**
216 * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.smallSat pattern,
217 * providing pattern-specific query methods.
218 *
219 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
220 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
221 *
222 * <p>Matches of the pattern will be represented as {@link Match}.
223 *
224 * <p>Original source:
225 * <code><pre>
226 * pattern smallSat(Sat : SmallSat) {
227 * SmallSat(Sat);
228 * }
229 * </pre></code>
230 *
231 * @see Match
232 * @see SmallSat
233 *
234 */
235 public static class Matcher extends BaseMatcher<SmallSat.Match> {
236 /**
237 * Initializes the pattern matcher within an existing VIATRA Query engine.
238 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
239 *
240 * @param engine the existing VIATRA Query engine in which this matcher will be created.
241 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
242 *
243 */
244 public static SmallSat.Matcher on(final ViatraQueryEngine engine) {
245 // check if matcher already exists
246 Matcher matcher = engine.getExistingMatcher(querySpecification());
247 if (matcher == null) {
248 matcher = (Matcher)engine.getMatcher(querySpecification());
249 }
250 return matcher;
251 }
252
253 /**
254 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
255 * @return an initialized matcher
256 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
257 *
258 */
259 public static SmallSat.Matcher create() {
260 return new Matcher();
261 }
262
263 private static final int POSITION_SAT = 0;
264
265 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(SmallSat.Matcher.class);
266
267 /**
268 * Initializes the pattern matcher within an existing VIATRA Query engine.
269 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
270 *
271 * @param engine the existing VIATRA Query engine in which this matcher will be created.
272 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
273 *
274 */
275 private Matcher() {
276 super(querySpecification());
277 }
278
279 /**
280 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
281 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
282 * @return matches represented as a Match object.
283 *
284 */
285 public Collection<SmallSat.Match> getAllMatches(final satellite.SmallSat pSat) {
286 return rawStreamAllMatches(new Object[]{pSat}).collect(Collectors.toSet());
287 }
288
289 /**
290 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
291 * </p>
292 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
293 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
294 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
295 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
296 * @return a stream of matches represented as a Match object.
297 *
298 */
299 public Stream<SmallSat.Match> streamAllMatches(final satellite.SmallSat pSat) {
300 return rawStreamAllMatches(new Object[]{pSat});
301 }
302
303 /**
304 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
305 * Neither determinism nor randomness of selection is guaranteed.
306 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
307 * @return a match represented as a Match object, or null if no match is found.
308 *
309 */
310 public Optional<SmallSat.Match> getOneArbitraryMatch(final satellite.SmallSat pSat) {
311 return rawGetOneArbitraryMatch(new Object[]{pSat});
312 }
313
314 /**
315 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
316 * under any possible substitution of the unspecified parameters (if any).
317 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
318 * @return true if the input is a valid (partial) match of the pattern.
319 *
320 */
321 public boolean hasMatch(final satellite.SmallSat pSat) {
322 return rawHasMatch(new Object[]{pSat});
323 }
324
325 /**
326 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
327 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
328 * @return the number of pattern matches found.
329 *
330 */
331 public int countMatches(final satellite.SmallSat pSat) {
332 return rawCountMatches(new Object[]{pSat});
333 }
334
335 /**
336 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
337 * Neither determinism nor randomness of selection is guaranteed.
338 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
339 * @param processor the action that will process the selected match.
340 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
341 *
342 */
343 public boolean forOneArbitraryMatch(final satellite.SmallSat pSat, final Consumer<? super SmallSat.Match> processor) {
344 return rawForOneArbitraryMatch(new Object[]{pSat}, processor);
345 }
346
347 /**
348 * Returns a new (partial) match.
349 * This can be used e.g. to call the matcher with a partial match.
350 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
351 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
352 * @return the (partial) match object.
353 *
354 */
355 public SmallSat.Match newMatch(final satellite.SmallSat pSat) {
356 return SmallSat.Match.newMatch(pSat);
357 }
358
359 /**
360 * Retrieve the set of values that occur in matches for Sat.
361 * @return the Set of all values or empty set if there are no matches
362 *
363 */
364 protected Stream<satellite.SmallSat> rawStreamAllValuesOfSat(final Object[] parameters) {
365 return rawStreamAllValues(POSITION_SAT, parameters).map(satellite.SmallSat.class::cast);
366 }
367
368 /**
369 * Retrieve the set of values that occur in matches for Sat.
370 * @return the Set of all values or empty set if there are no matches
371 *
372 */
373 public Set<satellite.SmallSat> getAllValuesOfSat() {
374 return rawStreamAllValuesOfSat(emptyArray()).collect(Collectors.toSet());
375 }
376
377 /**
378 * Retrieve the set of values that occur in matches for Sat.
379 * @return the Set of all values or empty set if there are no matches
380 *
381 */
382 public Stream<satellite.SmallSat> streamAllValuesOfSat() {
383 return rawStreamAllValuesOfSat(emptyArray());
384 }
385
386 @Override
387 protected SmallSat.Match tupleToMatch(final Tuple t) {
388 try {
389 return SmallSat.Match.newMatch((satellite.SmallSat) t.get(POSITION_SAT));
390 } catch(ClassCastException e) {
391 LOGGER.error("Element(s) in tuple not properly typed!",e);
392 return null;
393 }
394 }
395
396 @Override
397 protected SmallSat.Match arrayToMatch(final Object[] match) {
398 try {
399 return SmallSat.Match.newMatch((satellite.SmallSat) match[POSITION_SAT]);
400 } catch(ClassCastException e) {
401 LOGGER.error("Element(s) in array not properly typed!",e);
402 return null;
403 }
404 }
405
406 @Override
407 protected SmallSat.Match arrayToMatchMutable(final Object[] match) {
408 try {
409 return SmallSat.Match.newMutableMatch((satellite.SmallSat) match[POSITION_SAT]);
410 } catch(ClassCastException e) {
411 LOGGER.error("Element(s) in array not properly typed!",e);
412 return null;
413 }
414 }
415
416 /**
417 * @return the singleton instance of the query specification of this pattern
418 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
419 *
420 */
421 public static IQuerySpecification<SmallSat.Matcher> querySpecification() {
422 return SmallSat.instance();
423 }
424 }
425
426 private SmallSat() {
427 super(GeneratedPQuery.INSTANCE);
428 }
429
430 /**
431 * @return the singleton instance of the query specification
432 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
433 *
434 */
435 public static SmallSat instance() {
436 try{
437 return LazyHolder.INSTANCE;
438 } catch (ExceptionInInitializerError err) {
439 throw processInitializerError(err);
440 }
441 }
442
443 @Override
444 protected SmallSat.Matcher instantiate(final ViatraQueryEngine engine) {
445 return SmallSat.Matcher.on(engine);
446 }
447
448 @Override
449 public SmallSat.Matcher instantiate() {
450 return SmallSat.Matcher.create();
451 }
452
453 @Override
454 public SmallSat.Match newEmptyMatch() {
455 return SmallSat.Match.newEmptyMatch();
456 }
457
458 @Override
459 public SmallSat.Match newMatch(final Object... parameters) {
460 return SmallSat.Match.newMatch((satellite.SmallSat) parameters[0]);
461 }
462
463 /**
464 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SmallSat (visibility: PUBLIC, simpleName: SmallSat, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SmallSat, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
465 * <b>not</b> at the class load time of the outer class,
466 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SmallSat (visibility: PUBLIC, simpleName: SmallSat, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SmallSat, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
467 *
468 * <p> This workaround is required e.g. to support recursion.
469 *
470 */
471 private static class LazyHolder {
472 private static final SmallSat INSTANCE = new SmallSat();
473
474 /**
475 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
476 * This initialization order is required to support indirect recursion.
477 *
478 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
479 *
480 */
481 private static final Object STATIC_INITIALIZER = ensureInitialized();
482
483 public static Object ensureInitialized() {
484 INSTANCE.ensureInitializedInternal();
485 return null;
486 }
487 }
488
489 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
490 private static final SmallSat.GeneratedPQuery INSTANCE = new GeneratedPQuery();
491
492 private final PParameter parameter_Sat = new PParameter("Sat", "satellite.SmallSat", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "SmallSat")), PParameterDirection.INOUT);
493
494 private final List<PParameter> parameters = Arrays.asList(parameter_Sat);
495
496 private GeneratedPQuery() {
497 super(PVisibility.PUBLIC);
498 }
499
500 @Override
501 public String getFullyQualifiedName() {
502 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.smallSat";
503 }
504
505 @Override
506 public List<String> getParameterNames() {
507 return Arrays.asList("Sat");
508 }
509
510 @Override
511 public List<PParameter> getParameters() {
512 return parameters;
513 }
514
515 @Override
516 public Set<PBody> doGetContainedBodies() {
517 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
518 Set<PBody> bodies = new LinkedHashSet<>();
519 {
520 PBody body = new PBody(this);
521 PVariable var_Sat = body.getOrCreateVariableByName("Sat");
522 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "SmallSat")));
523 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
524 new ExportedParameter(body, var_Sat, parameter_Sat)
525 ));
526 // SmallSat(Sat)
527 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "SmallSat")));
528 bodies.add(body);
529 }
530 return bodies;
531 }
532 }
533}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/ThreeUCubeSatWithNonUhfCrossLink.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/ThreeUCubeSatWithNonUhfCrossLink.java
deleted file mode 100644
index 0fe520c2..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/ThreeUCubeSatWithNonUhfCrossLink.java
+++ /dev/null
@@ -1,591 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries;
5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBandUhf;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.GroundStationNetwork;
8import java.util.Arrays;
9import java.util.Collection;
10import java.util.LinkedHashSet;
11import java.util.List;
12import java.util.Objects;
13import java.util.Optional;
14import java.util.Set;
15import java.util.function.Consumer;
16import java.util.stream.Collectors;
17import java.util.stream.Stream;
18import org.apache.log4j.Logger;
19import org.eclipse.emf.ecore.EClass;
20import org.eclipse.viatra.query.runtime.api.IPatternMatch;
21import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
22import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
23import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
24import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
25import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
26import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
27import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
28import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
29import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
30import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
31import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
32import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation;
33import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference;
34import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
35import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
36import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall;
37import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
38import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
39import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
40import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
41import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
42import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
43import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
44import satellite.CubeSat3U;
45
46/**
47 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
48 *
49 * <p>Original source:
50 * <code><pre>
51 * // 3U CubeSats are assumed to only be able to downlink to Earth using an X-band trasmitter,
52 * // but cross-link using UHF
53 *
54 * {@literal @}Constraint(severity = "error", key = {Sat},
55 * message = "3U CubeSats can only cross-link using UHF.")
56 * pattern threeUCubeSatWithNonUhfCrossLink(Sat : CubeSat3U) {
57 * CommunicatingElement.commSubsystem(Sat, SourceComm);
58 * neg find commSubsystemBandUhf(SourceComm);
59 * CommSubsystem.target(SourceComm, TargetComm);
60 * CommunicatingElement.commSubsystem(Target, TargetComm);
61 * neg find groundStationNetwork(Target);
62 * }
63 * </pre></code>
64 *
65 * @see Matcher
66 * @see Match
67 *
68 */
69@SuppressWarnings("all")
70public final class ThreeUCubeSatWithNonUhfCrossLink extends BaseGeneratedEMFQuerySpecification<ThreeUCubeSatWithNonUhfCrossLink.Matcher> {
71 /**
72 * Pattern-specific match representation of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.threeUCubeSatWithNonUhfCrossLink pattern,
73 * to be used in conjunction with {@link Matcher}.
74 *
75 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
76 * Each instance is a (possibly partial) substitution of pattern parameters,
77 * usable to represent a match of the pattern in the result of a query,
78 * or to specify the bound (fixed) input parameters when issuing a query.
79 *
80 * @see Matcher
81 *
82 */
83 public static abstract class Match extends BasePatternMatch {
84 private CubeSat3U fSat;
85
86 private static List<String> parameterNames = makeImmutableList("Sat");
87
88 private Match(final CubeSat3U pSat) {
89 this.fSat = pSat;
90 }
91
92 @Override
93 public Object get(final String parameterName) {
94 if ("Sat".equals(parameterName)) return this.fSat;
95 return null;
96 }
97
98 public CubeSat3U getSat() {
99 return this.fSat;
100 }
101
102 @Override
103 public boolean set(final String parameterName, final Object newValue) {
104 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
105 if ("Sat".equals(parameterName) ) {
106 this.fSat = (CubeSat3U) newValue;
107 return true;
108 }
109 return false;
110 }
111
112 public void setSat(final CubeSat3U pSat) {
113 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
114 this.fSat = pSat;
115 }
116
117 @Override
118 public String patternName() {
119 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.threeUCubeSatWithNonUhfCrossLink";
120 }
121
122 @Override
123 public List<String> parameterNames() {
124 return ThreeUCubeSatWithNonUhfCrossLink.Match.parameterNames;
125 }
126
127 @Override
128 public Object[] toArray() {
129 return new Object[]{fSat};
130 }
131
132 @Override
133 public ThreeUCubeSatWithNonUhfCrossLink.Match toImmutable() {
134 return isMutable() ? newMatch(fSat) : this;
135 }
136
137 @Override
138 public String prettyPrint() {
139 StringBuilder result = new StringBuilder();
140 result.append("\"Sat\"=" + prettyPrintValue(fSat));
141 return result.toString();
142 }
143
144 @Override
145 public int hashCode() {
146 return Objects.hash(fSat);
147 }
148
149 @Override
150 public boolean equals(final Object obj) {
151 if (this == obj)
152 return true;
153 if (obj == null) {
154 return false;
155 }
156 if ((obj instanceof ThreeUCubeSatWithNonUhfCrossLink.Match)) {
157 ThreeUCubeSatWithNonUhfCrossLink.Match other = (ThreeUCubeSatWithNonUhfCrossLink.Match) obj;
158 return Objects.equals(fSat, other.fSat);
159 } else {
160 // this should be infrequent
161 if (!(obj instanceof IPatternMatch)) {
162 return false;
163 }
164 IPatternMatch otherSig = (IPatternMatch) obj;
165 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
166 }
167 }
168
169 @Override
170 public ThreeUCubeSatWithNonUhfCrossLink specification() {
171 return ThreeUCubeSatWithNonUhfCrossLink.instance();
172 }
173
174 /**
175 * Returns an empty, mutable match.
176 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
177 *
178 * @return the empty match.
179 *
180 */
181 public static ThreeUCubeSatWithNonUhfCrossLink.Match newEmptyMatch() {
182 return new Mutable(null);
183 }
184
185 /**
186 * Returns a mutable (partial) match.
187 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
188 *
189 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
190 * @return the new, mutable (partial) match object.
191 *
192 */
193 public static ThreeUCubeSatWithNonUhfCrossLink.Match newMutableMatch(final CubeSat3U pSat) {
194 return new Mutable(pSat);
195 }
196
197 /**
198 * Returns a new (partial) match.
199 * This can be used e.g. to call the matcher with a partial match.
200 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
201 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
202 * @return the (partial) match object.
203 *
204 */
205 public static ThreeUCubeSatWithNonUhfCrossLink.Match newMatch(final CubeSat3U pSat) {
206 return new Immutable(pSat);
207 }
208
209 private static final class Mutable extends ThreeUCubeSatWithNonUhfCrossLink.Match {
210 Mutable(final CubeSat3U pSat) {
211 super(pSat);
212 }
213
214 @Override
215 public boolean isMutable() {
216 return true;
217 }
218 }
219
220 private static final class Immutable extends ThreeUCubeSatWithNonUhfCrossLink.Match {
221 Immutable(final CubeSat3U pSat) {
222 super(pSat);
223 }
224
225 @Override
226 public boolean isMutable() {
227 return false;
228 }
229 }
230 }
231
232 /**
233 * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.satellite.queries.threeUCubeSatWithNonUhfCrossLink pattern,
234 * providing pattern-specific query methods.
235 *
236 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
237 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
238 *
239 * <p>Matches of the pattern will be represented as {@link Match}.
240 *
241 * <p>Original source:
242 * <code><pre>
243 * // 3U CubeSats are assumed to only be able to downlink to Earth using an X-band trasmitter,
244 * // but cross-link using UHF
245 *
246 * {@literal @}Constraint(severity = "error", key = {Sat},
247 * message = "3U CubeSats can only cross-link using UHF.")
248 * pattern threeUCubeSatWithNonUhfCrossLink(Sat : CubeSat3U) {
249 * CommunicatingElement.commSubsystem(Sat, SourceComm);
250 * neg find commSubsystemBandUhf(SourceComm);
251 * CommSubsystem.target(SourceComm, TargetComm);
252 * CommunicatingElement.commSubsystem(Target, TargetComm);
253 * neg find groundStationNetwork(Target);
254 * }
255 * </pre></code>
256 *
257 * @see Match
258 * @see ThreeUCubeSatWithNonUhfCrossLink
259 *
260 */
261 public static class Matcher extends BaseMatcher<ThreeUCubeSatWithNonUhfCrossLink.Match> {
262 /**
263 * Initializes the pattern matcher within an existing VIATRA Query engine.
264 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
265 *
266 * @param engine the existing VIATRA Query engine in which this matcher will be created.
267 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
268 *
269 */
270 public static ThreeUCubeSatWithNonUhfCrossLink.Matcher on(final ViatraQueryEngine engine) {
271 // check if matcher already exists
272 Matcher matcher = engine.getExistingMatcher(querySpecification());
273 if (matcher == null) {
274 matcher = (Matcher)engine.getMatcher(querySpecification());
275 }
276 return matcher;
277 }
278
279 /**
280 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
281 * @return an initialized matcher
282 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
283 *
284 */
285 public static ThreeUCubeSatWithNonUhfCrossLink.Matcher create() {
286 return new Matcher();
287 }
288
289 private static final int POSITION_SAT = 0;
290
291 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(ThreeUCubeSatWithNonUhfCrossLink.Matcher.class);
292
293 /**
294 * Initializes the pattern matcher within an existing VIATRA Query engine.
295 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
296 *
297 * @param engine the existing VIATRA Query engine in which this matcher will be created.
298 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
299 *
300 */
301 private Matcher() {
302 super(querySpecification());
303 }
304
305 /**
306 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
307 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
308 * @return matches represented as a Match object.
309 *
310 */
311 public Collection<ThreeUCubeSatWithNonUhfCrossLink.Match> getAllMatches(final CubeSat3U pSat) {
312 return rawStreamAllMatches(new Object[]{pSat}).collect(Collectors.toSet());
313 }
314
315 /**
316 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
317 * </p>
318 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
319 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
320 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
321 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
322 * @return a stream of matches represented as a Match object.
323 *
324 */
325 public Stream<ThreeUCubeSatWithNonUhfCrossLink.Match> streamAllMatches(final CubeSat3U pSat) {
326 return rawStreamAllMatches(new Object[]{pSat});
327 }
328
329 /**
330 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
331 * Neither determinism nor randomness of selection is guaranteed.
332 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
333 * @return a match represented as a Match object, or null if no match is found.
334 *
335 */
336 public Optional<ThreeUCubeSatWithNonUhfCrossLink.Match> getOneArbitraryMatch(final CubeSat3U pSat) {
337 return rawGetOneArbitraryMatch(new Object[]{pSat});
338 }
339
340 /**
341 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
342 * under any possible substitution of the unspecified parameters (if any).
343 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
344 * @return true if the input is a valid (partial) match of the pattern.
345 *
346 */
347 public boolean hasMatch(final CubeSat3U pSat) {
348 return rawHasMatch(new Object[]{pSat});
349 }
350
351 /**
352 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
353 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
354 * @return the number of pattern matches found.
355 *
356 */
357 public int countMatches(final CubeSat3U pSat) {
358 return rawCountMatches(new Object[]{pSat});
359 }
360
361 /**
362 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
363 * Neither determinism nor randomness of selection is guaranteed.
364 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
365 * @param processor the action that will process the selected match.
366 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
367 *
368 */
369 public boolean forOneArbitraryMatch(final CubeSat3U pSat, final Consumer<? super ThreeUCubeSatWithNonUhfCrossLink.Match> processor) {
370 return rawForOneArbitraryMatch(new Object[]{pSat}, processor);
371 }
372
373 /**
374 * Returns a new (partial) match.
375 * This can be used e.g. to call the matcher with a partial match.
376 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
377 * @param pSat the fixed value of pattern parameter Sat, or null if not bound.
378 * @return the (partial) match object.
379 *
380 */
381 public ThreeUCubeSatWithNonUhfCrossLink.Match newMatch(final CubeSat3U pSat) {
382 return ThreeUCubeSatWithNonUhfCrossLink.Match.newMatch(pSat);
383 }
384
385 /**
386 * Retrieve the set of values that occur in matches for Sat.
387 * @return the Set of all values or empty set if there are no matches
388 *
389 */
390 protected Stream<CubeSat3U> rawStreamAllValuesOfSat(final Object[] parameters) {
391 return rawStreamAllValues(POSITION_SAT, parameters).map(CubeSat3U.class::cast);
392 }
393
394 /**
395 * Retrieve the set of values that occur in matches for Sat.
396 * @return the Set of all values or empty set if there are no matches
397 *
398 */
399 public Set<CubeSat3U> getAllValuesOfSat() {
400 return rawStreamAllValuesOfSat(emptyArray()).collect(Collectors.toSet());
401 }
402
403 /**
404 * Retrieve the set of values that occur in matches for Sat.
405 * @return the Set of all values or empty set if there are no matches
406 *
407 */
408 public Stream<CubeSat3U> streamAllValuesOfSat() {
409 return rawStreamAllValuesOfSat(emptyArray());
410 }
411
412 @Override
413 protected ThreeUCubeSatWithNonUhfCrossLink.Match tupleToMatch(final Tuple t) {
414 try {
415 return ThreeUCubeSatWithNonUhfCrossLink.Match.newMatch((CubeSat3U) t.get(POSITION_SAT));
416 } catch(ClassCastException e) {
417 LOGGER.error("Element(s) in tuple not properly typed!",e);
418 return null;
419 }
420 }
421
422 @Override
423 protected ThreeUCubeSatWithNonUhfCrossLink.Match arrayToMatch(final Object[] match) {
424 try {
425 return ThreeUCubeSatWithNonUhfCrossLink.Match.newMatch((CubeSat3U) match[POSITION_SAT]);
426 } catch(ClassCastException e) {
427 LOGGER.error("Element(s) in array not properly typed!",e);
428 return null;
429 }
430 }
431
432 @Override
433 protected ThreeUCubeSatWithNonUhfCrossLink.Match arrayToMatchMutable(final Object[] match) {
434 try {
435 return ThreeUCubeSatWithNonUhfCrossLink.Match.newMutableMatch((CubeSat3U) match[POSITION_SAT]);
436 } catch(ClassCastException e) {
437 LOGGER.error("Element(s) in array not properly typed!",e);
438 return null;
439 }
440 }
441
442 /**
443 * @return the singleton instance of the query specification of this pattern
444 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
445 *
446 */
447 public static IQuerySpecification<ThreeUCubeSatWithNonUhfCrossLink.Matcher> querySpecification() {
448 return ThreeUCubeSatWithNonUhfCrossLink.instance();
449 }
450 }
451
452 private ThreeUCubeSatWithNonUhfCrossLink() {
453 super(GeneratedPQuery.INSTANCE);
454 }
455
456 /**
457 * @return the singleton instance of the query specification
458 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
459 *
460 */
461 public static ThreeUCubeSatWithNonUhfCrossLink instance() {
462 try{
463 return LazyHolder.INSTANCE;
464 } catch (ExceptionInInitializerError err) {
465 throw processInitializerError(err);
466 }
467 }
468
469 @Override
470 protected ThreeUCubeSatWithNonUhfCrossLink.Matcher instantiate(final ViatraQueryEngine engine) {
471 return ThreeUCubeSatWithNonUhfCrossLink.Matcher.on(engine);
472 }
473
474 @Override
475 public ThreeUCubeSatWithNonUhfCrossLink.Matcher instantiate() {
476 return ThreeUCubeSatWithNonUhfCrossLink.Matcher.create();
477 }
478
479 @Override
480 public ThreeUCubeSatWithNonUhfCrossLink.Match newEmptyMatch() {
481 return ThreeUCubeSatWithNonUhfCrossLink.Match.newEmptyMatch();
482 }
483
484 @Override
485 public ThreeUCubeSatWithNonUhfCrossLink.Match newMatch(final Object... parameters) {
486 return ThreeUCubeSatWithNonUhfCrossLink.Match.newMatch((satellite.CubeSat3U) parameters[0]);
487 }
488
489 /**
490 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.ThreeUCubeSatWithNonUhfCrossLink (visibility: PUBLIC, simpleName: ThreeUCubeSatWithNonUhfCrossLink, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.ThreeUCubeSatWithNonUhfCrossLink, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
491 * <b>not</b> at the class load time of the outer class,
492 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.ThreeUCubeSatWithNonUhfCrossLink (visibility: PUBLIC, simpleName: ThreeUCubeSatWithNonUhfCrossLink, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.ThreeUCubeSatWithNonUhfCrossLink, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
493 *
494 * <p> This workaround is required e.g. to support recursion.
495 *
496 */
497 private static class LazyHolder {
498 private static final ThreeUCubeSatWithNonUhfCrossLink INSTANCE = new ThreeUCubeSatWithNonUhfCrossLink();
499
500 /**
501 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
502 * This initialization order is required to support indirect recursion.
503 *
504 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
505 *
506 */
507 private static final Object STATIC_INITIALIZER = ensureInitialized();
508
509 public static Object ensureInitialized() {
510 INSTANCE.ensureInitializedInternal();
511 return null;
512 }
513 }
514
515 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
516 private static final ThreeUCubeSatWithNonUhfCrossLink.GeneratedPQuery INSTANCE = new GeneratedPQuery();
517
518 private final PParameter parameter_Sat = new PParameter("Sat", "satellite.CubeSat3U", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CubeSat3U")), PParameterDirection.INOUT);
519
520 private final List<PParameter> parameters = Arrays.asList(parameter_Sat);
521
522 private GeneratedPQuery() {
523 super(PVisibility.PUBLIC);
524 }
525
526 @Override
527 public String getFullyQualifiedName() {
528 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.threeUCubeSatWithNonUhfCrossLink";
529 }
530
531 @Override
532 public List<String> getParameterNames() {
533 return Arrays.asList("Sat");
534 }
535
536 @Override
537 public List<PParameter> getParameters() {
538 return parameters;
539 }
540
541 @Override
542 public Set<PBody> doGetContainedBodies() {
543 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
544 Set<PBody> bodies = new LinkedHashSet<>();
545 {
546 PBody body = new PBody(this);
547 PVariable var_Sat = body.getOrCreateVariableByName("Sat");
548 PVariable var_SourceComm = body.getOrCreateVariableByName("SourceComm");
549 PVariable var_TargetComm = body.getOrCreateVariableByName("TargetComm");
550 PVariable var_Target = body.getOrCreateVariableByName("Target");
551 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CubeSat3U")));
552 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
553 new ExportedParameter(body, var_Sat, parameter_Sat)
554 ));
555 // CommunicatingElement.commSubsystem(Sat, SourceComm)
556 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
557 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
558 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem")));
559 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
560 new Equality(body, var__virtual_0_, var_SourceComm);
561 // neg find commSubsystemBandUhf(SourceComm)
562 new NegativePatternCall(body, Tuples.flatTupleOf(var_SourceComm), CommSubsystemBandUhf.instance().getInternalQueryRepresentation());
563 // CommSubsystem.target(SourceComm, TargetComm)
564 new TypeConstraint(body, Tuples.flatTupleOf(var_SourceComm), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
565 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
566 new TypeConstraint(body, Tuples.flatTupleOf(var_SourceComm, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommSubsystem", "target")));
567 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
568 new Equality(body, var__virtual_1_, var_TargetComm);
569 // CommunicatingElement.commSubsystem(Target, TargetComm)
570 new TypeConstraint(body, Tuples.flatTupleOf(var_Target), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
571 PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}");
572 new TypeConstraint(body, Tuples.flatTupleOf(var_Target, var__virtual_2_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem")));
573 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_2_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
574 new Equality(body, var__virtual_2_, var_TargetComm);
575 // neg find groundStationNetwork(Target)
576 new NegativePatternCall(body, Tuples.flatTupleOf(var_Target), GroundStationNetwork.instance().getInternalQueryRepresentation());
577 bodies.add(body);
578 }
579 {
580 PAnnotation annotation = new PAnnotation("Constraint");
581 annotation.addAttribute("severity", "error");
582 annotation.addAttribute("key", Arrays.asList(new Object[] {
583 new ParameterReference("Sat")
584 }));
585 annotation.addAttribute("message", "3U CubeSats can only cross-link using UHF.");
586 addAnnotation(annotation);
587 }
588 return bodies;
589 }
590 }
591}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/.CubeSat6U.java._trace b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/.CubeSat6U.java._trace
deleted file mode 100644
index 09c00a25..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/.CubeSat6U.java._trace
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/.MatchingCommSubsystem.java._trace b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/.MatchingCommSubsystem.java._trace
deleted file mode 100644
index 8b57b000..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/.MatchingCommSubsystem.java._trace
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/.gitignore b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/.gitignore
deleted file mode 100644
index 2f9ae41d..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/.gitignore
+++ /dev/null
@@ -1,70 +0,0 @@
1/.CommunicationLink.java._trace
2/.SatelliteQueriesAll.java._trace
3/.IndirectCommunicationLink.java._trace
4/.DirectCommunicationLink.java._trace
5/.SpacecraftWithInterferometryPayload.java._trace
6/.SingleInterferometryPayload.java._trace
7/.AtLeastTwoInterferometryPayloads.java._trace
8/.DirectCommunicationLink2.java._trace
9/.CommSubsystemBand.java._trace
10/.CommSubsystemGain.java._trace
11/.GroundStationNetwork.java._trace
12/.SmallSat.java._trace
13/.CommSubsystemGainLow.java._trace
14/.CommSubsystemGainMedium.java._trace
15/.CommSubsystemBandUhf.java._trace
16/.MissionCoverage.java._trace
17/.SatelliteMetricsAll.java._trace
18/.MissionTime.java._trace
19/.TimeMetric.java._trace
20/.TransmitTime.java._trace
21/.TransmitRate.java._trace
22/.SpacecraftUplink.java._trace
23/.MissionScienceData.java._trace
24/.IndirectScienceData.java._trace
25/.ScienceData.java._trace
26/.IncomingData.java._trace
27/.MissionCost.java._trace
28/.BasePrice.java._trace
29/.SpacecraftOfKind.java._trace
30/.InterferometryPayloadCost.java._trace
31/.AdditionalCommSubsystemCost.java._trace
32/.SpacecraftWithTwoCommSubsystems.java._trace
33/.SpacecraftCost.java._trace
34/.CrossLinkAllowed.java._trace
35/.MatchingAntenna.java._trace
36/.CubeSat3U.java._trace
37/.LinkAllowed.java._trace
38/.IndirectLinkAllowed.java._trace
39/AdditionalCommSubsystemCost.java
40/AtLeastTwoInterferometryPayloads.java
41/BasePrice.java
42/CommSubsystemBand.java
43/CommSubsystemBandUhf.java
44/CommSubsystemGain.java
45/CommSubsystemGainLow.java
46/CommSubsystemGainMedium.java
47/CubeSat3U.java
48/DirectCommunicationLink.java
49/GroundStationNetwork.java
50/IncomingData.java
51/IndirectCommunicationLink.java
52/IndirectLinkAllowed.java
53/InterferometryPayloadCost.java
54/LinkAllowed.java
55/MatchingAntenna.java
56/MissionCost.java
57/MissionCoverage.java
58/MissionTime.java
59/SatelliteQueriesAll.java
60/ScienceData.java
61/SpacecraftCost.java
62/SpacecraftUplink.java
63/SpacecraftWithInterferometryPayload.java
64/SpacecraftWithTwoCommSubsystems.java
65/TransmitRate.java
66/TransmitTime.java
67/.CubeSat6U.java._trace
68/.MatchingCommSubsystem.java._trace
69/.TransmittingCommSubsystem.java._trace
70/.SpacecraftOfKindCount.java._trace
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/AtLeastTwoInterferometryPayloads.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/AtLeastTwoInterferometryPayloads.java
deleted file mode 100644
index 58e7e183..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/AtLeastTwoInterferometryPayloads.java
+++ /dev/null
@@ -1,138 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithInterferometryPayload;
7import java.util.Arrays;
8import java.util.LinkedHashSet;
9import java.util.List;
10import java.util.Set;
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
13import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
14import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
15import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
16import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
17import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
18import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
19import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Inequality;
20import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall;
21import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
22import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
23import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
24import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
25import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
26
27/**
28 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
29 *
30 * <p>Original source:
31 * <code><pre>
32 * private pattern atLeastTwoInterferometryPayloads(Mission : InterferometryMission) {
33 * find spacecraftWithInterferometryPayload(Mission, Spacecraft1);
34 * find spacecraftWithInterferometryPayload(Mission, Spacecraft2);
35 * Spacecraft1 != Spacecraft2;
36 * }
37 * </pre></code>
38 *
39 * @see GenericPatternMatcher
40 * @see GenericPatternMatch
41 *
42 */
43@SuppressWarnings("all")
44public final class AtLeastTwoInterferometryPayloads extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
45 private AtLeastTwoInterferometryPayloads() {
46 super(GeneratedPQuery.INSTANCE);
47 }
48
49 /**
50 * @return the singleton instance of the query specification
51 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
52 *
53 */
54 public static AtLeastTwoInterferometryPayloads instance() {
55 try{
56 return LazyHolder.INSTANCE;
57 } catch (ExceptionInInitializerError err) {
58 throw processInitializerError(err);
59 }
60 }
61
62 /**
63 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.AtLeastTwoInterferometryPayloads (visibility: PUBLIC, simpleName: AtLeastTwoInterferometryPayloads, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.AtLeastTwoInterferometryPayloads, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
64 * <b>not</b> at the class load time of the outer class,
65 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.AtLeastTwoInterferometryPayloads (visibility: PUBLIC, simpleName: AtLeastTwoInterferometryPayloads, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.AtLeastTwoInterferometryPayloads, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
66 *
67 * <p> This workaround is required e.g. to support recursion.
68 *
69 */
70 private static class LazyHolder {
71 private static final AtLeastTwoInterferometryPayloads INSTANCE = new AtLeastTwoInterferometryPayloads();
72
73 /**
74 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
75 * This initialization order is required to support indirect recursion.
76 *
77 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
78 *
79 */
80 private static final Object STATIC_INITIALIZER = ensureInitialized();
81
82 public static Object ensureInitialized() {
83 INSTANCE.ensureInitializedInternal();
84 return null;
85 }
86 }
87
88 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
89 private static final AtLeastTwoInterferometryPayloads.GeneratedPQuery INSTANCE = new GeneratedPQuery();
90
91 private final PParameter parameter_Mission = new PParameter("Mission", "satellite.InterferometryMission", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "InterferometryMission")), PParameterDirection.INOUT);
92
93 private final List<PParameter> parameters = Arrays.asList(parameter_Mission);
94
95 private GeneratedPQuery() {
96 super(PVisibility.PRIVATE);
97 }
98
99 @Override
100 public String getFullyQualifiedName() {
101 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.atLeastTwoInterferometryPayloads";
102 }
103
104 @Override
105 public List<String> getParameterNames() {
106 return Arrays.asList("Mission");
107 }
108
109 @Override
110 public List<PParameter> getParameters() {
111 return parameters;
112 }
113
114 @Override
115 public Set<PBody> doGetContainedBodies() {
116 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
117 Set<PBody> bodies = new LinkedHashSet<>();
118 {
119 PBody body = new PBody(this);
120 PVariable var_Mission = body.getOrCreateVariableByName("Mission");
121 PVariable var_Spacecraft1 = body.getOrCreateVariableByName("Spacecraft1");
122 PVariable var_Spacecraft2 = body.getOrCreateVariableByName("Spacecraft2");
123 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryMission")));
124 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
125 new ExportedParameter(body, var_Mission, parameter_Mission)
126 ));
127 // find spacecraftWithInterferometryPayload(Mission, Spacecraft1)
128 new PositivePatternCall(body, Tuples.flatTupleOf(var_Mission, var_Spacecraft1), SpacecraftWithInterferometryPayload.instance().getInternalQueryRepresentation());
129 // find spacecraftWithInterferometryPayload(Mission, Spacecraft2)
130 new PositivePatternCall(body, Tuples.flatTupleOf(var_Mission, var_Spacecraft2), SpacecraftWithInterferometryPayload.instance().getInternalQueryRepresentation());
131 // Spacecraft1 != Spacecraft2
132 new Inequality(body, var_Spacecraft1, var_Spacecraft2);
133 bodies.add(body);
134 }
135 return bodies;
136 }
137 }
138}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CommSubsystemBandUhf.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CommSubsystemBandUhf.java
deleted file mode 100644
index 6acd73c3..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CommSubsystemBandUhf.java
+++ /dev/null
@@ -1,127 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import java.util.Arrays;
7import java.util.LinkedHashSet;
8import java.util.List;
9import java.util.Set;
10import org.eclipse.emf.ecore.EClass;
11import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
12import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
13import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
14import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
15import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
16import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
17import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
18import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
19import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
20import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
21import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
22import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
23
24/**
25 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
26 *
27 * <p>Original source:
28 * <code><pre>
29 * private pattern commSubsystemBandUhf(Comm : UHFCommSubsystem) {
30 * UHFCommSubsystem(Comm);
31 * }
32 * </pre></code>
33 *
34 * @see GenericPatternMatcher
35 * @see GenericPatternMatch
36 *
37 */
38@SuppressWarnings("all")
39public final class CommSubsystemBandUhf extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
40 private CommSubsystemBandUhf() {
41 super(GeneratedPQuery.INSTANCE);
42 }
43
44 /**
45 * @return the singleton instance of the query specification
46 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
47 *
48 */
49 public static CommSubsystemBandUhf instance() {
50 try{
51 return LazyHolder.INSTANCE;
52 } catch (ExceptionInInitializerError err) {
53 throw processInitializerError(err);
54 }
55 }
56
57 /**
58 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBandUhf (visibility: PUBLIC, simpleName: CommSubsystemBandUhf, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBandUhf, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
59 * <b>not</b> at the class load time of the outer class,
60 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBandUhf (visibility: PUBLIC, simpleName: CommSubsystemBandUhf, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBandUhf, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
61 *
62 * <p> This workaround is required e.g. to support recursion.
63 *
64 */
65 private static class LazyHolder {
66 private static final CommSubsystemBandUhf INSTANCE = new CommSubsystemBandUhf();
67
68 /**
69 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
70 * This initialization order is required to support indirect recursion.
71 *
72 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
73 *
74 */
75 private static final Object STATIC_INITIALIZER = ensureInitialized();
76
77 public static Object ensureInitialized() {
78 INSTANCE.ensureInitializedInternal();
79 return null;
80 }
81 }
82
83 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
84 private static final CommSubsystemBandUhf.GeneratedPQuery INSTANCE = new GeneratedPQuery();
85
86 private final PParameter parameter_Comm = new PParameter("Comm", "satellite.UHFCommSubsystem", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "UHFCommSubsystem")), PParameterDirection.INOUT);
87
88 private final List<PParameter> parameters = Arrays.asList(parameter_Comm);
89
90 private GeneratedPQuery() {
91 super(PVisibility.PRIVATE);
92 }
93
94 @Override
95 public String getFullyQualifiedName() {
96 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.commSubsystemBandUhf";
97 }
98
99 @Override
100 public List<String> getParameterNames() {
101 return Arrays.asList("Comm");
102 }
103
104 @Override
105 public List<PParameter> getParameters() {
106 return parameters;
107 }
108
109 @Override
110 public Set<PBody> doGetContainedBodies() {
111 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
112 Set<PBody> bodies = new LinkedHashSet<>();
113 {
114 PBody body = new PBody(this);
115 PVariable var_Comm = body.getOrCreateVariableByName("Comm");
116 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "UHFCommSubsystem")));
117 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
118 new ExportedParameter(body, var_Comm, parameter_Comm)
119 ));
120 // UHFCommSubsystem(Comm)
121 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "UHFCommSubsystem")));
122 bodies.add(body);
123 }
124 return bodies;
125 }
126 }
127}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CubeSat3U.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CubeSat3U.java
deleted file mode 100644
index acc60475..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CubeSat3U.java
+++ /dev/null
@@ -1,127 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import java.util.Arrays;
7import java.util.LinkedHashSet;
8import java.util.List;
9import java.util.Set;
10import org.eclipse.emf.ecore.EClass;
11import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
12import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
13import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
14import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
15import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
16import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
17import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
18import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
19import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
20import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
21import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
22import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
23
24/**
25 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
26 *
27 * <p>Original source:
28 * <code><pre>
29 * private pattern cubeSat3U(Sat : CubeSat3U) {
30 * CubeSat3U(Sat);
31 * }
32 * </pre></code>
33 *
34 * @see GenericPatternMatcher
35 * @see GenericPatternMatch
36 *
37 */
38@SuppressWarnings("all")
39public final class CubeSat3U extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
40 private CubeSat3U() {
41 super(GeneratedPQuery.INSTANCE);
42 }
43
44 /**
45 * @return the singleton instance of the query specification
46 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
47 *
48 */
49 public static CubeSat3U instance() {
50 try{
51 return LazyHolder.INSTANCE;
52 } catch (ExceptionInInitializerError err) {
53 throw processInitializerError(err);
54 }
55 }
56
57 /**
58 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CubeSat3U (visibility: PUBLIC, simpleName: CubeSat3U, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CubeSat3U, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
59 * <b>not</b> at the class load time of the outer class,
60 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CubeSat3U (visibility: PUBLIC, simpleName: CubeSat3U, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CubeSat3U, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
61 *
62 * <p> This workaround is required e.g. to support recursion.
63 *
64 */
65 private static class LazyHolder {
66 private static final CubeSat3U INSTANCE = new CubeSat3U();
67
68 /**
69 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
70 * This initialization order is required to support indirect recursion.
71 *
72 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
73 *
74 */
75 private static final Object STATIC_INITIALIZER = ensureInitialized();
76
77 public static Object ensureInitialized() {
78 INSTANCE.ensureInitializedInternal();
79 return null;
80 }
81 }
82
83 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
84 private static final CubeSat3U.GeneratedPQuery INSTANCE = new GeneratedPQuery();
85
86 private final PParameter parameter_Sat = new PParameter("Sat", "satellite.CubeSat3U", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CubeSat3U")), PParameterDirection.INOUT);
87
88 private final List<PParameter> parameters = Arrays.asList(parameter_Sat);
89
90 private GeneratedPQuery() {
91 super(PVisibility.PRIVATE);
92 }
93
94 @Override
95 public String getFullyQualifiedName() {
96 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.cubeSat3U";
97 }
98
99 @Override
100 public List<String> getParameterNames() {
101 return Arrays.asList("Sat");
102 }
103
104 @Override
105 public List<PParameter> getParameters() {
106 return parameters;
107 }
108
109 @Override
110 public Set<PBody> doGetContainedBodies() {
111 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
112 Set<PBody> bodies = new LinkedHashSet<>();
113 {
114 PBody body = new PBody(this);
115 PVariable var_Sat = body.getOrCreateVariableByName("Sat");
116 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CubeSat3U")));
117 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
118 new ExportedParameter(body, var_Sat, parameter_Sat)
119 ));
120 // CubeSat3U(Sat)
121 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CubeSat3U")));
122 bodies.add(body);
123 }
124 return bodies;
125 }
126 }
127}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CubeSat6U.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CubeSat6U.java
deleted file mode 100644
index e4526a02..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/CubeSat6U.java
+++ /dev/null
@@ -1,127 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import java.util.Arrays;
7import java.util.LinkedHashSet;
8import java.util.List;
9import java.util.Set;
10import org.eclipse.emf.ecore.EClass;
11import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
12import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
13import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
14import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
15import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
16import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
17import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
18import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
19import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
20import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
21import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
22import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
23
24/**
25 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
26 *
27 * <p>Original source:
28 * <code><pre>
29 * private pattern cubeSat6U(Sat : CubeSat6U) {
30 * CubeSat6U(Sat);
31 * }
32 * </pre></code>
33 *
34 * @see GenericPatternMatcher
35 * @see GenericPatternMatch
36 *
37 */
38@SuppressWarnings("all")
39public final class CubeSat6U extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
40 private CubeSat6U() {
41 super(GeneratedPQuery.INSTANCE);
42 }
43
44 /**
45 * @return the singleton instance of the query specification
46 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
47 *
48 */
49 public static CubeSat6U instance() {
50 try{
51 return LazyHolder.INSTANCE;
52 } catch (ExceptionInInitializerError err) {
53 throw processInitializerError(err);
54 }
55 }
56
57 /**
58 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CubeSat6U (visibility: PUBLIC, simpleName: CubeSat6U, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CubeSat6U, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
59 * <b>not</b> at the class load time of the outer class,
60 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CubeSat6U (visibility: PUBLIC, simpleName: CubeSat6U, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CubeSat6U, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
61 *
62 * <p> This workaround is required e.g. to support recursion.
63 *
64 */
65 private static class LazyHolder {
66 private static final CubeSat6U INSTANCE = new CubeSat6U();
67
68 /**
69 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
70 * This initialization order is required to support indirect recursion.
71 *
72 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
73 *
74 */
75 private static final Object STATIC_INITIALIZER = ensureInitialized();
76
77 public static Object ensureInitialized() {
78 INSTANCE.ensureInitializedInternal();
79 return null;
80 }
81 }
82
83 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
84 private static final CubeSat6U.GeneratedPQuery INSTANCE = new GeneratedPQuery();
85
86 private final PParameter parameter_Sat = new PParameter("Sat", "satellite.CubeSat6U", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CubeSat6U")), PParameterDirection.INOUT);
87
88 private final List<PParameter> parameters = Arrays.asList(parameter_Sat);
89
90 private GeneratedPQuery() {
91 super(PVisibility.PRIVATE);
92 }
93
94 @Override
95 public String getFullyQualifiedName() {
96 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.cubeSat6U";
97 }
98
99 @Override
100 public List<String> getParameterNames() {
101 return Arrays.asList("Sat");
102 }
103
104 @Override
105 public List<PParameter> getParameters() {
106 return parameters;
107 }
108
109 @Override
110 public Set<PBody> doGetContainedBodies() {
111 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
112 Set<PBody> bodies = new LinkedHashSet<>();
113 {
114 PBody body = new PBody(this);
115 PVariable var_Sat = body.getOrCreateVariableByName("Sat");
116 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CubeSat6U")));
117 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
118 new ExportedParameter(body, var_Sat, parameter_Sat)
119 ));
120 // CubeSat6U(Sat)
121 new TypeConstraint(body, Tuples.flatTupleOf(var_Sat), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CubeSat6U")));
122 bodies.add(body);
123 }
124 return bodies;
125 }
126 }
127}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/DirectCommunicationLink.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/DirectCommunicationLink.java
deleted file mode 100644
index ee4d8715..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/DirectCommunicationLink.java
+++ /dev/null
@@ -1,154 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import java.util.Arrays;
7import java.util.LinkedHashSet;
8import java.util.List;
9import java.util.Set;
10import org.eclipse.emf.ecore.EClass;
11import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
12import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
13import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
14import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
15import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
16import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
17import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
18import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
19import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
20import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
21import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
22import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
23import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
24import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
25
26/**
27 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
28 *
29 * <p>Original source:
30 * <code><pre>
31 * private pattern directCommunicationLink(Source : CommunicatingElement, Target : CommunicatingElement) {
32 * CommSubsystem.target(SourceSubsystem, TargetSubsystem);
33 * CommunicatingElement.commSubsystem(Source, SourceSubsystem);
34 * CommunicatingElement.commSubsystem(Target, TargetSubsystem);
35 * }
36 * </pre></code>
37 *
38 * @see GenericPatternMatcher
39 * @see GenericPatternMatch
40 *
41 */
42@SuppressWarnings("all")
43public final class DirectCommunicationLink extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
44 private DirectCommunicationLink() {
45 super(GeneratedPQuery.INSTANCE);
46 }
47
48 /**
49 * @return the singleton instance of the query specification
50 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
51 *
52 */
53 public static DirectCommunicationLink instance() {
54 try{
55 return LazyHolder.INSTANCE;
56 } catch (ExceptionInInitializerError err) {
57 throw processInitializerError(err);
58 }
59 }
60
61 /**
62 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.DirectCommunicationLink (visibility: PUBLIC, simpleName: DirectCommunicationLink, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.DirectCommunicationLink, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
63 * <b>not</b> at the class load time of the outer class,
64 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.DirectCommunicationLink (visibility: PUBLIC, simpleName: DirectCommunicationLink, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.DirectCommunicationLink, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
65 *
66 * <p> This workaround is required e.g. to support recursion.
67 *
68 */
69 private static class LazyHolder {
70 private static final DirectCommunicationLink INSTANCE = new DirectCommunicationLink();
71
72 /**
73 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
74 * This initialization order is required to support indirect recursion.
75 *
76 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
77 *
78 */
79 private static final Object STATIC_INITIALIZER = ensureInitialized();
80
81 public static Object ensureInitialized() {
82 INSTANCE.ensureInitializedInternal();
83 return null;
84 }
85 }
86
87 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
88 private static final DirectCommunicationLink.GeneratedPQuery INSTANCE = new GeneratedPQuery();
89
90 private final PParameter parameter_Source = new PParameter("Source", "satellite.CommunicatingElement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommunicatingElement")), PParameterDirection.INOUT);
91
92 private final PParameter parameter_Target = new PParameter("Target", "satellite.CommunicatingElement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommunicatingElement")), PParameterDirection.INOUT);
93
94 private final List<PParameter> parameters = Arrays.asList(parameter_Source, parameter_Target);
95
96 private GeneratedPQuery() {
97 super(PVisibility.PRIVATE);
98 }
99
100 @Override
101 public String getFullyQualifiedName() {
102 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.directCommunicationLink";
103 }
104
105 @Override
106 public List<String> getParameterNames() {
107 return Arrays.asList("Source","Target");
108 }
109
110 @Override
111 public List<PParameter> getParameters() {
112 return parameters;
113 }
114
115 @Override
116 public Set<PBody> doGetContainedBodies() {
117 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
118 Set<PBody> bodies = new LinkedHashSet<>();
119 {
120 PBody body = new PBody(this);
121 PVariable var_Source = body.getOrCreateVariableByName("Source");
122 PVariable var_Target = body.getOrCreateVariableByName("Target");
123 PVariable var_SourceSubsystem = body.getOrCreateVariableByName("SourceSubsystem");
124 PVariable var_TargetSubsystem = body.getOrCreateVariableByName("TargetSubsystem");
125 new TypeConstraint(body, Tuples.flatTupleOf(var_Source), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
126 new TypeConstraint(body, Tuples.flatTupleOf(var_Target), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
127 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
128 new ExportedParameter(body, var_Source, parameter_Source),
129 new ExportedParameter(body, var_Target, parameter_Target)
130 ));
131 // CommSubsystem.target(SourceSubsystem, TargetSubsystem)
132 new TypeConstraint(body, Tuples.flatTupleOf(var_SourceSubsystem), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
133 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
134 new TypeConstraint(body, Tuples.flatTupleOf(var_SourceSubsystem, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommSubsystem", "target")));
135 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
136 new Equality(body, var__virtual_0_, var_TargetSubsystem);
137 // CommunicatingElement.commSubsystem(Source, SourceSubsystem)
138 new TypeConstraint(body, Tuples.flatTupleOf(var_Source), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
139 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
140 new TypeConstraint(body, Tuples.flatTupleOf(var_Source, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem")));
141 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
142 new Equality(body, var__virtual_1_, var_SourceSubsystem);
143 // CommunicatingElement.commSubsystem(Target, TargetSubsystem)
144 new TypeConstraint(body, Tuples.flatTupleOf(var_Target), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
145 PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}");
146 new TypeConstraint(body, Tuples.flatTupleOf(var_Target, var__virtual_2_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem")));
147 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_2_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
148 new Equality(body, var__virtual_2_, var_TargetSubsystem);
149 bodies.add(body);
150 }
151 return bodies;
152 }
153 }
154}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/GroundStationNetwork.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/GroundStationNetwork.java
deleted file mode 100644
index 606cdfed..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/GroundStationNetwork.java
+++ /dev/null
@@ -1,127 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import java.util.Arrays;
7import java.util.LinkedHashSet;
8import java.util.List;
9import java.util.Set;
10import org.eclipse.emf.ecore.EClass;
11import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
12import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
13import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
14import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
15import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
16import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
17import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
18import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
19import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
20import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
21import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
22import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
23
24/**
25 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
26 *
27 * <p>Original source:
28 * <code><pre>
29 * private pattern groundStationNetwork(Network : GroundStationNetwork) {
30 * GroundStationNetwork(Network);
31 * }
32 * </pre></code>
33 *
34 * @see GenericPatternMatcher
35 * @see GenericPatternMatch
36 *
37 */
38@SuppressWarnings("all")
39public final class GroundStationNetwork extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
40 private GroundStationNetwork() {
41 super(GeneratedPQuery.INSTANCE);
42 }
43
44 /**
45 * @return the singleton instance of the query specification
46 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
47 *
48 */
49 public static GroundStationNetwork instance() {
50 try{
51 return LazyHolder.INSTANCE;
52 } catch (ExceptionInInitializerError err) {
53 throw processInitializerError(err);
54 }
55 }
56
57 /**
58 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.GroundStationNetwork (visibility: PUBLIC, simpleName: GroundStationNetwork, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.GroundStationNetwork, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
59 * <b>not</b> at the class load time of the outer class,
60 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.GroundStationNetwork (visibility: PUBLIC, simpleName: GroundStationNetwork, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.GroundStationNetwork, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
61 *
62 * <p> This workaround is required e.g. to support recursion.
63 *
64 */
65 private static class LazyHolder {
66 private static final GroundStationNetwork INSTANCE = new GroundStationNetwork();
67
68 /**
69 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
70 * This initialization order is required to support indirect recursion.
71 *
72 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
73 *
74 */
75 private static final Object STATIC_INITIALIZER = ensureInitialized();
76
77 public static Object ensureInitialized() {
78 INSTANCE.ensureInitializedInternal();
79 return null;
80 }
81 }
82
83 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
84 private static final GroundStationNetwork.GeneratedPQuery INSTANCE = new GeneratedPQuery();
85
86 private final PParameter parameter_Network = new PParameter("Network", "satellite.GroundStationNetwork", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "GroundStationNetwork")), PParameterDirection.INOUT);
87
88 private final List<PParameter> parameters = Arrays.asList(parameter_Network);
89
90 private GeneratedPQuery() {
91 super(PVisibility.PRIVATE);
92 }
93
94 @Override
95 public String getFullyQualifiedName() {
96 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.groundStationNetwork";
97 }
98
99 @Override
100 public List<String> getParameterNames() {
101 return Arrays.asList("Network");
102 }
103
104 @Override
105 public List<PParameter> getParameters() {
106 return parameters;
107 }
108
109 @Override
110 public Set<PBody> doGetContainedBodies() {
111 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
112 Set<PBody> bodies = new LinkedHashSet<>();
113 {
114 PBody body = new PBody(this);
115 PVariable var_Network = body.getOrCreateVariableByName("Network");
116 new TypeConstraint(body, Tuples.flatTupleOf(var_Network), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "GroundStationNetwork")));
117 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
118 new ExportedParameter(body, var_Network, parameter_Network)
119 ));
120 // GroundStationNetwork(Network)
121 new TypeConstraint(body, Tuples.flatTupleOf(var_Network), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "GroundStationNetwork")));
122 bodies.add(body);
123 }
124 return bodies;
125 }
126 }
127}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/IndirectCommunicationLink.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/IndirectCommunicationLink.java
deleted file mode 100644
index dee8a83c..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/IndirectCommunicationLink.java
+++ /dev/null
@@ -1,134 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.DirectCommunicationLink;
7import java.util.Arrays;
8import java.util.LinkedHashSet;
9import java.util.List;
10import java.util.Set;
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
13import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
14import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
15import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
16import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
17import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
18import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
19import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.BinaryTransitiveClosure;
20import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
21import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
22import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
23import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
24import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
25
26/**
27 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
28 *
29 * <p>Original source:
30 * <code><pre>
31 * private pattern indirectCommunicationLink(Source : CommunicatingElement, Target : CommunicatingElement) {
32 * find directCommunicationLink+(Source, Target);
33 * }
34 * </pre></code>
35 *
36 * @see GenericPatternMatcher
37 * @see GenericPatternMatch
38 *
39 */
40@SuppressWarnings("all")
41public final class IndirectCommunicationLink extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
42 private IndirectCommunicationLink() {
43 super(GeneratedPQuery.INSTANCE);
44 }
45
46 /**
47 * @return the singleton instance of the query specification
48 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
49 *
50 */
51 public static IndirectCommunicationLink instance() {
52 try{
53 return LazyHolder.INSTANCE;
54 } catch (ExceptionInInitializerError err) {
55 throw processInitializerError(err);
56 }
57 }
58
59 /**
60 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectCommunicationLink (visibility: PUBLIC, simpleName: IndirectCommunicationLink, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectCommunicationLink, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
61 * <b>not</b> at the class load time of the outer class,
62 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectCommunicationLink (visibility: PUBLIC, simpleName: IndirectCommunicationLink, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectCommunicationLink, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
63 *
64 * <p> This workaround is required e.g. to support recursion.
65 *
66 */
67 private static class LazyHolder {
68 private static final IndirectCommunicationLink INSTANCE = new IndirectCommunicationLink();
69
70 /**
71 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
72 * This initialization order is required to support indirect recursion.
73 *
74 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
75 *
76 */
77 private static final Object STATIC_INITIALIZER = ensureInitialized();
78
79 public static Object ensureInitialized() {
80 INSTANCE.ensureInitializedInternal();
81 return null;
82 }
83 }
84
85 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
86 private static final IndirectCommunicationLink.GeneratedPQuery INSTANCE = new GeneratedPQuery();
87
88 private final PParameter parameter_Source = new PParameter("Source", "satellite.CommunicatingElement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommunicatingElement")), PParameterDirection.INOUT);
89
90 private final PParameter parameter_Target = new PParameter("Target", "satellite.CommunicatingElement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommunicatingElement")), PParameterDirection.INOUT);
91
92 private final List<PParameter> parameters = Arrays.asList(parameter_Source, parameter_Target);
93
94 private GeneratedPQuery() {
95 super(PVisibility.PRIVATE);
96 }
97
98 @Override
99 public String getFullyQualifiedName() {
100 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.indirectCommunicationLink";
101 }
102
103 @Override
104 public List<String> getParameterNames() {
105 return Arrays.asList("Source","Target");
106 }
107
108 @Override
109 public List<PParameter> getParameters() {
110 return parameters;
111 }
112
113 @Override
114 public Set<PBody> doGetContainedBodies() {
115 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
116 Set<PBody> bodies = new LinkedHashSet<>();
117 {
118 PBody body = new PBody(this);
119 PVariable var_Source = body.getOrCreateVariableByName("Source");
120 PVariable var_Target = body.getOrCreateVariableByName("Target");
121 new TypeConstraint(body, Tuples.flatTupleOf(var_Source), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
122 new TypeConstraint(body, Tuples.flatTupleOf(var_Target), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
123 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
124 new ExportedParameter(body, var_Source, parameter_Source),
125 new ExportedParameter(body, var_Target, parameter_Target)
126 ));
127 // find directCommunicationLink+(Source, Target)
128 new BinaryTransitiveClosure(body, Tuples.flatTupleOf(var_Source, var_Target), DirectCommunicationLink.instance().getInternalQueryRepresentation());
129 bodies.add(body);
130 }
131 return bodies;
132 }
133 }
134}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/IndirectLinkAllowed.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/IndirectLinkAllowed.java
deleted file mode 100644
index 31381a09..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/IndirectLinkAllowed.java
+++ /dev/null
@@ -1,134 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.LinkAllowed;
7import java.util.Arrays;
8import java.util.LinkedHashSet;
9import java.util.List;
10import java.util.Set;
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
13import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
14import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
15import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
16import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
17import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
18import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
19import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.BinaryTransitiveClosure;
20import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
21import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
22import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
23import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
24import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
25
26/**
27 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
28 *
29 * <p>Original source:
30 * <code><pre>
31 * private pattern indirectLinkAllowed(From : Spacecraft, To : CommunicatingElement) {
32 * find linkAllowed+(From, To);
33 * }
34 * </pre></code>
35 *
36 * @see GenericPatternMatcher
37 * @see GenericPatternMatch
38 *
39 */
40@SuppressWarnings("all")
41public final class IndirectLinkAllowed extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
42 private IndirectLinkAllowed() {
43 super(GeneratedPQuery.INSTANCE);
44 }
45
46 /**
47 * @return the singleton instance of the query specification
48 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
49 *
50 */
51 public static IndirectLinkAllowed instance() {
52 try{
53 return LazyHolder.INSTANCE;
54 } catch (ExceptionInInitializerError err) {
55 throw processInitializerError(err);
56 }
57 }
58
59 /**
60 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectLinkAllowed (visibility: PUBLIC, simpleName: IndirectLinkAllowed, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectLinkAllowed, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
61 * <b>not</b> at the class load time of the outer class,
62 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectLinkAllowed (visibility: PUBLIC, simpleName: IndirectLinkAllowed, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectLinkAllowed, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
63 *
64 * <p> This workaround is required e.g. to support recursion.
65 *
66 */
67 private static class LazyHolder {
68 private static final IndirectLinkAllowed INSTANCE = new IndirectLinkAllowed();
69
70 /**
71 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
72 * This initialization order is required to support indirect recursion.
73 *
74 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
75 *
76 */
77 private static final Object STATIC_INITIALIZER = ensureInitialized();
78
79 public static Object ensureInitialized() {
80 INSTANCE.ensureInitializedInternal();
81 return null;
82 }
83 }
84
85 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
86 private static final IndirectLinkAllowed.GeneratedPQuery INSTANCE = new GeneratedPQuery();
87
88 private final PParameter parameter_From = new PParameter("From", "satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT);
89
90 private final PParameter parameter_To = new PParameter("To", "satellite.CommunicatingElement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommunicatingElement")), PParameterDirection.INOUT);
91
92 private final List<PParameter> parameters = Arrays.asList(parameter_From, parameter_To);
93
94 private GeneratedPQuery() {
95 super(PVisibility.PRIVATE);
96 }
97
98 @Override
99 public String getFullyQualifiedName() {
100 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.indirectLinkAllowed";
101 }
102
103 @Override
104 public List<String> getParameterNames() {
105 return Arrays.asList("From","To");
106 }
107
108 @Override
109 public List<PParameter> getParameters() {
110 return parameters;
111 }
112
113 @Override
114 public Set<PBody> doGetContainedBodies() {
115 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
116 Set<PBody> bodies = new LinkedHashSet<>();
117 {
118 PBody body = new PBody(this);
119 PVariable var_From = body.getOrCreateVariableByName("From");
120 PVariable var_To = body.getOrCreateVariableByName("To");
121 new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
122 new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
123 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
124 new ExportedParameter(body, var_From, parameter_From),
125 new ExportedParameter(body, var_To, parameter_To)
126 ));
127 // find linkAllowed+(From, To)
128 new BinaryTransitiveClosure(body, Tuples.flatTupleOf(var_From, var_To), LinkAllowed.instance().getInternalQueryRepresentation());
129 bodies.add(body);
130 }
131 return bodies;
132 }
133 }
134}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/LinkAllowed.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/LinkAllowed.java
deleted file mode 100644
index c3f6bb82..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/LinkAllowed.java
+++ /dev/null
@@ -1,180 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CubeSat3U;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MatchingAntenna;
8import java.util.Arrays;
9import java.util.LinkedHashSet;
10import java.util.List;
11import java.util.Set;
12import org.eclipse.emf.ecore.EClass;
13import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
14import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
15import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
16import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
17import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
18import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
19import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
20import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall;
21import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall;
22import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
23import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
24import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
25import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
26import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
27
28/**
29 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
30 *
31 * <p>Original source:
32 * <code><pre>
33 * private pattern linkAllowed(From : Spacecraft, To : CommunicatingElement) {
34 * find matchingAntenna(From, To);
35 * neg find cubeSat3U(From);
36 * } or {
37 * find matchingAntenna(From, To);
38 * CubeSat3U(From);
39 * } or {
40 * find matchingAntenna(From, To);
41 * CubeSat3U(From);
42 * GroundStationNetwork(To);
43 * }
44 * </pre></code>
45 *
46 * @see GenericPatternMatcher
47 * @see GenericPatternMatch
48 *
49 */
50@SuppressWarnings("all")
51public final class LinkAllowed extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
52 private LinkAllowed() {
53 super(GeneratedPQuery.INSTANCE);
54 }
55
56 /**
57 * @return the singleton instance of the query specification
58 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
59 *
60 */
61 public static LinkAllowed instance() {
62 try{
63 return LazyHolder.INSTANCE;
64 } catch (ExceptionInInitializerError err) {
65 throw processInitializerError(err);
66 }
67 }
68
69 /**
70 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.LinkAllowed (visibility: PUBLIC, simpleName: LinkAllowed, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.LinkAllowed, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
71 * <b>not</b> at the class load time of the outer class,
72 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.LinkAllowed (visibility: PUBLIC, simpleName: LinkAllowed, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.LinkAllowed, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
73 *
74 * <p> This workaround is required e.g. to support recursion.
75 *
76 */
77 private static class LazyHolder {
78 private static final LinkAllowed INSTANCE = new LinkAllowed();
79
80 /**
81 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
82 * This initialization order is required to support indirect recursion.
83 *
84 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
85 *
86 */
87 private static final Object STATIC_INITIALIZER = ensureInitialized();
88
89 public static Object ensureInitialized() {
90 INSTANCE.ensureInitializedInternal();
91 return null;
92 }
93 }
94
95 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
96 private static final LinkAllowed.GeneratedPQuery INSTANCE = new GeneratedPQuery();
97
98 private final PParameter parameter_From = new PParameter("From", "satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT);
99
100 private final PParameter parameter_To = new PParameter("To", "satellite.CommunicatingElement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommunicatingElement")), PParameterDirection.INOUT);
101
102 private final List<PParameter> parameters = Arrays.asList(parameter_From, parameter_To);
103
104 private GeneratedPQuery() {
105 super(PVisibility.PRIVATE);
106 }
107
108 @Override
109 public String getFullyQualifiedName() {
110 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.linkAllowed";
111 }
112
113 @Override
114 public List<String> getParameterNames() {
115 return Arrays.asList("From","To");
116 }
117
118 @Override
119 public List<PParameter> getParameters() {
120 return parameters;
121 }
122
123 @Override
124 public Set<PBody> doGetContainedBodies() {
125 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
126 Set<PBody> bodies = new LinkedHashSet<>();
127 {
128 PBody body = new PBody(this);
129 PVariable var_From = body.getOrCreateVariableByName("From");
130 PVariable var_To = body.getOrCreateVariableByName("To");
131 new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
132 new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
133 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
134 new ExportedParameter(body, var_From, parameter_From),
135 new ExportedParameter(body, var_To, parameter_To)
136 ));
137 // find matchingAntenna(From, To)
138 new PositivePatternCall(body, Tuples.flatTupleOf(var_From, var_To), MatchingAntenna.instance().getInternalQueryRepresentation());
139 // neg find cubeSat3U(From)
140 new NegativePatternCall(body, Tuples.flatTupleOf(var_From), CubeSat3U.instance().getInternalQueryRepresentation());
141 bodies.add(body);
142 }
143 {
144 PBody body = new PBody(this);
145 PVariable var_From = body.getOrCreateVariableByName("From");
146 PVariable var_To = body.getOrCreateVariableByName("To");
147 new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
148 new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
149 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
150 new ExportedParameter(body, var_From, parameter_From),
151 new ExportedParameter(body, var_To, parameter_To)
152 ));
153 // find matchingAntenna(From, To)
154 new PositivePatternCall(body, Tuples.flatTupleOf(var_From, var_To), MatchingAntenna.instance().getInternalQueryRepresentation());
155 // CubeSat3U(From)
156 new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CubeSat3U")));
157 bodies.add(body);
158 }
159 {
160 PBody body = new PBody(this);
161 PVariable var_From = body.getOrCreateVariableByName("From");
162 PVariable var_To = body.getOrCreateVariableByName("To");
163 new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
164 new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
165 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
166 new ExportedParameter(body, var_From, parameter_From),
167 new ExportedParameter(body, var_To, parameter_To)
168 ));
169 // find matchingAntenna(From, To)
170 new PositivePatternCall(body, Tuples.flatTupleOf(var_From, var_To), MatchingAntenna.instance().getInternalQueryRepresentation());
171 // CubeSat3U(From)
172 new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CubeSat3U")));
173 // GroundStationNetwork(To)
174 new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "GroundStationNetwork")));
175 bodies.add(body);
176 }
177 return bodies;
178 }
179 }
180}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MatchingAntenna.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MatchingAntenna.java
deleted file mode 100644
index 6ee10814..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MatchingAntenna.java
+++ /dev/null
@@ -1,152 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MatchingCommSubsystem;
7import java.util.Arrays;
8import java.util.LinkedHashSet;
9import java.util.List;
10import java.util.Set;
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
13import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
14import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
15import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
16import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
17import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
18import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
19import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
20import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
21import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall;
22import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
23import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
24import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
25import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
26import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
27
28/**
29 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
30 *
31 * <p>Original source:
32 * <code><pre>
33 * private pattern matchingAntenna(From : Spacecraft, To : CommunicatingElement) {
34 * CommunicatingElement.commSubsystem(From, FromSys);
35 * CommunicatingElement.commSubsystem(To, ToSys);
36 * find matchingCommSubsystem(FromSys, ToSys);
37 * }
38 * </pre></code>
39 *
40 * @see GenericPatternMatcher
41 * @see GenericPatternMatch
42 *
43 */
44@SuppressWarnings("all")
45public final class MatchingAntenna extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
46 private MatchingAntenna() {
47 super(GeneratedPQuery.INSTANCE);
48 }
49
50 /**
51 * @return the singleton instance of the query specification
52 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
53 *
54 */
55 public static MatchingAntenna instance() {
56 try{
57 return LazyHolder.INSTANCE;
58 } catch (ExceptionInInitializerError err) {
59 throw processInitializerError(err);
60 }
61 }
62
63 /**
64 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MatchingAntenna (visibility: PUBLIC, simpleName: MatchingAntenna, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MatchingAntenna, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
65 * <b>not</b> at the class load time of the outer class,
66 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MatchingAntenna (visibility: PUBLIC, simpleName: MatchingAntenna, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MatchingAntenna, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
67 *
68 * <p> This workaround is required e.g. to support recursion.
69 *
70 */
71 private static class LazyHolder {
72 private static final MatchingAntenna INSTANCE = new MatchingAntenna();
73
74 /**
75 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
76 * This initialization order is required to support indirect recursion.
77 *
78 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
79 *
80 */
81 private static final Object STATIC_INITIALIZER = ensureInitialized();
82
83 public static Object ensureInitialized() {
84 INSTANCE.ensureInitializedInternal();
85 return null;
86 }
87 }
88
89 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
90 private static final MatchingAntenna.GeneratedPQuery INSTANCE = new GeneratedPQuery();
91
92 private final PParameter parameter_From = new PParameter("From", "satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT);
93
94 private final PParameter parameter_To = new PParameter("To", "satellite.CommunicatingElement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommunicatingElement")), PParameterDirection.INOUT);
95
96 private final List<PParameter> parameters = Arrays.asList(parameter_From, parameter_To);
97
98 private GeneratedPQuery() {
99 super(PVisibility.PRIVATE);
100 }
101
102 @Override
103 public String getFullyQualifiedName() {
104 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.matchingAntenna";
105 }
106
107 @Override
108 public List<String> getParameterNames() {
109 return Arrays.asList("From","To");
110 }
111
112 @Override
113 public List<PParameter> getParameters() {
114 return parameters;
115 }
116
117 @Override
118 public Set<PBody> doGetContainedBodies() {
119 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
120 Set<PBody> bodies = new LinkedHashSet<>();
121 {
122 PBody body = new PBody(this);
123 PVariable var_From = body.getOrCreateVariableByName("From");
124 PVariable var_To = body.getOrCreateVariableByName("To");
125 PVariable var_FromSys = body.getOrCreateVariableByName("FromSys");
126 PVariable var_ToSys = body.getOrCreateVariableByName("ToSys");
127 new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
128 new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
129 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
130 new ExportedParameter(body, var_From, parameter_From),
131 new ExportedParameter(body, var_To, parameter_To)
132 ));
133 // CommunicatingElement.commSubsystem(From, FromSys)
134 new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
135 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
136 new TypeConstraint(body, Tuples.flatTupleOf(var_From, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem")));
137 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
138 new Equality(body, var__virtual_0_, var_FromSys);
139 // CommunicatingElement.commSubsystem(To, ToSys)
140 new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
141 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
142 new TypeConstraint(body, Tuples.flatTupleOf(var_To, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem")));
143 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
144 new Equality(body, var__virtual_1_, var_ToSys);
145 // find matchingCommSubsystem(FromSys, ToSys)
146 new PositivePatternCall(body, Tuples.flatTupleOf(var_FromSys, var_ToSys), MatchingCommSubsystem.instance().getInternalQueryRepresentation());
147 bodies.add(body);
148 }
149 return bodies;
150 }
151 }
152}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MatchingCommSubsystem.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MatchingCommSubsystem.java
deleted file mode 100644
index 24726d21..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/MatchingCommSubsystem.java
+++ /dev/null
@@ -1,173 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import java.util.Arrays;
7import java.util.LinkedHashSet;
8import java.util.List;
9import java.util.Set;
10import org.eclipse.emf.ecore.EClass;
11import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
12import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
13import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
14import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
15import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
16import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
17import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
18import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
19import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
20import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
21import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
22import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
23
24/**
25 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
26 *
27 * <p>Original source:
28 * <code><pre>
29 * private pattern matchingCommSubsystem(From : CommSubsystem, To : CommSubsystem) {
30 * UHFCommSubsystem(From);
31 * UHFCommSubsystem(To);
32 * } or {
33 * XCommSubsystem(From);
34 * XCommSubsystem(To);
35 * } or {
36 * KaCommSubsystem(From);
37 * KaCommSubsystem(To);
38 * }
39 * </pre></code>
40 *
41 * @see GenericPatternMatcher
42 * @see GenericPatternMatch
43 *
44 */
45@SuppressWarnings("all")
46public final class MatchingCommSubsystem extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
47 private MatchingCommSubsystem() {
48 super(GeneratedPQuery.INSTANCE);
49 }
50
51 /**
52 * @return the singleton instance of the query specification
53 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
54 *
55 */
56 public static MatchingCommSubsystem instance() {
57 try{
58 return LazyHolder.INSTANCE;
59 } catch (ExceptionInInitializerError err) {
60 throw processInitializerError(err);
61 }
62 }
63
64 /**
65 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MatchingCommSubsystem (visibility: PUBLIC, simpleName: MatchingCommSubsystem, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MatchingCommSubsystem, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
66 * <b>not</b> at the class load time of the outer class,
67 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MatchingCommSubsystem (visibility: PUBLIC, simpleName: MatchingCommSubsystem, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MatchingCommSubsystem, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
68 *
69 * <p> This workaround is required e.g. to support recursion.
70 *
71 */
72 private static class LazyHolder {
73 private static final MatchingCommSubsystem INSTANCE = new MatchingCommSubsystem();
74
75 /**
76 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
77 * This initialization order is required to support indirect recursion.
78 *
79 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
80 *
81 */
82 private static final Object STATIC_INITIALIZER = ensureInitialized();
83
84 public static Object ensureInitialized() {
85 INSTANCE.ensureInitializedInternal();
86 return null;
87 }
88 }
89
90 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
91 private static final MatchingCommSubsystem.GeneratedPQuery INSTANCE = new GeneratedPQuery();
92
93 private final PParameter parameter_From = new PParameter("From", "satellite.CommSubsystem", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommSubsystem")), PParameterDirection.INOUT);
94
95 private final PParameter parameter_To = new PParameter("To", "satellite.CommSubsystem", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommSubsystem")), PParameterDirection.INOUT);
96
97 private final List<PParameter> parameters = Arrays.asList(parameter_From, parameter_To);
98
99 private GeneratedPQuery() {
100 super(PVisibility.PRIVATE);
101 }
102
103 @Override
104 public String getFullyQualifiedName() {
105 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.matchingCommSubsystem";
106 }
107
108 @Override
109 public List<String> getParameterNames() {
110 return Arrays.asList("From","To");
111 }
112
113 @Override
114 public List<PParameter> getParameters() {
115 return parameters;
116 }
117
118 @Override
119 public Set<PBody> doGetContainedBodies() {
120 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
121 Set<PBody> bodies = new LinkedHashSet<>();
122 {
123 PBody body = new PBody(this);
124 PVariable var_From = body.getOrCreateVariableByName("From");
125 PVariable var_To = body.getOrCreateVariableByName("To");
126 new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
127 new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
128 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
129 new ExportedParameter(body, var_From, parameter_From),
130 new ExportedParameter(body, var_To, parameter_To)
131 ));
132 // UHFCommSubsystem(From)
133 new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "UHFCommSubsystem")));
134 // UHFCommSubsystem(To)
135 new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "UHFCommSubsystem")));
136 bodies.add(body);
137 }
138 {
139 PBody body = new PBody(this);
140 PVariable var_From = body.getOrCreateVariableByName("From");
141 PVariable var_To = body.getOrCreateVariableByName("To");
142 new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
143 new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
144 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
145 new ExportedParameter(body, var_From, parameter_From),
146 new ExportedParameter(body, var_To, parameter_To)
147 ));
148 // XCommSubsystem(From)
149 new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "XCommSubsystem")));
150 // XCommSubsystem(To)
151 new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "XCommSubsystem")));
152 bodies.add(body);
153 }
154 {
155 PBody body = new PBody(this);
156 PVariable var_From = body.getOrCreateVariableByName("From");
157 PVariable var_To = body.getOrCreateVariableByName("To");
158 new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
159 new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
160 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
161 new ExportedParameter(body, var_From, parameter_From),
162 new ExportedParameter(body, var_To, parameter_To)
163 ));
164 // KaCommSubsystem(From)
165 new TypeConstraint(body, Tuples.flatTupleOf(var_From), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "KaCommSubsystem")));
166 // KaCommSubsystem(To)
167 new TypeConstraint(body, Tuples.flatTupleOf(var_To), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "KaCommSubsystem")));
168 bodies.add(body);
169 }
170 return bodies;
171 }
172 }
173}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SatelliteQueriesAll.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SatelliteQueriesAll.java
deleted file mode 100644
index 4093e2b2..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SatelliteQueriesAll.java
+++ /dev/null
@@ -1,105 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLinkDoesNotStartAtContainingElement;
7import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CommunicationLoop;
8import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CubeSatWithKaAntenna;
9import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.IncompatibleSourceAndTargetBand;
10import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoLinkToGroundStation;
11import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NoPotentialLinkToGroundStation;
12import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.NotEnoughInterferometryPayloads;
13import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SmallSat;
14import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.ThreeUCubeSatWithNonUhfCrossLink;
15import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.AtLeastTwoInterferometryPayloads;
16import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CommSubsystemBandUhf;
17import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CubeSat3U;
18import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.CubeSat6U;
19import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.DirectCommunicationLink;
20import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.GroundStationNetwork;
21import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectCommunicationLink;
22import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.IndirectLinkAllowed;
23import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.LinkAllowed;
24import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MatchingAntenna;
25import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.MatchingCommSubsystem;
26import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithInterferometryPayload;
27import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmittingCommSubsystem;
28import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedPatternGroup;
29
30/**
31 * A pattern group formed of all patterns defined in SatelliteQueries.vql.
32 *
33 * <p>A private group that includes private patterns as well. Only intended use case is for pattern testing.
34 *
35 * <p> From package hu.bme.mit.inf.dslreasoner.domains.satellite.queries, the group contains the definition of the following patterns: <ul>
36 * <li>communicationLinkDoesNotStartAtContainingElement</li>
37 * <li>transmittingCommSubsystem</li>
38 * <li>notEnoughInterferometryPayloads</li>
39 * <li>atLeastTwoInterferometryPayloads</li>
40 * <li>spacecraftWithInterferometryPayload</li>
41 * <li>noLinkToGroundStation</li>
42 * <li>noPotentialLinkToGroundStation</li>
43 * <li>indirectLinkAllowed</li>
44 * <li>linkAllowed</li>
45 * <li>matchingAntenna</li>
46 * <li>matchingCommSubsystem</li>
47 * <li>cubeSat3U</li>
48 * <li>cubeSat6U</li>
49 * <li>communicationLoop</li>
50 * <li>indirectCommunicationLink</li>
51 * <li>directCommunicationLink</li>
52 * <li>incompatibleSourceAndTargetBand</li>
53 * <li>threeUCubeSatWithNonUhfCrossLink</li>
54 * <li>commSubsystemBandUhf</li>
55 * <li>groundStationNetwork</li>
56 * <li>cubeSatWithKaAntenna</li>
57 * <li>smallSat</li>
58 * </ul>
59 *
60 * @see IQueryGroup
61 *
62 */
63@SuppressWarnings("all")
64public final class SatelliteQueriesAll extends BaseGeneratedPatternGroup {
65 /**
66 * Access the pattern group.
67 *
68 * @return the singleton instance of the group
69 * @throws ViatraQueryRuntimeException if there was an error loading the generated code of pattern specifications
70 *
71 */
72 public static SatelliteQueriesAll instance() {
73 if (INSTANCE == null) {
74 INSTANCE = new SatelliteQueriesAll();
75 }
76 return INSTANCE;
77 }
78
79 private static SatelliteQueriesAll INSTANCE;
80
81 private SatelliteQueriesAll() {
82 querySpecifications.add(CommunicationLinkDoesNotStartAtContainingElement.instance());
83 querySpecifications.add(TransmittingCommSubsystem.instance());
84 querySpecifications.add(NotEnoughInterferometryPayloads.instance());
85 querySpecifications.add(AtLeastTwoInterferometryPayloads.instance());
86 querySpecifications.add(SpacecraftWithInterferometryPayload.instance());
87 querySpecifications.add(NoLinkToGroundStation.instance());
88 querySpecifications.add(NoPotentialLinkToGroundStation.instance());
89 querySpecifications.add(IndirectLinkAllowed.instance());
90 querySpecifications.add(LinkAllowed.instance());
91 querySpecifications.add(MatchingAntenna.instance());
92 querySpecifications.add(MatchingCommSubsystem.instance());
93 querySpecifications.add(CubeSat3U.instance());
94 querySpecifications.add(CubeSat6U.instance());
95 querySpecifications.add(CommunicationLoop.instance());
96 querySpecifications.add(IndirectCommunicationLink.instance());
97 querySpecifications.add(DirectCommunicationLink.instance());
98 querySpecifications.add(IncompatibleSourceAndTargetBand.instance());
99 querySpecifications.add(ThreeUCubeSatWithNonUhfCrossLink.instance());
100 querySpecifications.add(CommSubsystemBandUhf.instance());
101 querySpecifications.add(GroundStationNetwork.instance());
102 querySpecifications.add(CubeSatWithKaAntenna.instance());
103 querySpecifications.add(SmallSat.instance());
104 }
105}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftWithInterferometryPayload.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftWithInterferometryPayload.java
deleted file mode 100644
index 9566c4c5..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/SpacecraftWithInterferometryPayload.java
+++ /dev/null
@@ -1,149 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import java.util.Arrays;
7import java.util.LinkedHashSet;
8import java.util.List;
9import java.util.Set;
10import org.eclipse.emf.ecore.EClass;
11import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
12import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
13import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
14import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
15import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
16import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
17import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
18import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
19import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
20import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
21import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
22import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
23import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
24import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
25
26/**
27 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
28 *
29 * <p>Original source:
30 * <code><pre>
31 * private pattern spacecraftWithInterferometryPayload(Mission : ConstellationMission, Spacecraft : Spacecraft) {
32 * ConstellationMission.spacecraft(Mission, Spacecraft);
33 * Spacecraft.payload(Spacecraft, Payload);
34 * InterferometryPayload(Payload);
35 * }
36 * </pre></code>
37 *
38 * @see GenericPatternMatcher
39 * @see GenericPatternMatch
40 *
41 */
42@SuppressWarnings("all")
43public final class SpacecraftWithInterferometryPayload extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
44 private SpacecraftWithInterferometryPayload() {
45 super(GeneratedPQuery.INSTANCE);
46 }
47
48 /**
49 * @return the singleton instance of the query specification
50 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
51 *
52 */
53 public static SpacecraftWithInterferometryPayload instance() {
54 try{
55 return LazyHolder.INSTANCE;
56 } catch (ExceptionInInitializerError err) {
57 throw processInitializerError(err);
58 }
59 }
60
61 /**
62 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithInterferometryPayload (visibility: PUBLIC, simpleName: SpacecraftWithInterferometryPayload, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithInterferometryPayload, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
63 * <b>not</b> at the class load time of the outer class,
64 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithInterferometryPayload (visibility: PUBLIC, simpleName: SpacecraftWithInterferometryPayload, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.SpacecraftWithInterferometryPayload, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
65 *
66 * <p> This workaround is required e.g. to support recursion.
67 *
68 */
69 private static class LazyHolder {
70 private static final SpacecraftWithInterferometryPayload INSTANCE = new SpacecraftWithInterferometryPayload();
71
72 /**
73 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
74 * This initialization order is required to support indirect recursion.
75 *
76 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
77 *
78 */
79 private static final Object STATIC_INITIALIZER = ensureInitialized();
80
81 public static Object ensureInitialized() {
82 INSTANCE.ensureInitializedInternal();
83 return null;
84 }
85 }
86
87 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
88 private static final SpacecraftWithInterferometryPayload.GeneratedPQuery INSTANCE = new GeneratedPQuery();
89
90 private final PParameter parameter_Mission = new PParameter("Mission", "satellite.ConstellationMission", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "ConstellationMission")), PParameterDirection.INOUT);
91
92 private final PParameter parameter_Spacecraft = new PParameter("Spacecraft", "satellite.Spacecraft", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "Spacecraft")), PParameterDirection.INOUT);
93
94 private final List<PParameter> parameters = Arrays.asList(parameter_Mission, parameter_Spacecraft);
95
96 private GeneratedPQuery() {
97 super(PVisibility.PRIVATE);
98 }
99
100 @Override
101 public String getFullyQualifiedName() {
102 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.spacecraftWithInterferometryPayload";
103 }
104
105 @Override
106 public List<String> getParameterNames() {
107 return Arrays.asList("Mission","Spacecraft");
108 }
109
110 @Override
111 public List<PParameter> getParameters() {
112 return parameters;
113 }
114
115 @Override
116 public Set<PBody> doGetContainedBodies() {
117 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
118 Set<PBody> bodies = new LinkedHashSet<>();
119 {
120 PBody body = new PBody(this);
121 PVariable var_Mission = body.getOrCreateVariableByName("Mission");
122 PVariable var_Spacecraft = body.getOrCreateVariableByName("Spacecraft");
123 PVariable var_Payload = body.getOrCreateVariableByName("Payload");
124 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "ConstellationMission")));
125 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
126 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
127 new ExportedParameter(body, var_Mission, parameter_Mission),
128 new ExportedParameter(body, var_Spacecraft, parameter_Spacecraft)
129 ));
130 // ConstellationMission.spacecraft(Mission, Spacecraft)
131 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "ConstellationMission")));
132 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
133 new TypeConstraint(body, Tuples.flatTupleOf(var_Mission, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "ConstellationMission", "spacecraft")));
134 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
135 new Equality(body, var__virtual_0_, var_Spacecraft);
136 // Spacecraft.payload(Spacecraft, Payload)
137 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Spacecraft")));
138 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
139 new TypeConstraint(body, Tuples.flatTupleOf(var_Spacecraft, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "Spacecraft", "payload")));
140 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "Payload")));
141 new Equality(body, var__virtual_1_, var_Payload);
142 // InterferometryPayload(Payload)
143 new TypeConstraint(body, Tuples.flatTupleOf(var_Payload), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "InterferometryPayload")));
144 bodies.add(body);
145 }
146 return bodies;
147 }
148 }
149}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/TransmittingCommSubsystem.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/TransmittingCommSubsystem.java
deleted file mode 100644
index a50536f5..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/internal/TransmittingCommSubsystem.java
+++ /dev/null
@@ -1,146 +0,0 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal;
5
6import java.util.Arrays;
7import java.util.LinkedHashSet;
8import java.util.List;
9import java.util.Set;
10import org.eclipse.emf.ecore.EClass;
11import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
12import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
13import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
14import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
15import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
16import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
17import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
18import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
19import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
20import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
21import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
22import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
23import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
24import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
25
26/**
27 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
28 *
29 * <p>Original source:
30 * <code><pre>
31 * private pattern transmittingCommSubsystem(Element : CommunicatingElement, Comm : CommSubsystem) {
32 * CommunicatingElement.commSubsystem(Element, Comm);
33 * CommSubsystem.target(Comm, _);
34 * }
35 * </pre></code>
36 *
37 * @see GenericPatternMatcher
38 * @see GenericPatternMatch
39 *
40 */
41@SuppressWarnings("all")
42public final class TransmittingCommSubsystem extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
43 private TransmittingCommSubsystem() {
44 super(GeneratedPQuery.INSTANCE);
45 }
46
47 /**
48 * @return the singleton instance of the query specification
49 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
50 *
51 */
52 public static TransmittingCommSubsystem instance() {
53 try{
54 return LazyHolder.INSTANCE;
55 } catch (ExceptionInInitializerError err) {
56 throw processInitializerError(err);
57 }
58 }
59
60 /**
61 * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmittingCommSubsystem (visibility: PUBLIC, simpleName: TransmittingCommSubsystem, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmittingCommSubsystem, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
62 * <b>not</b> at the class load time of the outer class,
63 * but rather at the first call to {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmittingCommSubsystem (visibility: PUBLIC, simpleName: TransmittingCommSubsystem, identifier: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal.TransmittingCommSubsystem, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
64 *
65 * <p> This workaround is required e.g. to support recursion.
66 *
67 */
68 private static class LazyHolder {
69 private static final TransmittingCommSubsystem INSTANCE = new TransmittingCommSubsystem();
70
71 /**
72 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
73 * This initialization order is required to support indirect recursion.
74 *
75 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
76 *
77 */
78 private static final Object STATIC_INITIALIZER = ensureInitialized();
79
80 public static Object ensureInitialized() {
81 INSTANCE.ensureInitializedInternal();
82 return null;
83 }
84 }
85
86 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
87 private static final TransmittingCommSubsystem.GeneratedPQuery INSTANCE = new GeneratedPQuery();
88
89 private final PParameter parameter_Element = new PParameter("Element", "satellite.CommunicatingElement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommunicatingElement")), PParameterDirection.INOUT);
90
91 private final PParameter parameter_Comm = new PParameter("Comm", "satellite.CommSubsystem", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/satellite", "CommSubsystem")), PParameterDirection.INOUT);
92
93 private final List<PParameter> parameters = Arrays.asList(parameter_Element, parameter_Comm);
94
95 private GeneratedPQuery() {
96 super(PVisibility.PRIVATE);
97 }
98
99 @Override
100 public String getFullyQualifiedName() {
101 return "hu.bme.mit.inf.dslreasoner.domains.satellite.queries.transmittingCommSubsystem";
102 }
103
104 @Override
105 public List<String> getParameterNames() {
106 return Arrays.asList("Element","Comm");
107 }
108
109 @Override
110 public List<PParameter> getParameters() {
111 return parameters;
112 }
113
114 @Override
115 public Set<PBody> doGetContainedBodies() {
116 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
117 Set<PBody> bodies = new LinkedHashSet<>();
118 {
119 PBody body = new PBody(this);
120 PVariable var_Element = body.getOrCreateVariableByName("Element");
121 PVariable var_Comm = body.getOrCreateVariableByName("Comm");
122 PVariable var___0_ = body.getOrCreateVariableByName("_<0>");
123 new TypeConstraint(body, Tuples.flatTupleOf(var_Element), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
124 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
125 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
126 new ExportedParameter(body, var_Element, parameter_Element),
127 new ExportedParameter(body, var_Comm, parameter_Comm)
128 ));
129 // CommunicatingElement.commSubsystem(Element, Comm)
130 new TypeConstraint(body, Tuples.flatTupleOf(var_Element), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommunicatingElement")));
131 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
132 new TypeConstraint(body, Tuples.flatTupleOf(var_Element, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommunicatingElement", "commSubsystem")));
133 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
134 new Equality(body, var__virtual_0_, var_Comm);
135 // CommSubsystem.target(Comm, _)
136 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
137 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
138 new TypeConstraint(body, Tuples.flatTupleOf(var_Comm, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.example.org/satellite", "CommSubsystem", "target")));
139 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/satellite", "CommSubsystem")));
140 new Equality(body, var__virtual_1_, var___0_);
141 bodies.add(body);
142 }
143 return bodies;
144 }
145 }
146}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
index c7135562..c1d3f7d3 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
@@ -3,7 +3,7 @@ package hu.bme.mit.inf.dslreasoner.domains.satellite.queries
3import "http://www.example.org/satellite" 3import "http://www.example.org/satellite"
4 4
5@Constraint(severity = "error", key = {Element}, 5@Constraint(severity = "error", key = {Element},
6 message = "A communicating element may not have two transmitting communication subsystems..") 6 message = "A communicating element may not have two transmitting communication subsystems.")
7pattern communicationLinkDoesNotStartAtContainingElement(Element : CommunicatingElement) { 7pattern communicationLinkDoesNotStartAtContainingElement(Element : CommunicatingElement) {
8 find transmittingCommSubsystem(Element, Comm1); 8 find transmittingCommSubsystem(Element, Comm1);
9 find transmittingCommSubsystem(Element, Comm2); 9 find transmittingCommSubsystem(Element, Comm2);
@@ -15,6 +15,12 @@ private pattern transmittingCommSubsystem(Element : CommunicatingElement, Comm :
15 CommSubsystem.target(Comm, _); 15 CommSubsystem.target(Comm, _);
16} 16}
17 17
18@Constraint(severity = "error", key = {Station},
19 message = "The ground station network may not have outgoing communication links.")
20pattern transmittingGroundStationNetwork(Station : GroundStationNetwork) {
21 find transmittingCommSubsystem(Station, _);
22}
23
18// At least two spacecraft must have the interferometry payload configured 24// At least two spacecraft must have the interferometry payload configured
19 25
20@Constraint(severity = "error", key = {Mission}, 26@Constraint(severity = "error", key = {Mission},
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/SatelliteGeneratorMain.xtend b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/SatelliteGeneratorMain.xtend
index 3d2cbbc7..5e4e4ef0 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/SatelliteGeneratorMain.xtend
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/SatelliteGeneratorMain.xtend
@@ -1,6 +1,8 @@
1package hu.bme.mit.inf.dslreasoner.domains.satellite.runner 1package hu.bme.mit.inf.dslreasoner.domains.satellite.runner
2 2
3import hu.bme.mit.inf.dslreasoner.application.execution.StandaloneScriptExecutor 3import hu.bme.mit.inf.dslreasoner.application.execution.StandaloneScriptExecutor
4import org.eclipse.viatra.query.runtime.api.ViatraQueryEngineOptions
5import org.eclipse.viatra.query.runtime.rete.matcher.ReteBackendFactory
4 6
5final class SatelliteGeneratorMain { 7final class SatelliteGeneratorMain {
6 private new() { 8 private new() {
@@ -8,6 +10,8 @@ final class SatelliteGeneratorMain {
8 } 10 }
9 11
10 public static def void main(String[] args) { 12 public static def void main(String[] args) {
13 ViatraQueryEngineOptions.setSystemDefaultBackends(ReteBackendFactory.INSTANCE, ReteBackendFactory.INSTANCE,
14 ReteBackendFactory.INSTANCE)
11 println(StandaloneScriptExecutor.executeScript("configs/generation.vsconfig")) 15 println(StandaloneScriptExecutor.executeScript("configs/generation.vsconfig"))
12 } 16 }
13} 17}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.gitignore b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.gitignore
deleted file mode 100644
index 478b3143..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
1/.ExcludedMoeaOptimisation.java._trace
2/.ExcludedOptimisationInterpreter.java._trace
3/.ExcludedRun.java._trace
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/.CostObjective.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/.CostObjective.xtendbin
deleted file mode 100644
index f8273db1..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/.CostObjective.xtendbin
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/.LocalSearchEngineManager.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/.LocalSearchEngineManager.xtendbin
deleted file mode 100644
index b92afd88..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/.LocalSearchEngineManager.xtendbin
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/.MetricBasedGuidanceFunction.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/.MetricBasedGuidanceFunction.xtendbin
deleted file mode 100644
index 456c7785..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/.MetricBasedGuidanceFunction.xtendbin
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/.PatternMatchConstraint.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/.PatternMatchConstraint.xtendbin
deleted file mode 100644
index 3b6e5310..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/.PatternMatchConstraint.xtendbin
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/.SatelliteMdeOptimiserMain.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/.SatelliteMdeOptimiserMain.xtendbin
deleted file mode 100644
index 11cbad32..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/.SatelliteMdeOptimiserMain.xtendbin
+++ /dev/null
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/.gitignore b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/.gitignore
deleted file mode 100644
index ed54e06a..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/.gitignore
+++ /dev/null
@@ -1,10 +0,0 @@
1/.SatellineMdeOptimiserMain.java._trace
2/.SatelliteMdeOptimiserMain.java._trace
3/.ExcludedMoeaOptimisation.java._trace
4/.ExcludedOptimisationInterpreter.java._trace
5/.ExcludedRun.java._trace
6/.LocalSearchEngineManager.java._trace
7/.PatternMatchConstraint.java._trace
8/.PatternCostConstraint.java._trace
9/.MetricBasedGuidanceFunction.java._trace
10/.CostObjective.java._trace
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/LocalSearchEngineManager.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/LocalSearchEngineManager.java
deleted file mode 100644
index 18708a37..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/LocalSearchEngineManager.java
+++ /dev/null
@@ -1,39 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.domains.satellite.mdeo;
2
3import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SatelliteQueries;
4import java.util.WeakHashMap;
5import java.util.function.Function;
6import org.eclipse.emf.ecore.EObject;
7import org.eclipse.viatra.query.runtime.api.AdvancedViatraQueryEngine;
8import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
9import org.eclipse.viatra.query.runtime.api.ViatraQueryEngineOptions;
10import org.eclipse.viatra.query.runtime.emf.EMFScope;
11import org.eclipse.viatra.query.runtime.localsearch.matcher.integration.LocalSearchHints;
12import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
13
14@SuppressWarnings("all")
15public class LocalSearchEngineManager {
16 public static final LocalSearchEngineManager INSTANCE = new LocalSearchEngineManager();
17
18 private final WeakHashMap<EObject, ViatraQueryEngine> engineMap = new WeakHashMap<EObject, ViatraQueryEngine>();
19
20 private LocalSearchEngineManager() {
21 }
22
23 public ViatraQueryEngine getEngine(final EObject eObject) {
24 final Function<EObject, ViatraQueryEngine> _function = (EObject it) -> {
25 ViatraQueryEngine _xblockexpression = null;
26 {
27 final EMFScope scope = new EMFScope(it);
28 final QueryEvaluationHint localSearchHints = LocalSearchHints.getDefault().build();
29 final ViatraQueryEngineOptions options = ViatraQueryEngineOptions.defineOptions().withDefaultHint(localSearchHints).withDefaultBackend(
30 localSearchHints.getQueryBackendFactory()).build();
31 final ViatraQueryEngine engine = AdvancedViatraQueryEngine.on(scope, options);
32 SatelliteQueries.instance().prepare(engine);
33 _xblockexpression = engine;
34 }
35 return _xblockexpression;
36 };
37 return this.engineMap.computeIfAbsent(eObject, _function);
38 }
39}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/MetricBasedGuidanceFunction.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/MetricBasedGuidanceFunction.java
deleted file mode 100644
index f3dae715..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/MetricBasedGuidanceFunction.java
+++ /dev/null
@@ -1,72 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.domains.satellite.mdeo;
2
3import hu.bme.mit.inf.dslreasoner.domains.satellite.mdeo.LocalSearchEngineManager;
4import java.util.Iterator;
5import org.eclipse.emf.ecore.EObject;
6import org.eclipse.viatra.query.runtime.api.IPatternMatch;
7import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
8import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
9import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher;
10import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction;
11import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution;
12
13@SuppressWarnings("all")
14public abstract class MetricBasedGuidanceFunction implements IGuidanceFunction {
15 private final IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>> querySpecification;
16
17 protected MetricBasedGuidanceFunction(final IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>> querySpecification) {
18 this.querySpecification = querySpecification;
19 int _size = querySpecification.getParameters().size();
20 boolean _notEquals = (_size != 1);
21 if (_notEquals) {
22 throw new IllegalArgumentException("Metric must have a single parameter");
23 }
24 }
25
26 @Override
27 public double computeFitness(final Solution model) {
28 double _xblockexpression = (double) 0;
29 {
30 final double value = this.getMetricValue(model);
31 _xblockexpression = this.computeFitness(value);
32 }
33 return _xblockexpression;
34 }
35
36 protected double computeFitness(final double metricValue) {
37 return metricValue;
38 }
39
40 private double getMetricValue(final Solution solution) {
41 double _xblockexpression = (double) 0;
42 {
43 final EObject model = solution.getModel();
44 final ViatraQueryEngine queryEngine = LocalSearchEngineManager.INSTANCE.getEngine(model);
45 final ViatraQueryMatcher<? extends IPatternMatch> matcher = this.querySpecification.getMatcher(queryEngine);
46 final Iterator<? extends IPatternMatch> iterator = matcher.getAllMatches().iterator();
47 boolean _hasNext = iterator.hasNext();
48 boolean _not = (!_hasNext);
49 if (_not) {
50 throw new IllegalStateException("Too few matches");
51 }
52 final Object objectValue = iterator.next().get(0);
53 double _xifexpression = (double) 0;
54 if ((objectValue instanceof Number)) {
55 double _xblockexpression_1 = (double) 0;
56 {
57 final double doubleValue = ((Number)objectValue).doubleValue();
58 boolean _hasNext_1 = iterator.hasNext();
59 if (_hasNext_1) {
60 throw new IllegalStateException("Too many matches");
61 }
62 _xblockexpression_1 = doubleValue;
63 }
64 _xifexpression = _xblockexpression_1;
65 } else {
66 throw new IllegalStateException("Metric value must be a number");
67 }
68 _xblockexpression = _xifexpression;
69 }
70 return _xblockexpression;
71 }
72}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/PatternMatchConstraint.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/PatternMatchConstraint.java
deleted file mode 100644
index f089d469..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/PatternMatchConstraint.java
+++ /dev/null
@@ -1,54 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.domains.satellite.mdeo;
2
3import com.google.common.base.Objects;
4import com.google.common.collect.ImmutableList;
5import hu.bme.mit.inf.dslreasoner.domains.satellite.mdeo.LocalSearchEngineManager;
6import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SatelliteQueries;
7import org.eclipse.emf.ecore.EObject;
8import org.eclipse.viatra.query.runtime.api.IPatternMatch;
9import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
10import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
11import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher;
12import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation;
13import org.eclipse.xtext.xbase.lib.Functions.Function1;
14import org.eclipse.xtext.xbase.lib.IterableExtensions;
15import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction;
16import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution;
17
18@SuppressWarnings("all")
19public class PatternMatchConstraint implements IGuidanceFunction {
20 private static final String CONSTRAINT_ANNOTATION_NAME = "Constraint";
21
22 private final ImmutableList<IQuerySpecification<?>> queries = ImmutableList.<IQuerySpecification<?>>copyOf(IterableExtensions.<IQuerySpecification<?>>filter(SatelliteQueries.instance().getSpecifications(), ((Function1<IQuerySpecification<?>, Boolean>) (IQuerySpecification<?> it) -> {
23 final Function1<PAnnotation, Boolean> _function = (PAnnotation it_1) -> {
24 String _name = it_1.getName();
25 return Boolean.valueOf(Objects.equal(_name, PatternMatchConstraint.CONSTRAINT_ANNOTATION_NAME));
26 };
27 return Boolean.valueOf(IterableExtensions.<PAnnotation>exists(it.getAllAnnotations(), _function));
28 })));
29
30 @Override
31 public String getName() {
32 return "PatternMatch";
33 }
34
35 @Override
36 public double computeFitness(final Solution solution) {
37 int _xblockexpression = (int) 0;
38 {
39 final EObject model = solution.getModel();
40 final ViatraQueryEngine queryEngine = LocalSearchEngineManager.INSTANCE.getEngine(model);
41 int matchCount = 0;
42 for (final IQuerySpecification<?> query : this.queries) {
43 {
44 final ViatraQueryMatcher<? extends IPatternMatch> matcher = query.getMatcher(queryEngine);
45 int _matchCount = matchCount;
46 int _countMatches = matcher.countMatches();
47 matchCount = (_matchCount + _countMatches);
48 }
49 }
50 _xblockexpression = matchCount;
51 }
52 return _xblockexpression;
53 }
54}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/SatelliteMdeOptimiserMain.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/SatelliteMdeOptimiserMain.java
deleted file mode 100644
index 6cbb08fc..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/SatelliteMdeOptimiserMain.java
+++ /dev/null
@@ -1,69 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.domains.satellite.mdeo;
2
3import java.io.BufferedReader;
4import java.io.BufferedWriter;
5import java.io.FileReader;
6import java.io.FileWriter;
7import java.util.Collections;
8import java.util.Map;
9import java.util.Set;
10import org.eclipse.emf.ecore.EPackage;
11import org.eclipse.emf.ecore.resource.Resource;
12import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
13import org.eclipse.xtext.xbase.lib.CollectionLiterals;
14import org.eclipse.xtext.xbase.lib.Exceptions;
15import org.eclipse.xtext.xbase.lib.Pair;
16import satellite.SatellitePackage;
17import uk.ac.kcl.inf.mdeoptimiser.interfaces.cli.Run;
18
19@SuppressWarnings("all")
20public class SatelliteMdeOptimiserMain {
21 private static final String PROJECT_PATH = ".";
22
23 private static final String MOPT_PATH = "src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/satellite.mopt";
24
25 private SatelliteMdeOptimiserMain() {
26 new IllegalStateException("This is a static utility class and should not be instantiated directly.");
27 }
28
29 public static void main(final String[] args) {
30 Map<String, Object> _extensionToFactoryMap = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap();
31 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl();
32 _extensionToFactoryMap.put(Resource.Factory.Registry.DEFAULT_EXTENSION, _xMIResourceFactoryImpl);
33 EPackage.Registry.INSTANCE.put(SatellitePackage.eNS_URI, SatellitePackage.eINSTANCE);
34 Pair<String, String> _mappedTo = Pair.<String, String>of("satellite.ecore", SatellitePackage.eNS_URI);
35 SatelliteMdeOptimiserMain.fixupHenshinModel("model/satellite.henshin", "model/satellite_fixup.henshin",
36 Collections.<String, String>unmodifiableMap(CollectionLiterals.<String, String>newHashMap(_mappedTo)));
37 Run.main(new String[] { "-p", SatelliteMdeOptimiserMain.PROJECT_PATH, "-m", SatelliteMdeOptimiserMain.MOPT_PATH });
38 }
39
40 private static void fixupHenshinModel(final String originalPath, final String outputPath, final Map<String, String> remapMap) {
41 try {
42 FileReader _fileReader = new FileReader(originalPath);
43 final BufferedReader reader = new BufferedReader(_fileReader);
44 try {
45 FileWriter _fileWriter = new FileWriter(outputPath);
46 final BufferedWriter writer = new BufferedWriter(_fileWriter);
47 try {
48 String line = null;
49 while (((line = reader.readLine()) != null)) {
50 {
51 Set<Map.Entry<String, String>> _entrySet = remapMap.entrySet();
52 for (final Map.Entry<String, String> entry : _entrySet) {
53 line = line.replace(entry.getKey(), entry.getValue());
54 }
55 writer.write(line);
56 writer.write("\n");
57 }
58 }
59 } finally {
60 writer.close();
61 }
62 } finally {
63 reader.close();
64 }
65 } catch (Throwable _e) {
66 throw Exceptions.sneakyThrow(_e);
67 }
68 }
69}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/.gitignore b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/.gitignore
deleted file mode 100644
index ff6b1dfc..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/satellite/runner/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
1/.SatelliteGeneratorMain.java._trace
2/.SatelliteGeneratorMain.xtendbin
3/SatelliteGeneratorMain.java