From 1599ee19d7751f3b1082c3712536f01e7c6ccc7e Mon Sep 17 00:00:00 2001 From: mbeisel Date: Tue, 1 Oct 2024 13:56:22 +0200 Subject: [PATCH] linting --- .../textmatcher/textmatcher.component.ts | 68 +- .../default-pl-renderer.component.ts | 10 +- src/app/core/service/algo-state.service.ts | 6 +- src/app/core/util/constants.ts | 6836 ++++++++--------- src/app/core/util/http-util.ts | 4 +- src/app/core/util/opentosca-utils.ts | 92 +- src/app/core/util/winery-utils.ts | 134 +- src/environments/environment.ts | 12 +- 8 files changed, 3581 insertions(+), 3581 deletions(-) diff --git a/src/app/core/component/textmatcher/textmatcher.component.ts b/src/app/core/component/textmatcher/textmatcher.component.ts index 0f2e8902..3555a895 100644 --- a/src/app/core/component/textmatcher/textmatcher.component.ts +++ b/src/app/core/component/textmatcher/textmatcher.component.ts @@ -13,8 +13,8 @@ import * as consts from '../../util/constants'; import { environment } from 'src/environments/environment'; -const QUANTME_NAMESPACE_PULL = "http://quantil.org/quantme/pull"; -const OPENTOSCA_NAMESPACE_NODETYPE = "http://opentosca.org/nodetypes"; +const QUANTME_NAMESPACE_PULL = 'http://quantil.org/quantme/pull'; +const OPENTOSCA_NAMESPACE_NODETYPE = 'http://opentosca.org/nodetypes'; @Component({ selector: 'pp-textmatcher', @@ -93,7 +93,7 @@ export class TextmatcherComponent implements OnInit { //this.filter.setValue(''); } this.graphVisible = newValueGraphVisible; - console.log("graoh visile") + console.log('graoh visile') console.log(newValueGraphVisible) // if user toggled to early, we will retrigger // this.toggleBeforeDataLoaded = this.isLoadingLinkData && this.isLoadingPatternData; @@ -132,17 +132,17 @@ export class TextmatcherComponent implements OnInit { } // HTTP call to fetch algorithms - this.http.get(environment.atlas + "/algorithms").subscribe((algodata: any) => { + this.http.get(environment.atlas + '/algorithms').subscribe((algodata: any) => { algodata.content.forEach((algorithm: any) => { - if (algorithm.id === "3c7722e2-09c3-4667-9a0d-a45d3ddc42ae") { - algorithm.applicationAreas = ["variables", "boolean Problems", "formula", "computers", "logic", "assignment"]; + if (algorithm.id === '3c7722e2-09c3-4667-9a0d-a45d3ddc42ae') { + algorithm.applicationAreas = ['variables', 'boolean Problems', 'formula', 'computers', 'logic', 'assignment']; } this.infos.push({ name: algorithm.name, data: algorithm }); }); }); - console.log("Received Data:", this.data); + console.log('Received Data:', this.data); console.log(this.infos); } @@ -254,7 +254,7 @@ export class TextmatcherComponent implements OnInit { aggregateSolutions() { this.isAggregating = true; // Show progress bar this.progressValue = 0; - console.log("Aggregation process started..."); + console.log('Aggregation process started...'); if (this.fulltabledata && this.fulltabledata.length > 0) { const totalSteps = this.fulltabledata.length; // Total number of steps to complete @@ -267,22 +267,22 @@ export class TextmatcherComponent implements OnInit { const matchingAlgorithm = this.data.algorithms.find(algorithm => algorithm.name === firstEntry.name); if (matchingAlgorithm) { - console.log("Matching algorithm found:", matchingAlgorithm); + console.log('Matching algorithm found:', matchingAlgorithm); // Make the first request to get implementations const implementationsUrl = atlasEndpoint + `/algorithms/${matchingAlgorithm.id}/implementations`; this.http.get(implementationsUrl).subscribe(implementations => { - console.log("Implementations:", implementations); + console.log('Implementations:', implementations); // For each implementation, get implementation packages implementations.content.forEach(implementation => { const packagesUrl = atlasEndpoint +`/algorithms/${matchingAlgorithm.id}/implementations/${implementation.id}/implementation-packages`; this.http.get(packagesUrl).subscribe(packages => { - console.log("Implementation Packages:", packages); + console.log('Implementation Packages:', packages); // Filter packages where the description contains some word of the input field const inputKeywords = this.inputfield.value ? this.inputfield.value.split(' ') : []; - console.log("Input Keywords:", inputKeywords); + console.log('Input Keywords:', inputKeywords); const filteredPackages = packages.content.filter(pkg => { return inputKeywords.some(keyword => pkg.description.toLowerCase().includes(keyword.toLowerCase())); @@ -310,7 +310,7 @@ export class TextmatcherComponent implements OnInit { //this.isAggregating = false; } }, error => { - console.error("Error fetching file content:", error); + console.error('Error fetching file content:', error); completedSteps++; // Count as completed even if it fails this.progressValue = Math.round((completedSteps / totalSteps) * 100); if (completedSteps === totalSteps) { @@ -319,7 +319,7 @@ export class TextmatcherComponent implements OnInit { }); }); }, error => { - console.error("Error fetching implementation packages:", error); + console.error('Error fetching implementation packages:', error); completedSteps++; // Count as completed even if it fails this.progressValue = Math.round((completedSteps / totalSteps) * 100); if (completedSteps === totalSteps) { @@ -328,16 +328,16 @@ export class TextmatcherComponent implements OnInit { }); }); }, error => { - console.error("Error fetching implementations:", error); + console.error('Error fetching implementations:', error); this.isAggregating = false; // Hide progress bar on error }); } else { - console.log("No matching algorithm found for the first entry."); + console.log('No matching algorithm found for the first entry.'); this.isAggregating = false; // Hide progress bar if no matching algorithm } } else { - console.log("No data available to aggregate."); + console.log('No data available to aggregate.'); this.isAggregating = false; // Hide progress bar if no data } } @@ -358,33 +358,33 @@ export class TextmatcherComponent implements OnInit { // Make sure to properly wait for the file content to be fetched try { const fileContent = await this.http.get(this.deploymentFileContentUrl, { responseType: 'blob' }).toPromise(); - console.log("File content fetched successfully:", fileContent); + console.log('File content fetched successfully:', fileContent); - const idwinery = firstEntryName.replaceAll("_", "") + generateRandomString(); + const idwinery = firstEntryName.replaceAll('_', '') + generateRandomString(); const opentoscaEndpoint = environment.openToscaContainer; - console.log("ID Winery:", idwinery); + console.log('ID Winery:', idwinery); // First, create the service template with the new activity id const serviceTemplate = await createServiceTemplate(idwinery, QUANTME_NAMESPACE_PULL); - console.log("Service Template created:", serviceTemplate); + console.log('Service Template created:', serviceTemplate); // Create the nodetype to add it to the created service template - await createNodeType(idwinery + "Container", OPENTOSCA_NAMESPACE_NODETYPE); - await updateNodeType(idwinery + "Container", OPENTOSCA_NAMESPACE_NODETYPE); + await createNodeType(idwinery + 'Container', OPENTOSCA_NAMESPACE_NODETYPE); + await updateNodeType(idwinery + 'Container', OPENTOSCA_NAMESPACE_NODETYPE); // Update the service template with the created node type const updatedServiceTemplate = await updateServiceTemplate(idwinery, QUANTME_NAMESPACE_PULL); - console.log("Service Template updated:", updatedServiceTemplate); + console.log('Service Template updated:', updatedServiceTemplate); // Finally, create the deployment model containing the implementation - const versionUrl = wineryEndpoint + "servicetemplates/" + updatedServiceTemplate; + const versionUrl = wineryEndpoint + 'servicetemplates/' + updatedServiceTemplate; const deploymentModelUrlResult = await createDeploymentModel( fileContent, wineryEndpoint, - idwinery + "_DA", - "http://opentosca.org/artifacttemplates", - "{http://opentosca.org/artifacttypes}DockerContainerArtifact", - "service", + idwinery + '_DA', + 'http://opentosca.org/artifacttemplates', + '{http://opentosca.org/artifacttypes}DockerContainerArtifact', + 'service', versionUrl ); @@ -394,17 +394,17 @@ export class TextmatcherComponent implements OnInit { wineryEndpoint + `/servicetemplates/http%253A%252F%252Fquantil.org%252Fquantme%252Fpull/${idwinery}/?csar`, wineryEndpoint ); - console.log("Deployment Model URL Result:", deploymentModelUrlResult); + console.log('Deployment Model URL Result:', deploymentModelUrlResult); - console.log("Solution deployed successfully!"); + console.log('Solution deployed successfully!'); } catch (error) { - console.error("Error during solution deployment:", error); + console.error('Error during solution deployment:', error); } } else { - console.error("No fulltabledata available to deploy."); + console.error('No fulltabledata available to deploy.'); } } else { - console.error("Aggregation process not completed, cannot deploy the solution."); + console.error('Aggregation process not completed, cannot deploy the solution.'); } } diff --git a/src/app/core/default-pl-renderer/default-pl-renderer.component.ts b/src/app/core/default-pl-renderer/default-pl-renderer.component.ts index f7dd6af2..62618ed2 100644 --- a/src/app/core/default-pl-renderer/default-pl-renderer.component.ts +++ b/src/app/core/default-pl-renderer/default-pl-renderer.component.ts @@ -85,13 +85,13 @@ export class DefaultPlRendererComponent implements OnInit, OnDestroy { } async openTextmatcherDialog(){ - let result = await this.algoStateService.getAlgorithmData3(); - let applicationAreas = await this.algoStateService.getAlgorithmData4(); - console.log("hhhhhhhhhh") + let result = await this.algoStateService.getAlgorithmData3(); + let applicationAreas = await this.algoStateService.getAlgorithmData4(); + console.log('hhhhhhhhhh') console.log(result.content) for(let i = 0; i< result.content.length; i++){ - if(result.content[i].id === "3c7722e2-09c3-4667-9a0d-a45d3ddc42ae"){ - result.content[i].applicationAreas = "Satisfiable"; + if(result.content[i].id === '3c7722e2-09c3-4667-9a0d-a45d3ddc42ae'){ + result.content[i].applicationAreas = 'Satisfiable'; } } let r = result.content; diff --git a/src/app/core/service/algo-state.service.ts b/src/app/core/service/algo-state.service.ts index ebc274f1..a98f82fc 100644 --- a/src/app/core/service/algo-state.service.ts +++ b/src/app/core/service/algo-state.service.ts @@ -14,7 +14,7 @@ export class AlgoStateService { private tmpstore = ''; private repoEndpoint = environment.API_URL; - private qcAtlasEndpoint = "http://localhost:6626/atlas/algorithms" + private qcAtlasEndpoint = 'http://localhost:6626/atlas/algorithms' constructor(private http: HttpClient) { } @@ -65,12 +65,12 @@ export class AlgoStateService { } async getAlgorithmData3() { - const url = "http://localhost:6626/atlas/algorithms"; + const url = 'http://localhost:6626/atlas/algorithms'; return await this.http.get(url).toPromise(); } async getAlgorithmData4() { - const url = "http://localhost:6626/atlas/algorithms/3c7722e2-09c3-4667-9a0d-a45d3ddc42ae/application-areas"; + const url = 'http://localhost:6626/atlas/algorithms/3c7722e2-09c3-4667-9a0d-a45d3ddc42ae/application-areas'; return await this.http.get(url).toPromise(); } diff --git a/src/app/core/util/constants.ts b/src/app/core/util/constants.ts index d0d37bd0..dfcfbaf8 100644 --- a/src/app/core/util/constants.ts +++ b/src/app/core/util/constants.ts @@ -1,3568 +1,3568 @@ export const PATTERNS = [ { - "id": "2229a430-fe92-4411-9d72-d10dd1d8da14", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/equal_superposition_icon.png", - "title": "Uniform Superposition", - "type": "default", - "x": 200, - "y": 0, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition", - "index": 0, - "vy": -1.6321913445488774, - "vx": -1.2704726346862003, - "level": 2 + id: '2229a430-fe92-4411-9d72-d10dd1d8da14', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/equal_superposition_icon.png', + title: 'Uniform Superposition', + type: 'default', + x: 200, + y: 0, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition', + index: 0, + vy: -1.6321913445488774, + vx: -1.2704726346862003, + level: 2 }, { - "id": "45d09c54-3f4a-453b-885d-2772443c8d72", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/matrix_encoding_icon.png", - "title": "Matrix Encoding", - "type": "default", - "x": 952.6198563688629, - "y": 242.55523524046333, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/matrixEncoding", - "index": 1, - "vy": -3.0821493922325276, - "vx": 1.003387125777132 + id: '45d09c54-3f4a-453b-885d-2772443c8d72', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/matrix_encoding_icon.png', + title: 'Matrix Encoding', + type: 'default', + x: 952.6198563688629, + y: 242.55523524046333, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/matrixEncoding', + index: 1, + vy: -3.0821493922325276, + vx: 1.003387125777132 }, { - "id": "4074490a-4236-49ed-83d1-625ce58e2dbd", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/7870b15afcae629bfbc0d0022fcb758832b3b8eb/icons/quantum_computing_patterns/hybrid-module.svg", - "title": "Hybrid Module", - "type": "default", - "x": 31.162528807236033, - "y": 87.37303397203709, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/hybridModule", - "index": 2, - "vy": -0.32303695631040696, - "vx": -1.2281454120724045 + id: '4074490a-4236-49ed-83d1-625ce58e2dbd', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/7870b15afcae629bfbc0d0022fcb758832b3b8eb/icons/quantum_computing_patterns/hybrid-module.svg', + title: 'Hybrid Module', + type: 'default', + x: 31.162528807236033, + y: 87.37303397203709, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/hybridModule', + index: 2, + vy: -0.32303695631040696, + vx: -1.2281454120724045 }, { - "id": "e595558d-bfea-4b82-9f47-a38a2097b245", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/angle_encoding_icon.png", - "title": "Angle Encoding", - "type": "default", - "x": 730.1082136698355, - "y": 168.57825041165972, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/angleEncoding", - "index": 3, - "vy": -1.7383391356161761, - "vx": -0.5275958617325859 + id: 'e595558d-bfea-4b82-9f47-a38a2097b245', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/angle_encoding_icon.png', + title: 'Angle Encoding', + type: 'default', + x: 730.1082136698355, + y: 168.57825041165972, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/angleEncoding', + index: 3, + vy: -1.7383391356161761, + vx: -0.5275958617325859 }, { - "id": "4437fb83-34c0-47a8-8c6f-1272a76b76bb", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/schmidt_icon.png", - "title": "Schmidt Decomposition", - "type": "default", - "x": 908.384608952753, - "y": -11.027695239879503, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/schmidtDecomposition", - "index": 4, - "vy": -2.485880500689876, - "vx": -0.7719544146440531 + id: '4437fb83-34c0-47a8-8c6f-1272a76b76bb', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/schmidt_icon.png', + title: 'Schmidt Decomposition', + type: 'default', + x: 908.384608952753, + y: -11.027695239879503, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/schmidtDecomposition', + index: 4, + vy: -2.485880500689876, + vx: -0.7719544146440531 }, { - "id": "d4f7c247-e2bb-4301-ad06-f758fa58f2dc", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/uncompute_icon.png", - "title": "Uncompute", - "type": "default", - "x": 378.34649048772036, - "y": -171.855830093872, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uncompute", - "index": 5, - "vy": -1.3351117263450032, - "vx": -1.2626020454769806 + id: 'd4f7c247-e2bb-4301-ad06-f758fa58f2dc', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/uncompute_icon.png', + title: 'Uncompute', + type: 'default', + x: 378.34649048772036, + y: -171.855830093872, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uncompute', + index: 5, + vy: -1.3351117263450032, + vx: -1.2626020454769806 }, { - "id": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/initialization_icon.png", - "title": "Initialization", - "type": "default", - "x": 0, - "y": 100, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "index": 6, - "vy": -1.177623613674522, - "vx": -0.6533260658140844, - "level": 1 + id: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/initialization_icon.png', + title: 'Initialization', + type: 'default', + x: 0, + y: 100, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + index: 6, + vy: -1.177623613674522, + vx: -0.6533260658140844, + level: 1 }, { - "id": "bcd4c7a1-3c92-4f8c-a530-72b8b95d3750", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/basis_encoding_icon.png", - "title": "Basis Encoding", - "type": "default", - "x": 657.5092112161943, - "y": 43.14350459380031, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/basisEncoding", - "index": 7, - "vy": -1.8938054361074452, - "vx": -0.8400587547583633 + id: 'bcd4c7a1-3c92-4f8c-a530-72b8b95d3750', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/basis_encoding_icon.png', + title: 'Basis Encoding', + type: 'default', + x: 657.5092112161943, + y: 43.14350459380031, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/basisEncoding', + index: 7, + vy: -1.8938054361074452, + vx: -0.8400587547583633 }, { - "id": "3d1f3991-df47-4d42-8f9a-e6dcf4e3ccec", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/entanglement_icon.png", - "title": "Creating Entanglement", - "type": "default", - "x": 522.4918667383561, - "y": -120.50789471522799, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/creatingEntanglement", - "index": 8, - "vy": -1.431613119531092, - "vx": -1.2372184610078343 + id: '3d1f3991-df47-4d42-8f9a-e6dcf4e3ccec', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/entanglement_icon.png', + title: 'Creating Entanglement', + type: 'default', + x: 522.4918667383561, + y: -120.50789471522799, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/creatingEntanglement', + index: 8, + vy: -1.431613119531092, + vx: -1.2372184610078343 }, { - "id": "1a5e3708-da39-4356-ab3f-115264da6390", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/error_correction_icon.png", - "title": "Error Correction", - "type": "default", - "x": 1119.1330318643268, - "y": 398.39364954168195, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/errorCorrectionPattern", - "index": 9, - "vy": -0.09029290855660349, - "vx": -0.39863408872486206 + id: '1a5e3708-da39-4356-ab3f-115264da6390', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/error_correction_icon.png', + title: 'Error Correction', + type: 'default', + x: 1119.1330318643268, + y: 398.39364954168195, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/errorCorrectionPattern', + index: 9, + vy: -0.09029290855660349, + vx: -0.39863408872486206 }, { - "id": "b6788c99-24f5-496b-a30c-fc0dd7bb3e96", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/gate_error_mitigation_icon.png", - "title": "Gate Error Mitigation", - "type": "default", - "x": 438.74849014881556, - "y": 707.0860182517945, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/gateErrorMitigationPattern", - "index": 10, - "vy": -0.37788808277273134, - "vx": 0.317325939165158 + id: 'b6788c99-24f5-496b-a30c-fc0dd7bb3e96', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/gate_error_mitigation_icon.png', + title: 'Gate Error Mitigation', + type: 'default', + x: 438.74849014881556, + y: 707.0860182517945, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/gateErrorMitigationPattern', + index: 10, + vy: -0.37788808277273134, + vx: 0.317325939165158 }, { - "id": "5479acf4-0588-49af-a6a9-4956b7ee32af", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/qke_icon.png", - "title": "Quantum Kernel Estimator (QKE)", - "type": "default", - "x": 245.7603549181296, - "y": 396.4716414232041, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantumKernelEstimator(qke)", - "index": 11, - "vy": -0.12190900770308066, - "vx": -0.4416395114342127 + id: '5479acf4-0588-49af-a6a9-4956b7ee32af', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/qke_icon.png', + title: 'Quantum Kernel Estimator (QKE)', + type: 'default', + x: 245.7603549181296, + y: 396.4716414232041, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantumKernelEstimator(qke)', + index: 11, + vy: -0.12190900770308066, + vx: -0.4416395114342127 }, { - "id": "ed3af509-904e-4732-8113-215d65a7d53d", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/readout_error_mitigation_icon.png", - "title": "Readout Error Mitigation", - "type": "default", - "x": 331.6566811378124, - "y": 599.9912009862873, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/readoutErrorMitigation", - "index": 12, - "vy": -0.3611191304216122, - "vx": 0.25341674504869116 + id: 'ed3af509-904e-4732-8113-215d65a7d53d', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/readout_error_mitigation_icon.png', + title: 'Readout Error Mitigation', + type: 'default', + x: 331.6566811378124, + y: 599.9912009862873, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/readoutErrorMitigation', + index: 12, + vy: -0.3611191304216122, + vx: 0.25341674504869116 }, { - "id": "8fcca2dc-fca0-47cf-9bd4-038cd2fe8fb8", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/7870b15afcae629bfbc0d0022fcb758832b3b8eb/icons/quantum_computing_patterns/classical-quantum-interface.svg", - "title": "Classical-Quantum Interface", - "type": "default", - "x": 242.62021987198918, - "y": 248.5799309359156, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/classical-quantumInterface", - "index": 13, - "vy": -0.010822827286625357, - "vx": -1.142146287404572 + id: '8fcca2dc-fca0-47cf-9bd4-038cd2fe8fb8', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/7870b15afcae629bfbc0d0022fcb758832b3b8eb/icons/quantum_computing_patterns/classical-quantum-interface.svg', + title: 'Classical-Quantum Interface', + type: 'default', + x: 242.62021987198918, + y: 248.5799309359156, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/classical-quantumInterface', + index: 13, + vy: -0.010822827286625357, + vx: -1.142146287404572 }, { - "id": "3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/function_table_icon.png", - "title": "Function Table", - "type": "default", - "x": 421.34790984796155, - "y": -39.43326212288716, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/functionTable", - "index": 14, - "vy": -0.9925815253713594, - "vx": -1.2432786678931265 + id: '3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/function_table_icon.png', + title: 'Function Table', + type: 'default', + x: 421.34790984796155, + y: -39.43326212288716, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/functionTable', + index: 14, + vy: -0.9925815253713594, + vx: -1.2432786678931265 }, { - "id": "c450e0ce-c55f-4b72-afe9-e9e2c7e4c091", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/ad-hoc-code-thin.svg", - "title": "Ad-hoc Hybrid Code Execution", - "type": "default", - "x": 727.6969609690261, - "y": -205.97650206284027, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/ad-hocHybridCodeExecution", - "index": 15, - "vy": -2.047032382717699, - "vx": -1.5100175128565905 + id: 'c450e0ce-c55f-4b72-afe9-e9e2c7e4c091', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/ad-hoc-code-thin.svg', + title: 'Ad-hoc Hybrid Code Execution', + type: 'default', + x: 727.6969609690261, + y: -205.97650206284027, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/ad-hocHybridCodeExecution', + index: 15, + vy: -2.047032382717699, + vx: -1.5100175128565905 }, { - "id": "b657ea73-63c0-4800-a69d-a91925e19ac6", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/aoa_icon.png", - "title": "Alternating Operator Ansatz (AOA)", - "type": "default", - "x": 683.269128418817, - "y": 262.87515675475845, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/alternatingOperatorAnsatz(aoa)", - "index": 16, - "vy": -1.3851041953935186, - "vx": -0.3396767850492897 + id: 'b657ea73-63c0-4800-a69d-a91925e19ac6', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/aoa_icon.png', + title: 'Alternating Operator Ansatz (AOA)', + type: 'default', + x: 683.269128418817, + y: 262.87515675475845, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/alternatingOperatorAnsatz(aoa)', + index: 16, + vy: -1.3851041953935186, + vx: -0.3396767850492897 }, { - "id": "96b4d28a-a5ce-4c96-85df-d42587b13c57", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/amplitude_amplification_icon.png", - "title": "Amplitude Amplification", - "type": "default", - "x": 0, - "y": 0, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeAmplification", - "index": 17, - "vy": -1.2016857467564246, - "vx": -1.2298385616498781, - "level": 1 + id: '96b4d28a-a5ce-4c96-85df-d42587b13c57', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/amplitude_amplification_icon.png', + title: 'Amplitude Amplification', + type: 'default', + x: 0, + y: 0, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeAmplification', + index: 17, + vy: -1.2016857467564246, + vx: -1.2298385616498781, + level: 1 }, { - "id": "502147ec-45fa-403f-8f52-e196b3359399", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/amplitude_encoding_icon.png", - "title": "Amplitude Encoding", - "type": "default", - "x": 774.4114770129503, - "y": 53.93941349819757, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeEncoding", - "index": 18, - "vy": -2.1170002585592735, - "vx": -0.4220669020743529 + id: '502147ec-45fa-403f-8f52-e196b3359399', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/amplitude_encoding_icon.png', + title: 'Amplitude Encoding', + type: 'default', + x: 774.4114770129503, + y: 53.93941349819757, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeEncoding', + index: 18, + vy: -2.1170002585592735, + vx: -0.4220669020743529 }, { - "id": "3f3d5582-1af9-4a23-93f5-5d0474b2b42c", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/orchestrated-execution-thin.svg", - "title": "Orchestrated Execution", - "type": "default", - "x": 362.04348696111947, - "y": 462.3756296914704, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/orchestratedExecution", - "index": 19, - "vy": -0.5230321127704505, - "vx": 0.020108638720907734 + id: '3f3d5582-1af9-4a23-93f5-5d0474b2b42c', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/orchestrated-execution-thin.svg', + title: 'Orchestrated Execution', + type: 'default', + x: 362.04348696111947, + y: 462.3756296914704, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/orchestratedExecution', + index: 19, + vy: -0.5230321127704505, + vx: 0.020108638720907734 }, { - "id": "9af072e8-875b-4e7d-980a-98cc6e0e7fd6", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/pre-deployed-execution-thin.svg", - "title": "Pre-deployed Execution", - "type": "default", - "x": 603.1757437342433, - "y": 526.3934935677571, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/pre-deployedExecution", - "index": 20, - "vy": -0.9771373616492444, - "vx": 0.30278503837048304 + id: '9af072e8-875b-4e7d-980a-98cc6e0e7fd6', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/pre-deployed-execution-thin.svg', + title: 'Pre-deployed Execution', + type: 'default', + x: 603.1757437342433, + y: 526.3934935677571, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/pre-deployedExecution', + index: 20, + vy: -0.9771373616492444, + vx: 0.30278503837048304 }, { - "id": "70adfd6f-0648-47cf-88ff-0212b882a262", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/priortized-execution-thin.svg", - "title": "Prioritized Execution", - "type": "default", - "x": 439.22044808478097, - "y": 333.18013882127485, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/prioritizedExecution", - "index": 21, - "vy": -0.5786580024807613, - "vx": -0.21000519014354993 + id: '70adfd6f-0648-47cf-88ff-0212b882a262', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/priortized-execution-thin.svg', + title: 'Prioritized Execution', + type: 'default', + x: 439.22044808478097, + y: 333.18013882127485, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/prioritizedExecution', + index: 21, + vy: -0.5786580024807613, + vx: -0.21000519014354993 }, { - "id": "aa90de15-b7e3-45a7-bb48-f0a5b8b2c479", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/7870b15afcae629bfbc0d0022fcb758832b3b8eb/icons/quantum_computing_patterns/quantum-circuit-translator.svg", - "title": "Quantum Circuit Translator", - "type": "default", - "x": 191.31354910269815, - "y": 111.96155116978777, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/quantumCircuitTranslator", - "index": 22, - "vy": -0.06288101972148885, - "vx": -1.5259375402240942 + id: 'aa90de15-b7e3-45a7-bb48-f0a5b8b2c479', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/7870b15afcae629bfbc0d0022fcb758832b3b8eb/icons/quantum_computing_patterns/quantum-circuit-translator.svg', + title: 'Quantum Circuit Translator', + type: 'default', + x: 191.31354910269815, + y: 111.96155116978777, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/quantumCircuitTranslator', + index: 22, + vy: -0.06288101972148885, + vx: -1.5259375402240942 }, { - "id": "424c803a-aefb-4b54-8e45-d177fedac893", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/7870b15afcae629bfbc0d0022fcb758832b3b8eb/icons/quantum_computing_patterns/quantum-module.svg", - "title": "Quantum Module", - "type": "default", - "x": 98.29511055690848, - "y": 217.3084000615263, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/quantumModule", - "index": 23, - "vy": -0.11466781578779059, - "vx": -1.5134647531184457 + id: '424c803a-aefb-4b54-8e45-d177fedac893', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/7870b15afcae629bfbc0d0022fcb758832b3b8eb/icons/quantum_computing_patterns/quantum-module.svg', + title: 'Quantum Module', + type: 'default', + x: 98.29511055690848, + y: 217.3084000615263, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/quantumModule', + index: 23, + vy: -0.11466781578779059, + vx: -1.5134647531184457 }, { - "id": "d5cda8c9-f39b-474a-9032-c17131884975", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/7870b15afcae629bfbc0d0022fcb758832b3b8eb/icons/quantum_computing_patterns/quantum-module-template.svg", - "title": "Quantum Module Template", - "type": "default", - "x": 137.21566178106502, - "y": -24.280901838131413, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/quantumModuleTemplate", - "index": 24, - "vy": -0.2427882384190501, - "vx": -1.1653858412903295 + id: 'd5cda8c9-f39b-474a-9032-c17131884975', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/7870b15afcae629bfbc0d0022fcb758832b3b8eb/icons/quantum_computing_patterns/quantum-module-template.svg', + title: 'Quantum Module Template', + type: 'default', + x: 137.21566178106502, + y: -24.280901838131413, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/quantumModuleTemplate', + index: 24, + vy: -0.2427882384190501, + vx: -1.1653858412903295 }, { - "id": "c6560c51-d2e3-4595-b9c3-b609c75c0b82", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/phase_shift_icon.png", - "title": "Phase Shift", - "type": "default", - "x": 347.9798163446937, - "y": 200.7897763928696, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/phaseShift", - "index": 25, - "vy": -0.9534857936362264, - "vx": -1.184612474455841 + id: 'c6560c51-d2e3-4595-b9c3-b609c75c0b82', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/phase_shift_icon.png', + title: 'Phase Shift', + type: 'default', + x: 347.9798163446937, + y: 200.7897763928696, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/phaseShift', + index: 25, + vy: -0.9534857936362264, + vx: -1.184612474455841 }, { - "id": "5850c6ab-5c87-4331-8439-73692a403228", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/ad-hoc-circuit-thin.svg", - "title": "Standalone Circuit Execution", - "type": "default", - "x": 580.1462866739253, - "y": -231.08976853705772, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/standaloneCircuitExecution", - "index": 26, - "vy": -1.4098703830640569, - "vx": -1.6080554428042866 + id: '5850c6ab-5c87-4331-8439-73692a403228', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/ad-hoc-circuit-thin.svg', + title: 'Standalone Circuit Execution', + type: 'default', + x: 580.1462866739253, + y: -231.08976853705772, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/standaloneCircuitExecution', + index: 26, + vy: -1.4098703830640569, + vx: -1.6080554428042866 }, { - "id": "28c99b35-98ce-4bfe-bb6d-94a65207258a", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/wire-cut-icon-thin.svg", - "title": "Wire Cut", - "type": "default", - "x": 650.2619120191562, - "y": 406.97715254515407, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/wireCut", - "index": 27, - "vy": -1.287149722035832, - "vx": -0.30713052553986875 + id: '28c99b35-98ce-4bfe-bb6d-94a65207258a', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/wire-cut-icon-thin.svg', + title: 'Wire Cut', + type: 'default', + x: 650.2619120191562, + y: 406.97715254515407, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/wireCut', + index: 27, + vy: -1.287149722035832, + vx: -0.30713052553986875 }, { - "id": "7821a1f9-02a0-4833-a048-3bf184b1c6fe", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/gate-cut-icon-thin.svg", - "title": "Gate Cut", - "type": "default", - "x": 549.9119392270499, - "y": 646.3587274495701, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/gateCut", - "index": 28, - "vy": -0.18892428970339134, - "vx": 0.8142153827533107 + id: '7821a1f9-02a0-4833-a048-3bf184b1c6fe', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/gate-cut-icon-thin.svg', + title: 'Gate Cut', + type: 'default', + x: 549.9119392270499, + y: 646.3587274495701, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/gateCut', + index: 28, + vy: -0.18892428970339134, + vx: 0.8142153827533107 }, { - "id": "27a5d147-a323-4c6a-84ef-45d80cae923d", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/vqe_icon.png", - "title": "Variational Quantum Eigensolver (VQE)", - "type": "default", - "x": 679.7181646921192, - "y": 648.6227552000025, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/variationalQuantumEigensolver(vqe)", - "index": 29, - "vy": -1.817003679995153, - "vx": 1.0615415552476906 + id: '27a5d147-a323-4c6a-84ef-45d80cae923d', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/vqe_icon.png', + title: 'Variational Quantum Eigensolver (VQE)', + type: 'default', + x: 679.7181646921192, + y: 648.6227552000025, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/variationalQuantumEigensolver(vqe)', + index: 29, + vy: -1.817003679995153, + vx: 1.0615415552476906 }, { - "id": "3ea9e187-e91b-4852-84eb-b35b5c480892", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/warmstart_icon.png", - "title": "Warm Start", - "type": "default", - "x": 921.5505373963224, - "y": 363.40822103091006, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/warmStart", - "index": 30, - "vy": -2.7953558001076058, - "vx": 0.32490807153250106 + id: '3ea9e187-e91b-4852-84eb-b35b5c480892', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/warmstart_icon.png', + title: 'Warm Start', + type: 'default', + x: 921.5505373963224, + y: 363.40822103091006, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/warmStart', + index: 30, + vy: -2.7953558001076058, + vx: 0.32490807153250106 }, { - "id": "bc795a9b-7977-4e01-b513-f9f5aba38aa7", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/vqa_icon.png", - "title": "Variational Quantum Algorithm (VQA)", - "type": "default", - "x": 712.0091185822073, - "y": 523.6682256666471, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/variationalQuantumAlgorithm(vqa)", - "index": 31, - "vy": -2.0812574909836057, - "vx": 0.9857208879994258 + id: 'bc795a9b-7977-4e01-b513-f9f5aba38aa7', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/vqa_icon.png', + title: 'Variational Quantum Algorithm (VQA)', + type: 'default', + x: 712.0091185822073, + y: 523.6682256666471, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/variationalQuantumAlgorithm(vqa)', + index: 31, + vy: -2.0812574909836057, + vx: 0.9857208879994258 }, { - "id": "d3f6b18a-c8c1-4010-b750-b71d95eb5f5e", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/2be447fbdd370cf59a73ac4389432ddcfe1b864e/icons/quantum_computing_patterns/warm-start-biased-initial-state-thin.svg", - "title": "Biased Initial State", - "type": "default", - "x": 802.2701613521753, - "y": 263.4869406124617, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/biasedInitialState", - "index": 32, - "vy": -2.3012837245230604, - "vx": 0.06305588709765768 + id: 'd3f6b18a-c8c1-4010-b750-b71d95eb5f5e', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/2be447fbdd370cf59a73ac4389432ddcfe1b864e/icons/quantum_computing_patterns/warm-start-biased-initial-state-thin.svg', + title: 'Biased Initial State', + type: 'default', + x: 802.2701613521753, + y: 263.4869406124617, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/biasedInitialState', + index: 32, + vy: -2.3012837245230604, + vx: 0.06305588709765768 }, { - "id": "8c893b97-5980-4c81-870a-1cb4917dc33f", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/2be447fbdd370cf59a73ac4389432ddcfe1b864e/icons/quantum_computing_patterns/warm-start-pre-trained-feature-extractor-thin.svg", - "title": "Pre-Trained Feature Extractor", - "type": "default", - "x": 768.053954928379, - "y": 403.0305870596923, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/pre-trainedFeatureExtractor", - "index": 33, - "vy": -2.292238502946097, - "vx": 0.4814542388141472 + id: '8c893b97-5980-4c81-870a-1cb4917dc33f', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/2be447fbdd370cf59a73ac4389432ddcfe1b864e/icons/quantum_computing_patterns/warm-start-pre-trained-feature-extractor-thin.svg', + title: 'Pre-Trained Feature Extractor', + type: 'default', + x: 768.053954928379, + y: 403.0305870596923, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/pre-trainedFeatureExtractor', + index: 33, + vy: -2.292238502946097, + vx: 0.4814542388141472 }, { - "id": "f417a855-4d52-4a30-b88a-e34a7eaebe86", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/2be447fbdd370cf59a73ac4389432ddcfe1b864e/icons/quantum_computing_patterns/warm-start-variational-parameter-transfer-thin.svg", - "title": "Variational Parameter Transfer", - "type": "default", - "x": 825.3359569840602, - "y": 624.5226254931646, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/variationalParameterTransfer", - "index": 34, - "vy": -2.4099639281094474, - "vx": 1.0829228866102822 + id: 'f417a855-4d52-4a30-b88a-e34a7eaebe86', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/2be447fbdd370cf59a73ac4389432ddcfe1b864e/icons/quantum_computing_patterns/warm-start-variational-parameter-transfer-thin.svg', + title: 'Variational Parameter Transfer', + type: 'default', + x: 825.3359569840602, + y: 624.5226254931646, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/variationalParameterTransfer', + index: 34, + vy: -2.4099639281094474, + vx: 1.0829228866102822 }, { - "id": "b92daa20-265c-4276-b138-3aa5a7bbc37f", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/2be447fbdd370cf59a73ac4389432ddcfe1b864e/icons/quantum_computing_patterns/warm-start-chained-optimization-thin.svg", - "title": "Chained Optimization", - "type": "default", - "x": 885.1573811511903, - "y": 486.96814950092886, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/chainedOptimization", - "index": 35, - "vy": -2.562089157735384, - "vx": 0.7343653391849442 + id: 'b92daa20-265c-4276-b138-3aa5a7bbc37f', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/2be447fbdd370cf59a73ac4389432ddcfe1b864e/icons/quantum_computing_patterns/warm-start-chained-optimization-thin.svg', + title: 'Chained Optimization', + type: 'default', + x: 885.1573811511903, + y: 486.96814950092886, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/chainedOptimization', + index: 35, + vy: -2.562089157735384, + vx: 0.7343653391849442 }, { - "id": "3d9bca6e-5fca-40c5-b005-8a794958f3aa", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/circuit-cutting-icon-thin.svg", - "title": "Circuit Cutting", - "type": "default", - "x": 447.534855349859, - "y": 558.0927185694995, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/circuitCutting", - "index": 36, - "vy": -0.2876313848846642, - "vx": 0.46393613363684416 + id: '3d9bca6e-5fca-40c5-b005-8a794958f3aa', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/circuit-cutting-icon-thin.svg', + title: 'Circuit Cutting', + type: 'default', + x: 447.534855349859, + y: 558.0927185694995, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/circuitCutting', + index: 36, + vy: -0.2876313848846642, + vx: 0.46393613363684416 }, { - "id": "7294c3f2-cb67-492a-8a16-c7384eb9bac2", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/kmeans_icon.png", - "title": "KMeans", - "type": "default", - "x": -781.7378340575847, - "y": 694.3860545446645, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/kmeans", - "index": 37, - "vy": -0.0870382286735078, - "vx": 0.16398656825141705 + id: '7294c3f2-cb67-492a-8a16-c7384eb9bac2', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/kmeans_icon.png', + title: 'KMeans', + type: 'default', + x: -781.7378340575847, + y: 694.3860545446645, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/kmeans', + index: 37, + vy: -0.0870382286735078, + vx: 0.16398656825141705 }, { - "id": "cc3731cf-ecbb-490f-b996-525c8f60d8a9", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/qsvm_icon.png", - "title": "Quantum Support Vector Machine (QSVM)", - "type": "default", - "x": -837.8235240568938, - "y": 498.4990929752298, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantumSupportVectorMachine_qsvm", - "index": 38, - "vy": -0.008993095516037357, - "vx": 0.1861249239141093 + id: 'cc3731cf-ecbb-490f-b996-525c8f60d8a9', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/qsvm_icon.png', + title: 'Quantum Support Vector Machine (QSVM)', + type: 'default', + x: -837.8235240568938, + y: 498.4990929752298, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantumSupportVectorMachine_qsvm', + index: 38, + vy: -0.008993095516037357, + vx: 0.1861249239141093 }, { - "id": "1c95912a-128b-44e7-b2d4-930f7ba11060", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/post_selective_measurement_icon.png", - "title": "Post-Selective Measurement", - "type": "default", - "x": 530.2536514749546, - "y": 440.72988543140974, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/post-selectiveMeasurement", - "index": 39, - "vy": -1.086692032420405, - "vx": -0.1406461029886331 + id: '1c95912a-128b-44e7-b2d4-930f7ba11060', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/post_selective_measurement_icon.png', + title: 'Post-Selective Measurement', + type: 'default', + x: 530.2536514749546, + y: 440.72988543140974, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/post-selectiveMeasurement', + index: 39, + vy: -1.086692032420405, + vx: -0.1406461029886331 }, { - "id": "b8c2dca0-563a-432d-adfd-8bd15ef0dfb8", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/grover_icon.svg", - "title": "Grover", - "type": "default", - "x": 600, - "y": 0, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/grover", - "index": 40, - "vy": -1.1705330808480747, - "vx": -1.322858277070285, - "level": 4 + id: 'b8c2dca0-563a-432d-adfd-8bd15ef0dfb8', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/grover_icon.svg', + title: 'Grover', + type: 'default', + x: 600, + y: 0, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/grover', + index: 40, + vy: -1.1705330808480747, + vx: -1.322858277070285, + level: 4 }, { - "id": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/oracle_icon.png", - "title": "Oracle", - "type": "default", - "x": 400, - "y": 0, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle", - "index": 41, - "vy": -1.2643864599369685, - "vx": -1.2306523250771992, - "level": 3 + id: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/oracle_icon.png', + title: 'Oracle', + type: 'default', + x: 400, + y: 0, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle', + index: 41, + vy: -1.2643864599369685, + vx: -1.2306523250771992, + level: 3 }, { - "id": "da93f915-7f4c-49df-99d0-80d91f26a337", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/qaoa_icon.png", - "title": "Quantum Approximate Optimization Algorithm (QAOA)", - "type": "default", - "x": 573.2006195524892, - "y": 297.00960168572396, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantumApproximateOptimizationAlgorithm(qaoa)", - "index": 42, - "vy": -1.1231941175810336, - "vx": -0.2622608454933711 + id: 'da93f915-7f4c-49df-99d0-80d91f26a337', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/qaoa_icon.png', + title: 'Quantum Approximate Optimization Algorithm (QAOA)', + type: 'default', + x: 573.2006195524892, + y: 297.00960168572396, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantumApproximateOptimizationAlgorithm(qaoa)', + index: 42, + vy: -1.1231941175810336, + vx: -0.2622608454933711 }, { - "id": "482714a7-8409-4165-93fe-72b02c2ae99c", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/quam_icon.png", - "title": "Quantum Associative Memory (QuAM)", - "type": "default", - "x": 567.2463115448537, - "y": 24.37493267903279, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantumAssociativeMemory(quam)", - "index": 43, - "vy": -1.2470072409990236, - "vx": -1.3242610663804328 + id: '482714a7-8409-4165-93fe-72b02c2ae99c', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/quam_icon.png', + title: 'Quantum Associative Memory (QuAM)', + type: 'default', + x: 567.2463115448537, + y: 24.37493267903279, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantumAssociativeMemory(quam)', + index: 43, + vy: -1.2470072409990236, + vx: -1.3242610663804328 }, { - "id": "dd15032b-ce2b-40b6-80ac-97623255b531", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/quantum_classic_split_icon.png", - "title": "Quantum-Classic Split", - "type": "default", - "x": 341.5178684849641, - "y": 313.4508808315476, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantum-classicSplit", - "index": 44, - "vy": -0.5448999897158796, - "vx": -0.6385952537044626 + id: 'dd15032b-ce2b-40b6-80ac-97623255b531', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/quantum_classic_split_icon.png', + title: 'Quantum-Classic Split', + type: 'default', + x: 341.5178684849641, + y: 313.4508808315476, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantum-classicSplit', + index: 44, + vy: -0.5448999897158796, + vx: -0.6385952537044626 }, { - "id": "d9c57511-1101-4707-99bf-36f43a12cb13", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/qram_icon.png", - "title": "Quantum Random Access Memory (QRAM) Encoding", - "type": "default", - "x": 754.9735843490652, - "y": -78.65435922580932, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantumRandomAccessMemory(qram)Encoding", - "index": 45, - "vy": -2.1416845116868877, - "vx": -0.9784314257318649 + id: 'd9c57511-1101-4707-99bf-36f43a12cb13', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/qram_icon.png', + title: 'Quantum Random Access Memory (QRAM) Encoding', + type: 'default', + x: 754.9735843490652, + y: -78.65435922580932, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantumRandomAccessMemory(qram)Encoding', + index: 45, + vy: -2.1416845116868877, + vx: -0.9784314257318649 }, { - "id": "a4ea9f6c-5b0a-4beb-a056-8b261d96ba80", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/qpe_icon.png", - "title": "Quantum Phase Estimation (QPE)", - "type": "default", - "x": 871.9730191577091, - "y": 150.91289837120604, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantumPhaseEstimation", - "index": 46, - "vy": -2.544184519259018, - "vx": -0.12289947418099424 + id: 'a4ea9f6c-5b0a-4beb-a056-8b261d96ba80', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/qpe_icon.png', + title: 'Quantum Phase Estimation (QPE)', + type: 'default', + x: 871.9730191577091, + y: 150.91289837120604, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantumPhaseEstimation', + index: 46, + vy: -2.544184519259018, + vx: -0.12289947418099424 }, { - "id": "ddd64fb6-b324-45eb-8e21-8193dc311841", - "iconUrl": "https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/speedup_by_verification_icon.png", - "title": "Speedup via Verifying", - "type": "default", - "x": 326.12246798245747, - "y": 75.39599133662273, - "patternLanguageId": "af7780d5-1f97-4536-8da7-4194b093ab1d", - "patternLanguageName": "Quantum Computing Patterns", - "uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/speedupViaVerifying", - "index": 47, - "vy": -1.1199739873098438, - "vx": -1.6664663146714402 + id: 'ddd64fb6-b324-45eb-8e21-8193dc311841', + iconUrl: 'https://raw.githubusercontent.com/PatternAtlas/pattern-atlas-content/main/icons/quantum_computing_patterns/speedup_by_verification_icon.png', + title: 'Speedup via Verifying', + type: 'default', + x: 326.12246798245747, + y: 75.39599133662273, + patternLanguageId: 'af7780d5-1f97-4536-8da7-4194b093ab1d', + patternLanguageName: 'Quantum Computing Patterns', + uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/speedupViaVerifying', + index: 47, + vy: -1.1199739873098438, + vx: -1.6664663146714402 } ] export const EDGES = [ { - "id": "3949c20d-b57d-4a18-9228-9adae49a548f", - "markerEnd": { - "template": "arrow", - "scale": 0.5, - "relativeRotation": 0 - }, - "texts": [], - "source": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "target": "2229a430-fe92-4411-9d72-d10dd1d8da14", - "dragHandles": [ - { - "template": "default-marker", - "positionOnLine": 0.95, - "absolutePositionOnLine": -10 - } - ], - "sourceHandle": { - "id": 1, - "x": 110, - "y": 0, - "normal": { - "dx": 1, - "dy": 0 - } - }, - "targetHandle": { - "id": 3, - "x": -60, - "y": 0, - "normal": { - "dx": -1, - "dy": 0 - } + id: '3949c20d-b57d-4a18-9228-9adae49a548f', + markerEnd: { + template: 'arrow', + scale: 0.5, + relativeRotation: 0 + }, + texts: [], + source: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + target: '2229a430-fe92-4411-9d72-d10dd1d8da14', + dragHandles: [ + { + template: 'default-marker', + positionOnLine: 0.95, + absolutePositionOnLine: -10 + } + ], + sourceHandle: { + id: 1, + x: 110, + y: 0, + normal: { + dx: 1, + dy: 0 + } + }, + targetHandle: { + id: 3, + x: -60, + y: 0, + normal: { + dx: -1, + dy: 0 } + } }, { - "id": "16172a61-7cd7-46c1-9eb1-400de23021f1", - "markerEnd": { - "template": "arrow", - "scale": 0.5, - "relativeRotation": 0 - }, - "texts": [], - "source": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "target": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "dragHandles": [ - { - "template": "default-marker", - "positionOnLine": 0.95, - "absolutePositionOnLine": -10 - } - ], - "sourceHandle": { - "id": 1, - "x": 110, - "y": 0, - "normal": { - "dx": 1, - "dy": 0 - } - }, - "targetHandle": { - "id": 3, - "x": -60, - "y": 0, - "normal": { - "dx": -1, - "dy": 0 - } + id: '16172a61-7cd7-46c1-9eb1-400de23021f1', + markerEnd: { + template: 'arrow', + scale: 0.5, + relativeRotation: 0 + }, + texts: [], + source: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + target: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + dragHandles: [ + { + template: 'default-marker', + positionOnLine: 0.95, + absolutePositionOnLine: -10 + } + ], + sourceHandle: { + id: 1, + x: 110, + y: 0, + normal: { + dx: 1, + dy: 0 } + }, + targetHandle: { + id: 3, + x: -60, + y: 0, + normal: { + dx: -1, + dy: 0 + } + } }, { - "id": "e72bab1c-0349-4d99-b8cf-cb370f6ef577", - "markerEnd": { - "template": "arrow", - "scale": 0.5, - "relativeRotation": 0 - }, - "texts": [], - "source": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "target": "b8c2dca0-563a-432d-adfd-8bd15ef0dfb8", - "dragHandles": [ - { - "template": "default-marker", - "positionOnLine": 0.95, - "absolutePositionOnLine": -10 - } - ], - "sourceHandle": { - "id": 1, - "x": 110, - "y": 0, - "normal": { - "dx": 1, - "dy": 0 - } - }, - "targetHandle": { - "id": 3, - "x": -60, - "y": 0, - "normal": { - "dx": -1, - "dy": 0 - } + id: 'e72bab1c-0349-4d99-b8cf-cb370f6ef577', + markerEnd: { + template: 'arrow', + scale: 0.5, + relativeRotation: 0 + }, + texts: [], + source: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + target: 'b8c2dca0-563a-432d-adfd-8bd15ef0dfb8', + dragHandles: [ + { + template: 'default-marker', + positionOnLine: 0.95, + absolutePositionOnLine: -10 + } + ], + sourceHandle: { + id: 1, + x: 110, + y: 0, + normal: { + dx: 1, + dy: 0 + } + }, + targetHandle: { + id: 3, + x: -60, + y: 0, + normal: { + dx: -1, + dy: 0 } + } }, { - "id": "5459b8d4-a14b-4671-bc33-4abf62485522", - "markerEnd": { - "template": "arrow", - "scale": 0.5, - "relativeRotation": 0 - }, - "texts": [], - "source": "2229a430-fe92-4411-9d72-d10dd1d8da14", - "target": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "dragHandles": [ - { - "template": "default-marker", - "positionOnLine": 0.95, - "absolutePositionOnLine": -10 - } - ], - "sourceHandle": { - "id": 1, - "x": 110, - "y": 0, - "normal": { - "dx": 1, - "dy": 0 - } - }, - "targetHandle": { - "id": 3, - "x": -60, - "y": 0, - "normal": { - "dx": -1, - "dy": 0 - } + id: '5459b8d4-a14b-4671-bc33-4abf62485522', + markerEnd: { + template: 'arrow', + scale: 0.5, + relativeRotation: 0 + }, + texts: [], + source: '2229a430-fe92-4411-9d72-d10dd1d8da14', + target: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + dragHandles: [ + { + template: 'default-marker', + positionOnLine: 0.95, + absolutePositionOnLine: -10 + } + ], + sourceHandle: { + id: 1, + x: 110, + y: 0, + normal: { + dx: 1, + dy: 0 } + }, + targetHandle: { + id: 3, + x: -60, + y: 0, + normal: { + dx: -1, + dy: 0 + } + } }, { - "id": "a9f7fa01-6f5d-41fe-91e3-c3bf1ba3ece3", - "markerEnd": { - "template": "arrow", - "scale": 0.5, - "relativeRotation": 0 - }, - "texts": [], - "source": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "target": "b8c2dca0-563a-432d-adfd-8bd15ef0dfb8", - "dragHandles": [ - { - "template": "default-marker", - "positionOnLine": 0.95, - "absolutePositionOnLine": -10 - } - ], - "sourceHandle": { - "id": 1, - "x": 110, - "y": 0, - "normal": { - "dx": 1, - "dy": 0 - } - }, - "targetHandle": { - "id": 3, - "x": -60, - "y": 0, - "normal": { - "dx": -1, - "dy": 0 - } + id: 'a9f7fa01-6f5d-41fe-91e3-c3bf1ba3ece3', + markerEnd: { + template: 'arrow', + scale: 0.5, + relativeRotation: 0 + }, + texts: [], + source: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + target: 'b8c2dca0-563a-432d-adfd-8bd15ef0dfb8', + dragHandles: [ + { + template: 'default-marker', + positionOnLine: 0.95, + absolutePositionOnLine: -10 } + ], + sourceHandle: { + id: 1, + x: 110, + y: 0, + normal: { + dx: 1, + dy: 0 + } + }, + targetHandle: { + id: 3, + x: -60, + y: 0, + normal: { + dx: -1, + dy: 0 + } + } }, { - "id": "2f8680b5-5f20-42e6-9093-4cbebec390af", - "markerEnd": { - "template": "arrow", - "scale": 0.5, - "relativeRotation": 0 - }, - "texts": [], - "source": "96b4d28a-a5ce-4c96-85df-d42587b13c57", - "target": "b8c2dca0-563a-432d-adfd-8bd15ef0dfb8", - "dragHandles": [ - { - "template": "default-marker", - "positionOnLine": 0.95, - "absolutePositionOnLine": -10 - } - ], - "sourceHandle": { - "id": 1, - "x": 110, - "y": 0, - "normal": { - "dx": 1, - "dy": 0 - } - }, - "targetHandle": { - "id": 3, - "x": -60, - "y": 0, - "normal": { - "dx": -1, - "dy": 0 - } + id: '2f8680b5-5f20-42e6-9093-4cbebec390af', + markerEnd: { + template: 'arrow', + scale: 0.5, + relativeRotation: 0 + }, + texts: [], + source: '96b4d28a-a5ce-4c96-85df-d42587b13c57', + target: 'b8c2dca0-563a-432d-adfd-8bd15ef0dfb8', + dragHandles: [ + { + template: 'default-marker', + positionOnLine: 0.95, + absolutePositionOnLine: -10 + } + ], + sourceHandle: { + id: 1, + x: 110, + y: 0, + normal: { + dx: 1, + dy: 0 } + }, + targetHandle: { + id: 3, + x: -60, + y: 0, + normal: { + dx: -1, + dy: 0 + } + } } ] export const EDGE_INFORMATION = [ { - "edges": [ - { - "type": "undirectedEdges", - "edge": { - "id": "25db1f21-831d-4715-ba52-a69c7c114288", - "description": null, - "type": "isRelatedTo", - "pattern1Name": "Initialization", - "pattern1Id": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "pattern1Uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "pattern2Name": "Biased Initial State", - "pattern2Id": "d3f6b18a-c8c1-4010-b750-b71d95eb5f5e", - "pattern2Uri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/biasedInitialState", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/undirectedEdges/25db1f21-831d-4715-ba52-a69c7c114288" - }, - "undirectedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/undirectedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "pattern": [ - { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - }, - { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/d3f6b18a-c8c1-4010-b750-b71d95eb5f5e" - } - ] - } - } - }, - { - "type": "undirectedEdges", - "edge": { - "id": "10968981-4a12-4df1-b121-c0549fd1a951", - "description": null, - "type": "isRelatedTo", - "pattern1Name": "Initialization", - "pattern1Id": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "pattern1Uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "pattern2Name": "Pre-Trained Feature Extractor", - "pattern2Id": "8c893b97-5980-4c81-870a-1cb4917dc33f", - "pattern2Uri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/pre-trainedFeatureExtractor", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/undirectedEdges/10968981-4a12-4df1-b121-c0549fd1a951" - }, - "undirectedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/undirectedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "pattern": [ - { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - }, - { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/8c893b97-5980-4c81-870a-1cb4917dc33f" - } - ] - } - } - }, - { - "type": "outgoingDirectedEdges", - "edge": { - "id": "bf873faa-68a1-466d-b8d1-7cc3c5de2c05", - "description": "An initialized register may be used to compute a Function Table.", - "type": "isRelatedTo", - "sourcePatternName": "Initialization", - "sourcePatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "targetPatternName": "Function Table", - "targetPatternId": "3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/functionTable", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/bf873faa-68a1-466d-b8d1-7cc3c5de2c05" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "3949c20d-b57d-4a18-9228-9adae49a548f", - "description": "special case of", - "type": "uses", - "sourcePatternName": "Uniform Superposition", - "sourcePatternId": "2229a430-fe92-4411-9d72-d10dd1d8da14", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/3949c20d-b57d-4a18-9228-9adae49a548f" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "7d4edd6d-a00e-44b8-b50a-b11d065210f2", - "description": "This pattern is a refinement of Initialization. ", - "type": "refines", - "sourcePatternName": "Basis Encoding", - "sourcePatternId": "bcd4c7a1-3c92-4f8c-a530-72b8b95d3750", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/basisEncoding", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/7d4edd6d-a00e-44b8-b50a-b11d065210f2" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/bcd4c7a1-3c92-4f8c-a530-72b8b95d3750" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "2609d2ca-26e1-4f81-ae48-47fb4d2ce24a", - "description": "This pattern refines Initialization ", - "type": "refines", - "sourcePatternName": "Quantum Associative Memory (QuAM)", - "sourcePatternId": "482714a7-8409-4165-93fe-72b02c2ae99c", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantumAssociativeMemory(quam)", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/2609d2ca-26e1-4f81-ae48-47fb4d2ce24a" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/482714a7-8409-4165-93fe-72b02c2ae99c" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "29a3bc32-896c-45c5-a650-67a0a2379f93", - "description": null, - "type": "refines", - "sourcePatternName": "Amplitude Encoding", - "sourcePatternId": "502147ec-45fa-403f-8f52-e196b3359399", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeEncoding", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/29a3bc32-896c-45c5-a650-67a0a2379f93" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/502147ec-45fa-403f-8f52-e196b3359399" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "9ee7b271-aaca-4099-9fe7-9837266dfc9c", - "description": "As this pattern provides a concrete encoding strategy, it specifies Initialization.", - "type": "refines", - "sourcePatternName": "Angle Encoding", - "sourcePatternId": "e595558d-bfea-4b82-9f47-a38a2097b245", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/angleEncoding", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/9ee7b271-aaca-4099-9fe7-9837266dfc9c" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/e595558d-bfea-4b82-9f47-a38a2097b245" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "9b3cf15c-f209-4087-9374-970d533fac28", - "description": "Within the quantum computation, Initialization can be used.", - "type": "canBeUsedWith", - "sourcePatternName": "Variational Quantum Algorithm (VQA)", - "sourcePatternId": "bc795a9b-7977-4e01-b513-f9f5aba38aa7", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/variationalQuantumAlgorithm(vqa)", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/9b3cf15c-f209-4087-9374-970d533fac28" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/bc795a9b-7977-4e01-b513-f9f5aba38aa7" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "08c226ec-993e-45cb-a011-c8c862ee826c", - "description": null, - "type": "refines", - "sourcePatternName": "Schmidt Decomposition", - "sourcePatternId": "4437fb83-34c0-47a8-8c6f-1272a76b76bb", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/schmidtDecomposition", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/08c226ec-993e-45cb-a011-c8c862ee826c" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/4437fb83-34c0-47a8-8c6f-1272a76b76bb" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "317e4706-ea13-4a1a-89a9-b839f8e7c421", - "description": "A quantum register must make use of Initialization before entanglement can be created.", - "type": "consistsOf", - "sourcePatternName": "Creating Entanglement", - "sourcePatternId": "3d1f3991-df47-4d42-8f9a-e6dcf4e3ccec", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/creatingEntanglement", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/317e4706-ea13-4a1a-89a9-b839f8e7c421" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3d1f3991-df47-4d42-8f9a-e6dcf4e3ccec" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "16172a61-7cd7-46c1-9eb1-400de23021f1", - "description": "An oracle requires correct Initialization of the problem-specific input.", - "type": "isRelatedTo", - "sourcePatternName": "Oracle", - "sourcePatternId": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/16172a61-7cd7-46c1-9eb1-400de23021f1" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "0af67f89-98be-4849-b2da-62d8e369b9f1", - "description": "To pass Information from the classical part of an algorithm to its quantum parts, proper Initialization is needed.", - "type": "dependsOn", - "sourcePatternName": "Quantum-Classic Split", - "sourcePatternId": "dd15032b-ce2b-40b6-80ac-97623255b531", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantum-classicSplit", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/0af67f89-98be-4849-b2da-62d8e369b9f1" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/dd15032b-ce2b-40b6-80ac-97623255b531" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "230d5597-cdfa-4438-b63a-3affbf94a66a", - "description": null, - "type": "refines", - "sourcePatternName": "Quantum Random Access Memory (QRAM) Encoding", - "sourcePatternId": "d9c57511-1101-4707-99bf-36f43a12cb13", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantumRandomAccessMemory(qram)Encoding", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/230d5597-cdfa-4438-b63a-3affbf94a66a" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/d9c57511-1101-4707-99bf-36f43a12cb13" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "c4d12945-a2cf-47a8-b9bc-7ac609107584", - "description": "Can be used as pre-processing in a pre-deployed application.", - "type": "canBeUsedWith", - "sourcePatternName": "Pre-deployed Execution", - "sourcePatternId": "9af072e8-875b-4e7d-980a-98cc6e0e7fd6", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/pre-deployedExecution", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/c4d12945-a2cf-47a8-b9bc-7ac609107584" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/9af072e8-875b-4e7d-980a-98cc6e0e7fd6" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "7f6e3284-2a54-4e23-bf8c-f31d37e83279", - "description": null, - "type": "uses", - "sourcePatternName": "Wire Cut", - "sourcePatternId": "28c99b35-98ce-4bfe-bb6d-94a65207258a", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/wireCut", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/7f6e3284-2a54-4e23-bf8c-f31d37e83279" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/28c99b35-98ce-4bfe-bb6d-94a65207258a" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "e72bab1c-0349-4d99-b8cf-cb370f6ef577", - "description": null, - "type": "uses", - "sourcePatternName": "Grover", - "sourcePatternId": "b8c2dca0-563a-432d-adfd-8bd15ef0dfb8", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/grover", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/e72bab1c-0349-4d99-b8cf-cb370f6ef577" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/b8c2dca0-563a-432d-adfd-8bd15ef0dfb8" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } + edges: [ + { + type: 'undirectedEdges', + edge: { + id: '25db1f21-831d-4715-ba52-a69c7c114288', + description: null, + type: 'isRelatedTo', + pattern1Name: 'Initialization', + pattern1Id: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + pattern1Uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + pattern2Name: 'Biased Initial State', + pattern2Id: 'd3f6b18a-c8c1-4010-b750-b71d95eb5f5e', + pattern2Uri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/biasedInitialState', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/undirectedEdges/25db1f21-831d-4715-ba52-a69c7c114288' + }, + undirectedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/undirectedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + pattern: [ + { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + }, + { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/d3f6b18a-c8c1-4010-b750-b71d95eb5f5e' + } + ] } - ], - "nodeid": "312bc9d3-26c0-40ae-b90b-56effd136c0d" + } + }, + { + type: 'undirectedEdges', + edge: { + id: '10968981-4a12-4df1-b121-c0549fd1a951', + description: null, + type: 'isRelatedTo', + pattern1Name: 'Initialization', + pattern1Id: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + pattern1Uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + pattern2Name: 'Pre-Trained Feature Extractor', + pattern2Id: '8c893b97-5980-4c81-870a-1cb4917dc33f', + pattern2Uri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/pre-trainedFeatureExtractor', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/undirectedEdges/10968981-4a12-4df1-b121-c0549fd1a951' + }, + undirectedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/undirectedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + pattern: [ + { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + }, + { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/8c893b97-5980-4c81-870a-1cb4917dc33f' + } + ] + } + } + }, + { + type: 'outgoingDirectedEdges', + edge: { + id: 'bf873faa-68a1-466d-b8d1-7cc3c5de2c05', + description: 'An initialized register may be used to compute a Function Table.', + type: 'isRelatedTo', + sourcePatternName: 'Initialization', + sourcePatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + targetPatternName: 'Function Table', + targetPatternId: '3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/functionTable', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/bf873faa-68a1-466d-b8d1-7cc3c5de2c05' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '3949c20d-b57d-4a18-9228-9adae49a548f', + description: 'special case of', + type: 'uses', + sourcePatternName: 'Uniform Superposition', + sourcePatternId: '2229a430-fe92-4411-9d72-d10dd1d8da14', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/3949c20d-b57d-4a18-9228-9adae49a548f' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '7d4edd6d-a00e-44b8-b50a-b11d065210f2', + description: 'This pattern is a refinement of Initialization. ', + type: 'refines', + sourcePatternName: 'Basis Encoding', + sourcePatternId: 'bcd4c7a1-3c92-4f8c-a530-72b8b95d3750', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/basisEncoding', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/7d4edd6d-a00e-44b8-b50a-b11d065210f2' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/bcd4c7a1-3c92-4f8c-a530-72b8b95d3750' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '2609d2ca-26e1-4f81-ae48-47fb4d2ce24a', + description: 'This pattern refines Initialization ', + type: 'refines', + sourcePatternName: 'Quantum Associative Memory (QuAM)', + sourcePatternId: '482714a7-8409-4165-93fe-72b02c2ae99c', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantumAssociativeMemory(quam)', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/2609d2ca-26e1-4f81-ae48-47fb4d2ce24a' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/482714a7-8409-4165-93fe-72b02c2ae99c' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '29a3bc32-896c-45c5-a650-67a0a2379f93', + description: null, + type: 'refines', + sourcePatternName: 'Amplitude Encoding', + sourcePatternId: '502147ec-45fa-403f-8f52-e196b3359399', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeEncoding', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/29a3bc32-896c-45c5-a650-67a0a2379f93' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/502147ec-45fa-403f-8f52-e196b3359399' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '9ee7b271-aaca-4099-9fe7-9837266dfc9c', + description: 'As this pattern provides a concrete encoding strategy, it specifies Initialization.', + type: 'refines', + sourcePatternName: 'Angle Encoding', + sourcePatternId: 'e595558d-bfea-4b82-9f47-a38a2097b245', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/angleEncoding', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/9ee7b271-aaca-4099-9fe7-9837266dfc9c' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/e595558d-bfea-4b82-9f47-a38a2097b245' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '9b3cf15c-f209-4087-9374-970d533fac28', + description: 'Within the quantum computation, Initialization can be used.', + type: 'canBeUsedWith', + sourcePatternName: 'Variational Quantum Algorithm (VQA)', + sourcePatternId: 'bc795a9b-7977-4e01-b513-f9f5aba38aa7', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/variationalQuantumAlgorithm(vqa)', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/9b3cf15c-f209-4087-9374-970d533fac28' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/bc795a9b-7977-4e01-b513-f9f5aba38aa7' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '08c226ec-993e-45cb-a011-c8c862ee826c', + description: null, + type: 'refines', + sourcePatternName: 'Schmidt Decomposition', + sourcePatternId: '4437fb83-34c0-47a8-8c6f-1272a76b76bb', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/schmidtDecomposition', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/08c226ec-993e-45cb-a011-c8c862ee826c' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/4437fb83-34c0-47a8-8c6f-1272a76b76bb' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '317e4706-ea13-4a1a-89a9-b839f8e7c421', + description: 'A quantum register must make use of Initialization before entanglement can be created.', + type: 'consistsOf', + sourcePatternName: 'Creating Entanglement', + sourcePatternId: '3d1f3991-df47-4d42-8f9a-e6dcf4e3ccec', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/creatingEntanglement', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/317e4706-ea13-4a1a-89a9-b839f8e7c421' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3d1f3991-df47-4d42-8f9a-e6dcf4e3ccec' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '16172a61-7cd7-46c1-9eb1-400de23021f1', + description: 'An oracle requires correct Initialization of the problem-specific input.', + type: 'isRelatedTo', + sourcePatternName: 'Oracle', + sourcePatternId: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/16172a61-7cd7-46c1-9eb1-400de23021f1' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '0af67f89-98be-4849-b2da-62d8e369b9f1', + description: 'To pass Information from the classical part of an algorithm to its quantum parts, proper Initialization is needed.', + type: 'dependsOn', + sourcePatternName: 'Quantum-Classic Split', + sourcePatternId: 'dd15032b-ce2b-40b6-80ac-97623255b531', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantum-classicSplit', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/0af67f89-98be-4849-b2da-62d8e369b9f1' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/dd15032b-ce2b-40b6-80ac-97623255b531' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '230d5597-cdfa-4438-b63a-3affbf94a66a', + description: null, + type: 'refines', + sourcePatternName: 'Quantum Random Access Memory (QRAM) Encoding', + sourcePatternId: 'd9c57511-1101-4707-99bf-36f43a12cb13', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantumRandomAccessMemory(qram)Encoding', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/230d5597-cdfa-4438-b63a-3affbf94a66a' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/d9c57511-1101-4707-99bf-36f43a12cb13' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: 'c4d12945-a2cf-47a8-b9bc-7ac609107584', + description: 'Can be used as pre-processing in a pre-deployed application.', + type: 'canBeUsedWith', + sourcePatternName: 'Pre-deployed Execution', + sourcePatternId: '9af072e8-875b-4e7d-980a-98cc6e0e7fd6', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/pre-deployedExecution', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/c4d12945-a2cf-47a8-b9bc-7ac609107584' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/9af072e8-875b-4e7d-980a-98cc6e0e7fd6' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '7f6e3284-2a54-4e23-bf8c-f31d37e83279', + description: null, + type: 'uses', + sourcePatternName: 'Wire Cut', + sourcePatternId: '28c99b35-98ce-4bfe-bb6d-94a65207258a', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/wireCut', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/7f6e3284-2a54-4e23-bf8c-f31d37e83279' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/28c99b35-98ce-4bfe-bb6d-94a65207258a' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: 'e72bab1c-0349-4d99-b8cf-cb370f6ef577', + description: null, + type: 'uses', + sourcePatternName: 'Grover', + sourcePatternId: 'b8c2dca0-563a-432d-adfd-8bd15ef0dfb8', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/grover', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/e72bab1c-0349-4d99-b8cf-cb370f6ef577' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/b8c2dca0-563a-432d-adfd-8bd15ef0dfb8' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + } + ], + nodeid: '312bc9d3-26c0-40ae-b90b-56effd136c0d' }, { - "edges": [ - { - "type": "outgoingDirectedEdges", - "edge": { - "id": "3949c20d-b57d-4a18-9228-9adae49a548f", - "description": "special case of", - "type": "uses", - "sourcePatternName": "Uniform Superposition", - "sourcePatternId": "2229a430-fe92-4411-9d72-d10dd1d8da14", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/3949c20d-b57d-4a18-9228-9adae49a548f" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "outgoingDirectedEdges", - "edge": { - "id": "a78279c1-0bb1-48bc-a329-24a9bc1a1925", - "description": "Special case: Uniform Superposition creates a superposition of all computational basis states", - "type": "uses", - "sourcePatternName": "Uniform Superposition", - "sourcePatternId": "2229a430-fe92-4411-9d72-d10dd1d8da14", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition", - "targetPatternName": "Quantum Associative Memory (QuAM)", - "targetPatternId": "482714a7-8409-4165-93fe-72b02c2ae99c", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantumAssociativeMemory(quam)", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/a78279c1-0bb1-48bc-a329-24a9bc1a1925" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/482714a7-8409-4165-93fe-72b02c2ae99c" - } - } - } - }, - { - "type": "outgoingDirectedEdges", - "edge": { - "id": "849aa18c-aadd-4145-bfd0-2bd33dbad59a", - "description": "Each of the computational basis states also represents a value in Basis Encoding.", - "type": "isRelatedTo", - "sourcePatternName": "Uniform Superposition", - "sourcePatternId": "2229a430-fe92-4411-9d72-d10dd1d8da14", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition", - "targetPatternName": "Basis Encoding", - "targetPatternId": "bcd4c7a1-3c92-4f8c-a530-72b8b95d3750", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/basisEncoding", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/849aa18c-aadd-4145-bfd0-2bd33dbad59a" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/bcd4c7a1-3c92-4f8c-a530-72b8b95d3750" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "59943139-9f75-4f90-b31d-57b2d5a586a8", - "description": "After a register is brought into uniform superposition, Creating Entanglement may be used.", - "type": "canBeUsedAfter", - "sourcePatternName": "Creating Entanglement", - "sourcePatternId": "3d1f3991-df47-4d42-8f9a-e6dcf4e3ccec", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/creatingEntanglement", - "targetPatternName": "Uniform Superposition", - "targetPatternId": "2229a430-fe92-4411-9d72-d10dd1d8da14", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/59943139-9f75-4f90-b31d-57b2d5a586a8" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3d1f3991-df47-4d42-8f9a-e6dcf4e3ccec" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "af7a4b7d-f1cf-485d-9efa-3a8e5ff010b9", - "description": "A Function Table can be computed on a register in uniform superposition.", - "type": "canBeUsedWith", - "sourcePatternName": "Function Table", - "sourcePatternId": "3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/functionTable", - "targetPatternName": "Uniform Superposition", - "targetPatternId": "2229a430-fe92-4411-9d72-d10dd1d8da14", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/af7a4b7d-f1cf-485d-9efa-3a8e5ff010b9" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "5459b8d4-a14b-4671-bc33-4abf62485522", - "description": "An Oracle may require its input to be in uniform superposition.", - "type": "dependsOn", - "sourcePatternName": "Oracle", - "sourcePatternId": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle", - "targetPatternName": "Uniform Superposition", - "targetPatternId": "2229a430-fe92-4411-9d72-d10dd1d8da14", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/5459b8d4-a14b-4671-bc33-4abf62485522" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "2cea9196-e0cd-4100-9531-4a028cdbb9bb", - "description": "The example in the solution also uses Uniform Superposition", - "type": "isRelatedTo", - "sourcePatternName": "Creating Entanglement", - "sourcePatternId": "3d1f3991-df47-4d42-8f9a-e6dcf4e3ccec", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/creatingEntanglement", - "targetPatternName": "Uniform Superposition", - "targetPatternId": "2229a430-fe92-4411-9d72-d10dd1d8da14", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/2cea9196-e0cd-4100-9531-4a028cdbb9bb" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3d1f3991-df47-4d42-8f9a-e6dcf4e3ccec" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "dc1a833e-9c50-4935-b29c-46ec0522663f", - "description": "Can be used while modeling quantum circuits", - "type": "canBeUsedWith", - "sourcePatternName": "Standalone Circuit Execution", - "sourcePatternId": "5850c6ab-5c87-4331-8439-73692a403228", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/standaloneCircuitExecution", - "targetPatternName": "Uniform Superposition", - "targetPatternId": "2229a430-fe92-4411-9d72-d10dd1d8da14", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/dc1a833e-9c50-4935-b29c-46ec0522663f" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/5850c6ab-5c87-4331-8439-73692a403228" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14" - } - } - } + edges: [ + { + type: 'outgoingDirectedEdges', + edge: { + id: '3949c20d-b57d-4a18-9228-9adae49a548f', + description: 'special case of', + type: 'uses', + sourcePatternName: 'Uniform Superposition', + sourcePatternId: '2229a430-fe92-4411-9d72-d10dd1d8da14', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/3949c20d-b57d-4a18-9228-9adae49a548f' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'outgoingDirectedEdges', + edge: { + id: 'a78279c1-0bb1-48bc-a329-24a9bc1a1925', + description: 'Special case: Uniform Superposition creates a superposition of all computational basis states', + type: 'uses', + sourcePatternName: 'Uniform Superposition', + sourcePatternId: '2229a430-fe92-4411-9d72-d10dd1d8da14', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition', + targetPatternName: 'Quantum Associative Memory (QuAM)', + targetPatternId: '482714a7-8409-4165-93fe-72b02c2ae99c', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantumAssociativeMemory(quam)', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/a78279c1-0bb1-48bc-a329-24a9bc1a1925' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/482714a7-8409-4165-93fe-72b02c2ae99c' + } + } + } + }, + { + type: 'outgoingDirectedEdges', + edge: { + id: '849aa18c-aadd-4145-bfd0-2bd33dbad59a', + description: 'Each of the computational basis states also represents a value in Basis Encoding.', + type: 'isRelatedTo', + sourcePatternName: 'Uniform Superposition', + sourcePatternId: '2229a430-fe92-4411-9d72-d10dd1d8da14', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition', + targetPatternName: 'Basis Encoding', + targetPatternId: 'bcd4c7a1-3c92-4f8c-a530-72b8b95d3750', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/basisEncoding', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/849aa18c-aadd-4145-bfd0-2bd33dbad59a' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/bcd4c7a1-3c92-4f8c-a530-72b8b95d3750' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '59943139-9f75-4f90-b31d-57b2d5a586a8', + description: 'After a register is brought into uniform superposition, Creating Entanglement may be used.', + type: 'canBeUsedAfter', + sourcePatternName: 'Creating Entanglement', + sourcePatternId: '3d1f3991-df47-4d42-8f9a-e6dcf4e3ccec', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/creatingEntanglement', + targetPatternName: 'Uniform Superposition', + targetPatternId: '2229a430-fe92-4411-9d72-d10dd1d8da14', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/59943139-9f75-4f90-b31d-57b2d5a586a8' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3d1f3991-df47-4d42-8f9a-e6dcf4e3ccec' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14' + } } - ], - "nodeid": "2229a430-fe92-4411-9d72-d10dd1d8da14" + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: 'af7a4b7d-f1cf-485d-9efa-3a8e5ff010b9', + description: 'A Function Table can be computed on a register in uniform superposition.', + type: 'canBeUsedWith', + sourcePatternName: 'Function Table', + sourcePatternId: '3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/functionTable', + targetPatternName: 'Uniform Superposition', + targetPatternId: '2229a430-fe92-4411-9d72-d10dd1d8da14', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/af7a4b7d-f1cf-485d-9efa-3a8e5ff010b9' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '5459b8d4-a14b-4671-bc33-4abf62485522', + description: 'An Oracle may require its input to be in uniform superposition.', + type: 'dependsOn', + sourcePatternName: 'Oracle', + sourcePatternId: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle', + targetPatternName: 'Uniform Superposition', + targetPatternId: '2229a430-fe92-4411-9d72-d10dd1d8da14', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/5459b8d4-a14b-4671-bc33-4abf62485522' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '2cea9196-e0cd-4100-9531-4a028cdbb9bb', + description: 'The example in the solution also uses Uniform Superposition', + type: 'isRelatedTo', + sourcePatternName: 'Creating Entanglement', + sourcePatternId: '3d1f3991-df47-4d42-8f9a-e6dcf4e3ccec', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/creatingEntanglement', + targetPatternName: 'Uniform Superposition', + targetPatternId: '2229a430-fe92-4411-9d72-d10dd1d8da14', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/2cea9196-e0cd-4100-9531-4a028cdbb9bb' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3d1f3991-df47-4d42-8f9a-e6dcf4e3ccec' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: 'dc1a833e-9c50-4935-b29c-46ec0522663f', + description: 'Can be used while modeling quantum circuits', + type: 'canBeUsedWith', + sourcePatternName: 'Standalone Circuit Execution', + sourcePatternId: '5850c6ab-5c87-4331-8439-73692a403228', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/standaloneCircuitExecution', + targetPatternName: 'Uniform Superposition', + targetPatternId: '2229a430-fe92-4411-9d72-d10dd1d8da14', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/dc1a833e-9c50-4935-b29c-46ec0522663f' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/5850c6ab-5c87-4331-8439-73692a403228' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14' + } + } + } + } + ], + nodeid: '2229a430-fe92-4411-9d72-d10dd1d8da14' }, { - "edges": [ - { - "type": "undirectedEdges", - "edge": { - "id": "d82208b3-d9aa-454d-9489-d4f6bb43adde", - "description": "A Function Table can show the same behavior as a special case of an oracle.", - "type": "isRelatedTo", - "pattern1Name": "Function Table", - "pattern1Id": "3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee", - "pattern1Uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/functionTable", - "pattern2Name": "Oracle", - "pattern2Id": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "pattern2Uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/undirectedEdges/d82208b3-d9aa-454d-9489-d4f6bb43adde" - }, - "undirectedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/undirectedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "pattern": [ - { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee" - }, - { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e" - } - ] - } - } - }, - { - "type": "outgoingDirectedEdges", - "edge": { - "id": "5459b8d4-a14b-4671-bc33-4abf62485522", - "description": "An Oracle may require its input to be in uniform superposition.", - "type": "dependsOn", - "sourcePatternName": "Oracle", - "sourcePatternId": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle", - "targetPatternName": "Uniform Superposition", - "targetPatternId": "2229a430-fe92-4411-9d72-d10dd1d8da14", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/5459b8d4-a14b-4671-bc33-4abf62485522" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14" - } - } - } - }, - { - "type": "outgoingDirectedEdges", - "edge": { - "id": "16172a61-7cd7-46c1-9eb1-400de23021f1", - "description": "An oracle requires correct Initialization of the problem-specific input.", - "type": "isRelatedTo", - "sourcePatternName": "Oracle", - "sourcePatternId": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/16172a61-7cd7-46c1-9eb1-400de23021f1" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "outgoingDirectedEdges", - "edge": { - "id": "9186fde3-7b56-43bc-8c60-d45a8405c473", - "description": "Typically, an Uncompute is used after an oracle was applied.", - "type": "isRelatedTo", - "sourcePatternName": "Oracle", - "sourcePatternId": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle", - "targetPatternName": "Uncompute", - "targetPatternId": "d4f7c247-e2bb-4301-ad06-f758fa58f2dc", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uncompute", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/9186fde3-7b56-43bc-8c60-d45a8405c473" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/d4f7c247-e2bb-4301-ad06-f758fa58f2dc" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "b15bb40f-ca2c-41d2-b16b-a4da29ad1598", - "description": "The computation of the function table is done by an Oracle.", - "type": "dependsOn", - "sourcePatternName": "Function Table", - "sourcePatternId": "3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/functionTable", - "targetPatternName": "Oracle", - "targetPatternId": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/b15bb40f-ca2c-41d2-b16b-a4da29ad1598" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "fc32e4f1-5214-43d1-a8dd-c82d921555fe", - "description": "A phase shift can be used as an Oracle.", - "type": "isRelatedTo", - "sourcePatternName": "Phase Shift", - "sourcePatternId": "c6560c51-d2e3-4595-b9c3-b609c75c0b82", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/phaseShift", - "targetPatternName": "Oracle", - "targetPatternId": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/fc32e4f1-5214-43d1-a8dd-c82d921555fe" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/c6560c51-d2e3-4595-b9c3-b609c75c0b82" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "c0f396d7-2ece-4204-938c-6b5997601049", - "description": "An Oracle is used to verify solutions.", - "type": "uses", - "sourcePatternName": "Speedup via Verifying", - "sourcePatternId": "ddd64fb6-b324-45eb-8e21-8193dc311841", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/speedupViaVerifying", - "targetPatternName": "Oracle", - "targetPatternId": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/c0f396d7-2ece-4204-938c-6b5997601049" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/ddd64fb6-b324-45eb-8e21-8193dc311841" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "ece451df-6563-401a-a6fa-314df54b5d19", - "description": "Quantum Module Templates can accept Oracles as behavior inputs that get integrated into the final quantum circuit (this process is also called oracle expansion).", - "type": "canBeUsedWith", - "sourcePatternName": "Quantum Module Template", - "sourcePatternId": "d5cda8c9-f39b-474a-9032-c17131884975", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/quantumModuleTemplate", - "targetPatternName": "Oracle", - "targetPatternId": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/ece451df-6563-401a-a6fa-314df54b5d19" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/d5cda8c9-f39b-474a-9032-c17131884975" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "a9f7fa01-6f5d-41fe-91e3-c3bf1ba3ece3", - "description": null, - "type": "uses", - "sourcePatternName": "Grover", - "sourcePatternId": "b8c2dca0-563a-432d-adfd-8bd15ef0dfb8", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/grover", - "targetPatternName": "Oracle", - "targetPatternId": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/a9f7fa01-6f5d-41fe-91e3-c3bf1ba3ece3" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/b8c2dca0-563a-432d-adfd-8bd15ef0dfb8" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e" - } - } - } + edges: [ + { + type: 'undirectedEdges', + edge: { + id: 'd82208b3-d9aa-454d-9489-d4f6bb43adde', + description: 'A Function Table can show the same behavior as a special case of an oracle.', + type: 'isRelatedTo', + pattern1Name: 'Function Table', + pattern1Id: '3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee', + pattern1Uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/functionTable', + pattern2Name: 'Oracle', + pattern2Id: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + pattern2Uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/undirectedEdges/d82208b3-d9aa-454d-9489-d4f6bb43adde' + }, + undirectedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/undirectedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + pattern: [ + { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee' + }, + { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e' + } + ] + } + } + }, + { + type: 'outgoingDirectedEdges', + edge: { + id: '5459b8d4-a14b-4671-bc33-4abf62485522', + description: 'An Oracle may require its input to be in uniform superposition.', + type: 'dependsOn', + sourcePatternName: 'Oracle', + sourcePatternId: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle', + targetPatternName: 'Uniform Superposition', + targetPatternId: '2229a430-fe92-4411-9d72-d10dd1d8da14', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/5459b8d4-a14b-4671-bc33-4abf62485522' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14' + } + } + } + }, + { + type: 'outgoingDirectedEdges', + edge: { + id: '16172a61-7cd7-46c1-9eb1-400de23021f1', + description: 'An oracle requires correct Initialization of the problem-specific input.', + type: 'isRelatedTo', + sourcePatternName: 'Oracle', + sourcePatternId: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/16172a61-7cd7-46c1-9eb1-400de23021f1' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'outgoingDirectedEdges', + edge: { + id: '9186fde3-7b56-43bc-8c60-d45a8405c473', + description: 'Typically, an Uncompute is used after an oracle was applied.', + type: 'isRelatedTo', + sourcePatternName: 'Oracle', + sourcePatternId: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle', + targetPatternName: 'Uncompute', + targetPatternId: 'd4f7c247-e2bb-4301-ad06-f758fa58f2dc', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uncompute', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/9186fde3-7b56-43bc-8c60-d45a8405c473' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/d4f7c247-e2bb-4301-ad06-f758fa58f2dc' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: 'b15bb40f-ca2c-41d2-b16b-a4da29ad1598', + description: 'The computation of the function table is done by an Oracle.', + type: 'dependsOn', + sourcePatternName: 'Function Table', + sourcePatternId: '3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/functionTable', + targetPatternName: 'Oracle', + targetPatternId: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/b15bb40f-ca2c-41d2-b16b-a4da29ad1598' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: 'fc32e4f1-5214-43d1-a8dd-c82d921555fe', + description: 'A phase shift can be used as an Oracle.', + type: 'isRelatedTo', + sourcePatternName: 'Phase Shift', + sourcePatternId: 'c6560c51-d2e3-4595-b9c3-b609c75c0b82', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/phaseShift', + targetPatternName: 'Oracle', + targetPatternId: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/fc32e4f1-5214-43d1-a8dd-c82d921555fe' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/c6560c51-d2e3-4595-b9c3-b609c75c0b82' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: 'c0f396d7-2ece-4204-938c-6b5997601049', + description: 'An Oracle is used to verify solutions.', + type: 'uses', + sourcePatternName: 'Speedup via Verifying', + sourcePatternId: 'ddd64fb6-b324-45eb-8e21-8193dc311841', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/speedupViaVerifying', + targetPatternName: 'Oracle', + targetPatternId: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/c0f396d7-2ece-4204-938c-6b5997601049' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/ddd64fb6-b324-45eb-8e21-8193dc311841' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: 'ece451df-6563-401a-a6fa-314df54b5d19', + description: 'Quantum Module Templates can accept Oracles as behavior inputs that get integrated into the final quantum circuit (this process is also called oracle expansion).', + type: 'canBeUsedWith', + sourcePatternName: 'Quantum Module Template', + sourcePatternId: 'd5cda8c9-f39b-474a-9032-c17131884975', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/quantumModuleTemplate', + targetPatternName: 'Oracle', + targetPatternId: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/ece451df-6563-401a-a6fa-314df54b5d19' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/d5cda8c9-f39b-474a-9032-c17131884975' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: 'a9f7fa01-6f5d-41fe-91e3-c3bf1ba3ece3', + description: null, + type: 'uses', + sourcePatternName: 'Grover', + sourcePatternId: 'b8c2dca0-563a-432d-adfd-8bd15ef0dfb8', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/grover', + targetPatternName: 'Oracle', + targetPatternId: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/a9f7fa01-6f5d-41fe-91e3-c3bf1ba3ece3' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/b8c2dca0-563a-432d-adfd-8bd15ef0dfb8' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e' + } } - ], - "nodeid": "1cc7e9d6-ab37-412e-8afa-604a25de296e" + } + } + ], + nodeid: '1cc7e9d6-ab37-412e-8afa-604a25de296e' }, { - "edges": [ - { - "type": "outgoingDirectedEdges", - "edge": { - "id": "01151ef3-3dff-46a2-af1e-11208837531a", - "description": "To perform an Amplitude Amplification, two phase shifts are needed.", - "type": "uses", - "sourcePatternName": "Amplitude Amplification", - "sourcePatternId": "96b4d28a-a5ce-4c96-85df-d42587b13c57", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeAmplification", - "targetPatternName": "Phase Shift", - "targetPatternId": "c6560c51-d2e3-4595-b9c3-b609c75c0b82", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/phaseShift", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/01151ef3-3dff-46a2-af1e-11208837531a" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/96b4d28a-a5ce-4c96-85df-d42587b13c57" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/c6560c51-d2e3-4595-b9c3-b609c75c0b82" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "12e8faa2-3fe2-4097-9164-03e7db3fd4f3", - "description": "Amplitude Amplification can be used to increase the probability to select a particular branch.", - "type": "canBeUsedWith", - "sourcePatternName": "Post-Selective Measurement", - "sourcePatternId": "1c95912a-128b-44e7-b2d4-930f7ba11060", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/post-selectiveMeasurement", - "targetPatternName": "Amplitude Amplification", - "targetPatternId": "96b4d28a-a5ce-4c96-85df-d42587b13c57", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeAmplification", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/12e8faa2-3fe2-4097-9164-03e7db3fd4f3" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1c95912a-128b-44e7-b2d4-930f7ba11060" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/96b4d28a-a5ce-4c96-85df-d42587b13c57" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "8b12f552-cd42-4457-a279-336dbd68a109", - "description": "Function tables can be further generalized as Amplitude Amplification.", - "type": "isRelatedTo", - "sourcePatternName": "Function Table", - "sourcePatternId": "3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/functionTable", - "targetPatternName": "Amplitude Amplification", - "targetPatternId": "96b4d28a-a5ce-4c96-85df-d42587b13c57", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeAmplification", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/8b12f552-cd42-4457-a279-336dbd68a109" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/96b4d28a-a5ce-4c96-85df-d42587b13c57" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "c5377624-8b03-4f8c-9415-cec5e84b6b44", - "description": "The Grover algorithm used for the scanning increases the probability to measure a correct solution via Amplitude Amplification.", - "type": "isRelatedTo", - "sourcePatternName": "Speedup via Verifying", - "sourcePatternId": "ddd64fb6-b324-45eb-8e21-8193dc311841", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/speedupViaVerifying", - "targetPatternName": "Amplitude Amplification", - "targetPatternId": "96b4d28a-a5ce-4c96-85df-d42587b13c57", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeAmplification", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/c5377624-8b03-4f8c-9415-cec5e84b6b44" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/ddd64fb6-b324-45eb-8e21-8193dc311841" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/96b4d28a-a5ce-4c96-85df-d42587b13c57" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "2f8680b5-5f20-42e6-9093-4cbebec390af", - "description": null, - "type": "uses", - "sourcePatternName": "Grover", - "sourcePatternId": "b8c2dca0-563a-432d-adfd-8bd15ef0dfb8", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/grover", - "targetPatternName": "Amplitude Amplification", - "targetPatternId": "96b4d28a-a5ce-4c96-85df-d42587b13c57", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeAmplification", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/2f8680b5-5f20-42e6-9093-4cbebec390af" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/b8c2dca0-563a-432d-adfd-8bd15ef0dfb8" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/96b4d28a-a5ce-4c96-85df-d42587b13c57" - } - } - } + edges: [ + { + type: 'outgoingDirectedEdges', + edge: { + id: '01151ef3-3dff-46a2-af1e-11208837531a', + description: 'To perform an Amplitude Amplification, two phase shifts are needed.', + type: 'uses', + sourcePatternName: 'Amplitude Amplification', + sourcePatternId: '96b4d28a-a5ce-4c96-85df-d42587b13c57', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeAmplification', + targetPatternName: 'Phase Shift', + targetPatternId: 'c6560c51-d2e3-4595-b9c3-b609c75c0b82', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/phaseShift', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/01151ef3-3dff-46a2-af1e-11208837531a' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/96b4d28a-a5ce-4c96-85df-d42587b13c57' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/c6560c51-d2e3-4595-b9c3-b609c75c0b82' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '12e8faa2-3fe2-4097-9164-03e7db3fd4f3', + description: 'Amplitude Amplification can be used to increase the probability to select a particular branch.', + type: 'canBeUsedWith', + sourcePatternName: 'Post-Selective Measurement', + sourcePatternId: '1c95912a-128b-44e7-b2d4-930f7ba11060', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/post-selectiveMeasurement', + targetPatternName: 'Amplitude Amplification', + targetPatternId: '96b4d28a-a5ce-4c96-85df-d42587b13c57', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeAmplification', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/12e8faa2-3fe2-4097-9164-03e7db3fd4f3' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1c95912a-128b-44e7-b2d4-930f7ba11060' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/96b4d28a-a5ce-4c96-85df-d42587b13c57' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '8b12f552-cd42-4457-a279-336dbd68a109', + description: 'Function tables can be further generalized as Amplitude Amplification.', + type: 'isRelatedTo', + sourcePatternName: 'Function Table', + sourcePatternId: '3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/functionTable', + targetPatternName: 'Amplitude Amplification', + targetPatternId: '96b4d28a-a5ce-4c96-85df-d42587b13c57', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeAmplification', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/8b12f552-cd42-4457-a279-336dbd68a109' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/96b4d28a-a5ce-4c96-85df-d42587b13c57' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: 'c5377624-8b03-4f8c-9415-cec5e84b6b44', + description: 'The Grover algorithm used for the scanning increases the probability to measure a correct solution via Amplitude Amplification.', + type: 'isRelatedTo', + sourcePatternName: 'Speedup via Verifying', + sourcePatternId: 'ddd64fb6-b324-45eb-8e21-8193dc311841', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/speedupViaVerifying', + targetPatternName: 'Amplitude Amplification', + targetPatternId: '96b4d28a-a5ce-4c96-85df-d42587b13c57', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeAmplification', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/c5377624-8b03-4f8c-9415-cec5e84b6b44' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/ddd64fb6-b324-45eb-8e21-8193dc311841' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/96b4d28a-a5ce-4c96-85df-d42587b13c57' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '2f8680b5-5f20-42e6-9093-4cbebec390af', + description: null, + type: 'uses', + sourcePatternName: 'Grover', + sourcePatternId: 'b8c2dca0-563a-432d-adfd-8bd15ef0dfb8', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/grover', + targetPatternName: 'Amplitude Amplification', + targetPatternId: '96b4d28a-a5ce-4c96-85df-d42587b13c57', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeAmplification', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/2f8680b5-5f20-42e6-9093-4cbebec390af' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/b8c2dca0-563a-432d-adfd-8bd15ef0dfb8' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/96b4d28a-a5ce-4c96-85df-d42587b13c57' + } } - ], - "nodeid": "96b4d28a-a5ce-4c96-85df-d42587b13c57" + } + } + ], + nodeid: '96b4d28a-a5ce-4c96-85df-d42587b13c57' }, { - "edges": [ - { - "type": "outgoingDirectedEdges", - "edge": { - "id": "e72bab1c-0349-4d99-b8cf-cb370f6ef577", - "description": null, - "type": "uses", - "sourcePatternName": "Grover", - "sourcePatternId": "b8c2dca0-563a-432d-adfd-8bd15ef0dfb8", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/grover", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/e72bab1c-0349-4d99-b8cf-cb370f6ef577" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/b8c2dca0-563a-432d-adfd-8bd15ef0dfb8" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "outgoingDirectedEdges", - "edge": { - "id": "2f8680b5-5f20-42e6-9093-4cbebec390af", - "description": null, - "type": "uses", - "sourcePatternName": "Grover", - "sourcePatternId": "b8c2dca0-563a-432d-adfd-8bd15ef0dfb8", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/grover", - "targetPatternName": "Amplitude Amplification", - "targetPatternId": "96b4d28a-a5ce-4c96-85df-d42587b13c57", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeAmplification", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/2f8680b5-5f20-42e6-9093-4cbebec390af" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/b8c2dca0-563a-432d-adfd-8bd15ef0dfb8" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/96b4d28a-a5ce-4c96-85df-d42587b13c57" - } - } - } - }, - { - "type": "outgoingDirectedEdges", - "edge": { - "id": "a9f7fa01-6f5d-41fe-91e3-c3bf1ba3ece3", - "description": null, - "type": "uses", - "sourcePatternName": "Grover", - "sourcePatternId": "b8c2dca0-563a-432d-adfd-8bd15ef0dfb8", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/grover", - "targetPatternName": "Oracle", - "targetPatternId": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/a9f7fa01-6f5d-41fe-91e3-c3bf1ba3ece3" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/b8c2dca0-563a-432d-adfd-8bd15ef0dfb8" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e" - } - } - } + edges: [ + { + type: 'outgoingDirectedEdges', + edge: { + id: 'e72bab1c-0349-4d99-b8cf-cb370f6ef577', + description: null, + type: 'uses', + sourcePatternName: 'Grover', + sourcePatternId: 'b8c2dca0-563a-432d-adfd-8bd15ef0dfb8', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/grover', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/e72bab1c-0349-4d99-b8cf-cb370f6ef577' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/b8c2dca0-563a-432d-adfd-8bd15ef0dfb8' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'outgoingDirectedEdges', + edge: { + id: '2f8680b5-5f20-42e6-9093-4cbebec390af', + description: null, + type: 'uses', + sourcePatternName: 'Grover', + sourcePatternId: 'b8c2dca0-563a-432d-adfd-8bd15ef0dfb8', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/grover', + targetPatternName: 'Amplitude Amplification', + targetPatternId: '96b4d28a-a5ce-4c96-85df-d42587b13c57', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeAmplification', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/2f8680b5-5f20-42e6-9093-4cbebec390af' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/b8c2dca0-563a-432d-adfd-8bd15ef0dfb8' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/96b4d28a-a5ce-4c96-85df-d42587b13c57' + } } - ], - "nodeid": "b8c2dca0-563a-432d-adfd-8bd15ef0dfb8" + } + }, + { + type: 'outgoingDirectedEdges', + edge: { + id: 'a9f7fa01-6f5d-41fe-91e3-c3bf1ba3ece3', + description: null, + type: 'uses', + sourcePatternName: 'Grover', + sourcePatternId: 'b8c2dca0-563a-432d-adfd-8bd15ef0dfb8', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/grover', + targetPatternName: 'Oracle', + targetPatternId: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/a9f7fa01-6f5d-41fe-91e3-c3bf1ba3ece3' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/b8c2dca0-563a-432d-adfd-8bd15ef0dfb8' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e' + } + } + } + } + ], + nodeid: 'b8c2dca0-563a-432d-adfd-8bd15ef0dfb8' }, { - "edges": [ - { - "type": "undirectedEdges", - "edge": { - "id": "25db1f21-831d-4715-ba52-a69c7c114288", - "description": null, - "type": "isRelatedTo", - "pattern1Name": "Initialization", - "pattern1Id": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "pattern1Uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "pattern2Name": "Biased Initial State", - "pattern2Id": "d3f6b18a-c8c1-4010-b750-b71d95eb5f5e", - "pattern2Uri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/biasedInitialState", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/undirectedEdges/25db1f21-831d-4715-ba52-a69c7c114288" - }, - "undirectedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/undirectedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "pattern": [ - { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - }, - { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/d3f6b18a-c8c1-4010-b750-b71d95eb5f5e" - } - ] - } - } - }, - { - "type": "undirectedEdges", - "edge": { - "id": "10968981-4a12-4df1-b121-c0549fd1a951", - "description": null, - "type": "isRelatedTo", - "pattern1Name": "Initialization", - "pattern1Id": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "pattern1Uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "pattern2Name": "Pre-Trained Feature Extractor", - "pattern2Id": "8c893b97-5980-4c81-870a-1cb4917dc33f", - "pattern2Uri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/pre-trainedFeatureExtractor", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/undirectedEdges/10968981-4a12-4df1-b121-c0549fd1a951" - }, - "undirectedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/undirectedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "pattern": [ - { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - }, - { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/8c893b97-5980-4c81-870a-1cb4917dc33f" - } - ] - } - } - }, - { - "type": "outgoingDirectedEdges", - "edge": { - "id": "bf873faa-68a1-466d-b8d1-7cc3c5de2c05", - "description": "An initialized register may be used to compute a Function Table.", - "type": "isRelatedTo", - "sourcePatternName": "Initialization", - "sourcePatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "targetPatternName": "Function Table", - "targetPatternId": "3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/functionTable", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/bf873faa-68a1-466d-b8d1-7cc3c5de2c05" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "3949c20d-b57d-4a18-9228-9adae49a548f", - "description": "special case of", - "type": "uses", - "sourcePatternName": "Uniform Superposition", - "sourcePatternId": "2229a430-fe92-4411-9d72-d10dd1d8da14", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/3949c20d-b57d-4a18-9228-9adae49a548f" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "7d4edd6d-a00e-44b8-b50a-b11d065210f2", - "description": "This pattern is a refinement of Initialization. ", - "type": "refines", - "sourcePatternName": "Basis Encoding", - "sourcePatternId": "bcd4c7a1-3c92-4f8c-a530-72b8b95d3750", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/basisEncoding", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/7d4edd6d-a00e-44b8-b50a-b11d065210f2" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/bcd4c7a1-3c92-4f8c-a530-72b8b95d3750" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "2609d2ca-26e1-4f81-ae48-47fb4d2ce24a", - "description": "This pattern refines Initialization ", - "type": "refines", - "sourcePatternName": "Quantum Associative Memory (QuAM)", - "sourcePatternId": "482714a7-8409-4165-93fe-72b02c2ae99c", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantumAssociativeMemory(quam)", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/2609d2ca-26e1-4f81-ae48-47fb4d2ce24a" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/482714a7-8409-4165-93fe-72b02c2ae99c" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "29a3bc32-896c-45c5-a650-67a0a2379f93", - "description": null, - "type": "refines", - "sourcePatternName": "Amplitude Encoding", - "sourcePatternId": "502147ec-45fa-403f-8f52-e196b3359399", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeEncoding", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/29a3bc32-896c-45c5-a650-67a0a2379f93" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/502147ec-45fa-403f-8f52-e196b3359399" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "9ee7b271-aaca-4099-9fe7-9837266dfc9c", - "description": "As this pattern provides a concrete encoding strategy, it specifies Initialization.", - "type": "refines", - "sourcePatternName": "Angle Encoding", - "sourcePatternId": "e595558d-bfea-4b82-9f47-a38a2097b245", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/angleEncoding", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/9ee7b271-aaca-4099-9fe7-9837266dfc9c" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/e595558d-bfea-4b82-9f47-a38a2097b245" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "9b3cf15c-f209-4087-9374-970d533fac28", - "description": "Within the quantum computation, Initialization can be used.", - "type": "canBeUsedWith", - "sourcePatternName": "Variational Quantum Algorithm (VQA)", - "sourcePatternId": "bc795a9b-7977-4e01-b513-f9f5aba38aa7", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/variationalQuantumAlgorithm(vqa)", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/9b3cf15c-f209-4087-9374-970d533fac28" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/bc795a9b-7977-4e01-b513-f9f5aba38aa7" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "08c226ec-993e-45cb-a011-c8c862ee826c", - "description": null, - "type": "refines", - "sourcePatternName": "Schmidt Decomposition", - "sourcePatternId": "4437fb83-34c0-47a8-8c6f-1272a76b76bb", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/schmidtDecomposition", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/08c226ec-993e-45cb-a011-c8c862ee826c" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/4437fb83-34c0-47a8-8c6f-1272a76b76bb" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "317e4706-ea13-4a1a-89a9-b839f8e7c421", - "description": "A quantum register must make use of Initialization before entanglement can be created.", - "type": "consistsOf", - "sourcePatternName": "Creating Entanglement", - "sourcePatternId": "3d1f3991-df47-4d42-8f9a-e6dcf4e3ccec", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/creatingEntanglement", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/317e4706-ea13-4a1a-89a9-b839f8e7c421" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3d1f3991-df47-4d42-8f9a-e6dcf4e3ccec" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "16172a61-7cd7-46c1-9eb1-400de23021f1", - "description": "An oracle requires correct Initialization of the problem-specific input.", - "type": "isRelatedTo", - "sourcePatternName": "Oracle", - "sourcePatternId": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/16172a61-7cd7-46c1-9eb1-400de23021f1" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "0af67f89-98be-4849-b2da-62d8e369b9f1", - "description": "To pass Information from the classical part of an algorithm to its quantum parts, proper Initialization is needed.", - "type": "dependsOn", - "sourcePatternName": "Quantum-Classic Split", - "sourcePatternId": "dd15032b-ce2b-40b6-80ac-97623255b531", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantum-classicSplit", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/0af67f89-98be-4849-b2da-62d8e369b9f1" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/dd15032b-ce2b-40b6-80ac-97623255b531" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "230d5597-cdfa-4438-b63a-3affbf94a66a", - "description": null, - "type": "refines", - "sourcePatternName": "Quantum Random Access Memory (QRAM) Encoding", - "sourcePatternId": "d9c57511-1101-4707-99bf-36f43a12cb13", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantumRandomAccessMemory(qram)Encoding", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/230d5597-cdfa-4438-b63a-3affbf94a66a" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/d9c57511-1101-4707-99bf-36f43a12cb13" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "c4d12945-a2cf-47a8-b9bc-7ac609107584", - "description": "Can be used as pre-processing in a pre-deployed application.", - "type": "canBeUsedWith", - "sourcePatternName": "Pre-deployed Execution", - "sourcePatternId": "9af072e8-875b-4e7d-980a-98cc6e0e7fd6", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/pre-deployedExecution", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/c4d12945-a2cf-47a8-b9bc-7ac609107584" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/9af072e8-875b-4e7d-980a-98cc6e0e7fd6" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "7f6e3284-2a54-4e23-bf8c-f31d37e83279", - "description": null, - "type": "uses", - "sourcePatternName": "Wire Cut", - "sourcePatternId": "28c99b35-98ce-4bfe-bb6d-94a65207258a", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/wireCut", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/7f6e3284-2a54-4e23-bf8c-f31d37e83279" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/28c99b35-98ce-4bfe-bb6d-94a65207258a" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "e72bab1c-0349-4d99-b8cf-cb370f6ef577", - "description": null, - "type": "uses", - "sourcePatternName": "Grover", - "sourcePatternId": "b8c2dca0-563a-432d-adfd-8bd15ef0dfb8", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/grover", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/e72bab1c-0349-4d99-b8cf-cb370f6ef577" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/b8c2dca0-563a-432d-adfd-8bd15ef0dfb8" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } + edges: [ + { + type: 'undirectedEdges', + edge: { + id: '25db1f21-831d-4715-ba52-a69c7c114288', + description: null, + type: 'isRelatedTo', + pattern1Name: 'Initialization', + pattern1Id: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + pattern1Uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + pattern2Name: 'Biased Initial State', + pattern2Id: 'd3f6b18a-c8c1-4010-b750-b71d95eb5f5e', + pattern2Uri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/biasedInitialState', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/undirectedEdges/25db1f21-831d-4715-ba52-a69c7c114288' + }, + undirectedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/undirectedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + pattern: [ + { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + }, + { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/d3f6b18a-c8c1-4010-b750-b71d95eb5f5e' + } + ] + } + } + }, + { + type: 'undirectedEdges', + edge: { + id: '10968981-4a12-4df1-b121-c0549fd1a951', + description: null, + type: 'isRelatedTo', + pattern1Name: 'Initialization', + pattern1Id: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + pattern1Uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + pattern2Name: 'Pre-Trained Feature Extractor', + pattern2Id: '8c893b97-5980-4c81-870a-1cb4917dc33f', + pattern2Uri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/pre-trainedFeatureExtractor', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/undirectedEdges/10968981-4a12-4df1-b121-c0549fd1a951' + }, + undirectedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/undirectedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + pattern: [ + { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + }, + { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/8c893b97-5980-4c81-870a-1cb4917dc33f' + } + ] + } + } + }, + { + type: 'outgoingDirectedEdges', + edge: { + id: 'bf873faa-68a1-466d-b8d1-7cc3c5de2c05', + description: 'An initialized register may be used to compute a Function Table.', + type: 'isRelatedTo', + sourcePatternName: 'Initialization', + sourcePatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + targetPatternName: 'Function Table', + targetPatternId: '3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/functionTable', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/bf873faa-68a1-466d-b8d1-7cc3c5de2c05' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '3949c20d-b57d-4a18-9228-9adae49a548f', + description: 'special case of', + type: 'uses', + sourcePatternName: 'Uniform Superposition', + sourcePatternId: '2229a430-fe92-4411-9d72-d10dd1d8da14', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/3949c20d-b57d-4a18-9228-9adae49a548f' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '7d4edd6d-a00e-44b8-b50a-b11d065210f2', + description: 'This pattern is a refinement of Initialization. ', + type: 'refines', + sourcePatternName: 'Basis Encoding', + sourcePatternId: 'bcd4c7a1-3c92-4f8c-a530-72b8b95d3750', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/basisEncoding', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/7d4edd6d-a00e-44b8-b50a-b11d065210f2' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/bcd4c7a1-3c92-4f8c-a530-72b8b95d3750' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } } - ], - "nodeid": "312bc9d3-26c0-40ae-b90b-56effd136c0d" + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '2609d2ca-26e1-4f81-ae48-47fb4d2ce24a', + description: 'This pattern refines Initialization ', + type: 'refines', + sourcePatternName: 'Quantum Associative Memory (QuAM)', + sourcePatternId: '482714a7-8409-4165-93fe-72b02c2ae99c', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantumAssociativeMemory(quam)', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/2609d2ca-26e1-4f81-ae48-47fb4d2ce24a' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/482714a7-8409-4165-93fe-72b02c2ae99c' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '29a3bc32-896c-45c5-a650-67a0a2379f93', + description: null, + type: 'refines', + sourcePatternName: 'Amplitude Encoding', + sourcePatternId: '502147ec-45fa-403f-8f52-e196b3359399', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeEncoding', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/29a3bc32-896c-45c5-a650-67a0a2379f93' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/502147ec-45fa-403f-8f52-e196b3359399' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '9ee7b271-aaca-4099-9fe7-9837266dfc9c', + description: 'As this pattern provides a concrete encoding strategy, it specifies Initialization.', + type: 'refines', + sourcePatternName: 'Angle Encoding', + sourcePatternId: 'e595558d-bfea-4b82-9f47-a38a2097b245', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/angleEncoding', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/9ee7b271-aaca-4099-9fe7-9837266dfc9c' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/e595558d-bfea-4b82-9f47-a38a2097b245' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '9b3cf15c-f209-4087-9374-970d533fac28', + description: 'Within the quantum computation, Initialization can be used.', + type: 'canBeUsedWith', + sourcePatternName: 'Variational Quantum Algorithm (VQA)', + sourcePatternId: 'bc795a9b-7977-4e01-b513-f9f5aba38aa7', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/variationalQuantumAlgorithm(vqa)', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/9b3cf15c-f209-4087-9374-970d533fac28' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/bc795a9b-7977-4e01-b513-f9f5aba38aa7' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '08c226ec-993e-45cb-a011-c8c862ee826c', + description: null, + type: 'refines', + sourcePatternName: 'Schmidt Decomposition', + sourcePatternId: '4437fb83-34c0-47a8-8c6f-1272a76b76bb', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/schmidtDecomposition', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/08c226ec-993e-45cb-a011-c8c862ee826c' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/4437fb83-34c0-47a8-8c6f-1272a76b76bb' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '317e4706-ea13-4a1a-89a9-b839f8e7c421', + description: 'A quantum register must make use of Initialization before entanglement can be created.', + type: 'consistsOf', + sourcePatternName: 'Creating Entanglement', + sourcePatternId: '3d1f3991-df47-4d42-8f9a-e6dcf4e3ccec', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/creatingEntanglement', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/317e4706-ea13-4a1a-89a9-b839f8e7c421' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3d1f3991-df47-4d42-8f9a-e6dcf4e3ccec' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '16172a61-7cd7-46c1-9eb1-400de23021f1', + description: 'An oracle requires correct Initialization of the problem-specific input.', + type: 'isRelatedTo', + sourcePatternName: 'Oracle', + sourcePatternId: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/16172a61-7cd7-46c1-9eb1-400de23021f1' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '0af67f89-98be-4849-b2da-62d8e369b9f1', + description: 'To pass Information from the classical part of an algorithm to its quantum parts, proper Initialization is needed.', + type: 'dependsOn', + sourcePatternName: 'Quantum-Classic Split', + sourcePatternId: 'dd15032b-ce2b-40b6-80ac-97623255b531', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantum-classicSplit', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/0af67f89-98be-4849-b2da-62d8e369b9f1' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/dd15032b-ce2b-40b6-80ac-97623255b531' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '230d5597-cdfa-4438-b63a-3affbf94a66a', + description: null, + type: 'refines', + sourcePatternName: 'Quantum Random Access Memory (QRAM) Encoding', + sourcePatternId: 'd9c57511-1101-4707-99bf-36f43a12cb13', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantumRandomAccessMemory(qram)Encoding', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/230d5597-cdfa-4438-b63a-3affbf94a66a' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/d9c57511-1101-4707-99bf-36f43a12cb13' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: 'c4d12945-a2cf-47a8-b9bc-7ac609107584', + description: 'Can be used as pre-processing in a pre-deployed application.', + type: 'canBeUsedWith', + sourcePatternName: 'Pre-deployed Execution', + sourcePatternId: '9af072e8-875b-4e7d-980a-98cc6e0e7fd6', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/pre-deployedExecution', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/c4d12945-a2cf-47a8-b9bc-7ac609107584' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/9af072e8-875b-4e7d-980a-98cc6e0e7fd6' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '7f6e3284-2a54-4e23-bf8c-f31d37e83279', + description: null, + type: 'uses', + sourcePatternName: 'Wire Cut', + sourcePatternId: '28c99b35-98ce-4bfe-bb6d-94a65207258a', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/wireCut', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/7f6e3284-2a54-4e23-bf8c-f31d37e83279' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/28c99b35-98ce-4bfe-bb6d-94a65207258a' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: 'e72bab1c-0349-4d99-b8cf-cb370f6ef577', + description: null, + type: 'uses', + sourcePatternName: 'Grover', + sourcePatternId: 'b8c2dca0-563a-432d-adfd-8bd15ef0dfb8', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/grover', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/e72bab1c-0349-4d99-b8cf-cb370f6ef577' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/b8c2dca0-563a-432d-adfd-8bd15ef0dfb8' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + } + ], + nodeid: '312bc9d3-26c0-40ae-b90b-56effd136c0d' }, { - "edges": [ - { - "type": "outgoingDirectedEdges", - "edge": { - "id": "3949c20d-b57d-4a18-9228-9adae49a548f", - "description": "special case of", - "type": "uses", - "sourcePatternName": "Uniform Superposition", - "sourcePatternId": "2229a430-fe92-4411-9d72-d10dd1d8da14", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/3949c20d-b57d-4a18-9228-9adae49a548f" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "outgoingDirectedEdges", - "edge": { - "id": "a78279c1-0bb1-48bc-a329-24a9bc1a1925", - "description": "Special case: Uniform Superposition creates a superposition of all computational basis states", - "type": "uses", - "sourcePatternName": "Uniform Superposition", - "sourcePatternId": "2229a430-fe92-4411-9d72-d10dd1d8da14", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition", - "targetPatternName": "Quantum Associative Memory (QuAM)", - "targetPatternId": "482714a7-8409-4165-93fe-72b02c2ae99c", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantumAssociativeMemory(quam)", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/a78279c1-0bb1-48bc-a329-24a9bc1a1925" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/482714a7-8409-4165-93fe-72b02c2ae99c" - } - } - } - }, - { - "type": "outgoingDirectedEdges", - "edge": { - "id": "849aa18c-aadd-4145-bfd0-2bd33dbad59a", - "description": "Each of the computational basis states also represents a value in Basis Encoding.", - "type": "isRelatedTo", - "sourcePatternName": "Uniform Superposition", - "sourcePatternId": "2229a430-fe92-4411-9d72-d10dd1d8da14", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition", - "targetPatternName": "Basis Encoding", - "targetPatternId": "bcd4c7a1-3c92-4f8c-a530-72b8b95d3750", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/basisEncoding", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/849aa18c-aadd-4145-bfd0-2bd33dbad59a" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/bcd4c7a1-3c92-4f8c-a530-72b8b95d3750" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "59943139-9f75-4f90-b31d-57b2d5a586a8", - "description": "After a register is brought into uniform superposition, Creating Entanglement may be used.", - "type": "canBeUsedAfter", - "sourcePatternName": "Creating Entanglement", - "sourcePatternId": "3d1f3991-df47-4d42-8f9a-e6dcf4e3ccec", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/creatingEntanglement", - "targetPatternName": "Uniform Superposition", - "targetPatternId": "2229a430-fe92-4411-9d72-d10dd1d8da14", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/59943139-9f75-4f90-b31d-57b2d5a586a8" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3d1f3991-df47-4d42-8f9a-e6dcf4e3ccec" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "af7a4b7d-f1cf-485d-9efa-3a8e5ff010b9", - "description": "A Function Table can be computed on a register in uniform superposition.", - "type": "canBeUsedWith", - "sourcePatternName": "Function Table", - "sourcePatternId": "3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/functionTable", - "targetPatternName": "Uniform Superposition", - "targetPatternId": "2229a430-fe92-4411-9d72-d10dd1d8da14", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/af7a4b7d-f1cf-485d-9efa-3a8e5ff010b9" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "5459b8d4-a14b-4671-bc33-4abf62485522", - "description": "An Oracle may require its input to be in uniform superposition.", - "type": "dependsOn", - "sourcePatternName": "Oracle", - "sourcePatternId": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle", - "targetPatternName": "Uniform Superposition", - "targetPatternId": "2229a430-fe92-4411-9d72-d10dd1d8da14", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/5459b8d4-a14b-4671-bc33-4abf62485522" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "2cea9196-e0cd-4100-9531-4a028cdbb9bb", - "description": "The example in the solution also uses Uniform Superposition", - "type": "isRelatedTo", - "sourcePatternName": "Creating Entanglement", - "sourcePatternId": "3d1f3991-df47-4d42-8f9a-e6dcf4e3ccec", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/creatingEntanglement", - "targetPatternName": "Uniform Superposition", - "targetPatternId": "2229a430-fe92-4411-9d72-d10dd1d8da14", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/2cea9196-e0cd-4100-9531-4a028cdbb9bb" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3d1f3991-df47-4d42-8f9a-e6dcf4e3ccec" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "dc1a833e-9c50-4935-b29c-46ec0522663f", - "description": "Can be used while modeling quantum circuits", - "type": "canBeUsedWith", - "sourcePatternName": "Standalone Circuit Execution", - "sourcePatternId": "5850c6ab-5c87-4331-8439-73692a403228", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/standaloneCircuitExecution", - "targetPatternName": "Uniform Superposition", - "targetPatternId": "2229a430-fe92-4411-9d72-d10dd1d8da14", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/dc1a833e-9c50-4935-b29c-46ec0522663f" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/5850c6ab-5c87-4331-8439-73692a403228" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14" - } - } - } + edges: [ + { + type: 'outgoingDirectedEdges', + edge: { + id: '3949c20d-b57d-4a18-9228-9adae49a548f', + description: 'special case of', + type: 'uses', + sourcePatternName: 'Uniform Superposition', + sourcePatternId: '2229a430-fe92-4411-9d72-d10dd1d8da14', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/3949c20d-b57d-4a18-9228-9adae49a548f' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'outgoingDirectedEdges', + edge: { + id: 'a78279c1-0bb1-48bc-a329-24a9bc1a1925', + description: 'Special case: Uniform Superposition creates a superposition of all computational basis states', + type: 'uses', + sourcePatternName: 'Uniform Superposition', + sourcePatternId: '2229a430-fe92-4411-9d72-d10dd1d8da14', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition', + targetPatternName: 'Quantum Associative Memory (QuAM)', + targetPatternId: '482714a7-8409-4165-93fe-72b02c2ae99c', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/quantumAssociativeMemory(quam)', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/a78279c1-0bb1-48bc-a329-24a9bc1a1925' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/482714a7-8409-4165-93fe-72b02c2ae99c' + } + } + } + }, + { + type: 'outgoingDirectedEdges', + edge: { + id: '849aa18c-aadd-4145-bfd0-2bd33dbad59a', + description: 'Each of the computational basis states also represents a value in Basis Encoding.', + type: 'isRelatedTo', + sourcePatternName: 'Uniform Superposition', + sourcePatternId: '2229a430-fe92-4411-9d72-d10dd1d8da14', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition', + targetPatternName: 'Basis Encoding', + targetPatternId: 'bcd4c7a1-3c92-4f8c-a530-72b8b95d3750', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/basisEncoding', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/849aa18c-aadd-4145-bfd0-2bd33dbad59a' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/bcd4c7a1-3c92-4f8c-a530-72b8b95d3750' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '59943139-9f75-4f90-b31d-57b2d5a586a8', + description: 'After a register is brought into uniform superposition, Creating Entanglement may be used.', + type: 'canBeUsedAfter', + sourcePatternName: 'Creating Entanglement', + sourcePatternId: '3d1f3991-df47-4d42-8f9a-e6dcf4e3ccec', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/creatingEntanglement', + targetPatternName: 'Uniform Superposition', + targetPatternId: '2229a430-fe92-4411-9d72-d10dd1d8da14', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/59943139-9f75-4f90-b31d-57b2d5a586a8' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3d1f3991-df47-4d42-8f9a-e6dcf4e3ccec' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: 'af7a4b7d-f1cf-485d-9efa-3a8e5ff010b9', + description: 'A Function Table can be computed on a register in uniform superposition.', + type: 'canBeUsedWith', + sourcePatternName: 'Function Table', + sourcePatternId: '3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/functionTable', + targetPatternName: 'Uniform Superposition', + targetPatternId: '2229a430-fe92-4411-9d72-d10dd1d8da14', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/af7a4b7d-f1cf-485d-9efa-3a8e5ff010b9' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14' + } } - ], - "nodeid": "2229a430-fe92-4411-9d72-d10dd1d8da14" + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '5459b8d4-a14b-4671-bc33-4abf62485522', + description: 'An Oracle may require its input to be in uniform superposition.', + type: 'dependsOn', + sourcePatternName: 'Oracle', + sourcePatternId: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle', + targetPatternName: 'Uniform Superposition', + targetPatternId: '2229a430-fe92-4411-9d72-d10dd1d8da14', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/5459b8d4-a14b-4671-bc33-4abf62485522' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '2cea9196-e0cd-4100-9531-4a028cdbb9bb', + description: 'The example in the solution also uses Uniform Superposition', + type: 'isRelatedTo', + sourcePatternName: 'Creating Entanglement', + sourcePatternId: '3d1f3991-df47-4d42-8f9a-e6dcf4e3ccec', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/creatingEntanglement', + targetPatternName: 'Uniform Superposition', + targetPatternId: '2229a430-fe92-4411-9d72-d10dd1d8da14', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/2cea9196-e0cd-4100-9531-4a028cdbb9bb' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3d1f3991-df47-4d42-8f9a-e6dcf4e3ccec' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: 'dc1a833e-9c50-4935-b29c-46ec0522663f', + description: 'Can be used while modeling quantum circuits', + type: 'canBeUsedWith', + sourcePatternName: 'Standalone Circuit Execution', + sourcePatternId: '5850c6ab-5c87-4331-8439-73692a403228', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/standaloneCircuitExecution', + targetPatternName: 'Uniform Superposition', + targetPatternId: '2229a430-fe92-4411-9d72-d10dd1d8da14', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/dc1a833e-9c50-4935-b29c-46ec0522663f' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/5850c6ab-5c87-4331-8439-73692a403228' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14' + } + } + } + } + ], + nodeid: '2229a430-fe92-4411-9d72-d10dd1d8da14' }, { - "edges": [ - { - "type": "outgoingDirectedEdges", - "edge": { - "id": "01151ef3-3dff-46a2-af1e-11208837531a", - "description": "To perform an Amplitude Amplification, two phase shifts are needed.", - "type": "uses", - "sourcePatternName": "Amplitude Amplification", - "sourcePatternId": "96b4d28a-a5ce-4c96-85df-d42587b13c57", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeAmplification", - "targetPatternName": "Phase Shift", - "targetPatternId": "c6560c51-d2e3-4595-b9c3-b609c75c0b82", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/phaseShift", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/01151ef3-3dff-46a2-af1e-11208837531a" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/96b4d28a-a5ce-4c96-85df-d42587b13c57" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/c6560c51-d2e3-4595-b9c3-b609c75c0b82" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "12e8faa2-3fe2-4097-9164-03e7db3fd4f3", - "description": "Amplitude Amplification can be used to increase the probability to select a particular branch.", - "type": "canBeUsedWith", - "sourcePatternName": "Post-Selective Measurement", - "sourcePatternId": "1c95912a-128b-44e7-b2d4-930f7ba11060", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/post-selectiveMeasurement", - "targetPatternName": "Amplitude Amplification", - "targetPatternId": "96b4d28a-a5ce-4c96-85df-d42587b13c57", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeAmplification", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/12e8faa2-3fe2-4097-9164-03e7db3fd4f3" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1c95912a-128b-44e7-b2d4-930f7ba11060" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/96b4d28a-a5ce-4c96-85df-d42587b13c57" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "8b12f552-cd42-4457-a279-336dbd68a109", - "description": "Function tables can be further generalized as Amplitude Amplification.", - "type": "isRelatedTo", - "sourcePatternName": "Function Table", - "sourcePatternId": "3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/functionTable", - "targetPatternName": "Amplitude Amplification", - "targetPatternId": "96b4d28a-a5ce-4c96-85df-d42587b13c57", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeAmplification", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/8b12f552-cd42-4457-a279-336dbd68a109" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/96b4d28a-a5ce-4c96-85df-d42587b13c57" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "c5377624-8b03-4f8c-9415-cec5e84b6b44", - "description": "The Grover algorithm used for the scanning increases the probability to measure a correct solution via Amplitude Amplification.", - "type": "isRelatedTo", - "sourcePatternName": "Speedup via Verifying", - "sourcePatternId": "ddd64fb6-b324-45eb-8e21-8193dc311841", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/speedupViaVerifying", - "targetPatternName": "Amplitude Amplification", - "targetPatternId": "96b4d28a-a5ce-4c96-85df-d42587b13c57", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeAmplification", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/c5377624-8b03-4f8c-9415-cec5e84b6b44" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/ddd64fb6-b324-45eb-8e21-8193dc311841" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/96b4d28a-a5ce-4c96-85df-d42587b13c57" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "2f8680b5-5f20-42e6-9093-4cbebec390af", - "description": null, - "type": "uses", - "sourcePatternName": "Grover", - "sourcePatternId": "b8c2dca0-563a-432d-adfd-8bd15ef0dfb8", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/grover", - "targetPatternName": "Amplitude Amplification", - "targetPatternId": "96b4d28a-a5ce-4c96-85df-d42587b13c57", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeAmplification", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/2f8680b5-5f20-42e6-9093-4cbebec390af" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/b8c2dca0-563a-432d-adfd-8bd15ef0dfb8" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/96b4d28a-a5ce-4c96-85df-d42587b13c57" - } - } - } + edges: [ + { + type: 'outgoingDirectedEdges', + edge: { + id: '01151ef3-3dff-46a2-af1e-11208837531a', + description: 'To perform an Amplitude Amplification, two phase shifts are needed.', + type: 'uses', + sourcePatternName: 'Amplitude Amplification', + sourcePatternId: '96b4d28a-a5ce-4c96-85df-d42587b13c57', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeAmplification', + targetPatternName: 'Phase Shift', + targetPatternId: 'c6560c51-d2e3-4595-b9c3-b609c75c0b82', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/phaseShift', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/01151ef3-3dff-46a2-af1e-11208837531a' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/96b4d28a-a5ce-4c96-85df-d42587b13c57' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/c6560c51-d2e3-4595-b9c3-b609c75c0b82' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '12e8faa2-3fe2-4097-9164-03e7db3fd4f3', + description: 'Amplitude Amplification can be used to increase the probability to select a particular branch.', + type: 'canBeUsedWith', + sourcePatternName: 'Post-Selective Measurement', + sourcePatternId: '1c95912a-128b-44e7-b2d4-930f7ba11060', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/post-selectiveMeasurement', + targetPatternName: 'Amplitude Amplification', + targetPatternId: '96b4d28a-a5ce-4c96-85df-d42587b13c57', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeAmplification', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/12e8faa2-3fe2-4097-9164-03e7db3fd4f3' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1c95912a-128b-44e7-b2d4-930f7ba11060' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/96b4d28a-a5ce-4c96-85df-d42587b13c57' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '8b12f552-cd42-4457-a279-336dbd68a109', + description: 'Function tables can be further generalized as Amplitude Amplification.', + type: 'isRelatedTo', + sourcePatternName: 'Function Table', + sourcePatternId: '3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/functionTable', + targetPatternName: 'Amplitude Amplification', + targetPatternId: '96b4d28a-a5ce-4c96-85df-d42587b13c57', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeAmplification', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/8b12f552-cd42-4457-a279-336dbd68a109' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/96b4d28a-a5ce-4c96-85df-d42587b13c57' + } } - ], - "nodeid": "96b4d28a-a5ce-4c96-85df-d42587b13c57" + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: 'c5377624-8b03-4f8c-9415-cec5e84b6b44', + description: 'The Grover algorithm used for the scanning increases the probability to measure a correct solution via Amplitude Amplification.', + type: 'isRelatedTo', + sourcePatternName: 'Speedup via Verifying', + sourcePatternId: 'ddd64fb6-b324-45eb-8e21-8193dc311841', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/speedupViaVerifying', + targetPatternName: 'Amplitude Amplification', + targetPatternId: '96b4d28a-a5ce-4c96-85df-d42587b13c57', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeAmplification', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/c5377624-8b03-4f8c-9415-cec5e84b6b44' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/ddd64fb6-b324-45eb-8e21-8193dc311841' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/96b4d28a-a5ce-4c96-85df-d42587b13c57' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: '2f8680b5-5f20-42e6-9093-4cbebec390af', + description: null, + type: 'uses', + sourcePatternName: 'Grover', + sourcePatternId: 'b8c2dca0-563a-432d-adfd-8bd15ef0dfb8', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/grover', + targetPatternName: 'Amplitude Amplification', + targetPatternId: '96b4d28a-a5ce-4c96-85df-d42587b13c57', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeAmplification', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/2f8680b5-5f20-42e6-9093-4cbebec390af' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/b8c2dca0-563a-432d-adfd-8bd15ef0dfb8' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/96b4d28a-a5ce-4c96-85df-d42587b13c57' + } + } + } + } + ], + nodeid: '96b4d28a-a5ce-4c96-85df-d42587b13c57' }, { - "edges": [ - { - "type": "undirectedEdges", - "edge": { - "id": "d82208b3-d9aa-454d-9489-d4f6bb43adde", - "description": "A Function Table can show the same behavior as a special case of an oracle.", - "type": "isRelatedTo", - "pattern1Name": "Function Table", - "pattern1Id": "3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee", - "pattern1Uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/functionTable", - "pattern2Name": "Oracle", - "pattern2Id": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "pattern2Uri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/undirectedEdges/d82208b3-d9aa-454d-9489-d4f6bb43adde" - }, - "undirectedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/undirectedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "pattern": [ - { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee" - }, - { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e" - } - ] - } - } - }, - { - "type": "outgoingDirectedEdges", - "edge": { - "id": "5459b8d4-a14b-4671-bc33-4abf62485522", - "description": "An Oracle may require its input to be in uniform superposition.", - "type": "dependsOn", - "sourcePatternName": "Oracle", - "sourcePatternId": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle", - "targetPatternName": "Uniform Superposition", - "targetPatternId": "2229a430-fe92-4411-9d72-d10dd1d8da14", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/5459b8d4-a14b-4671-bc33-4abf62485522" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14" - } - } - } - }, - { - "type": "outgoingDirectedEdges", - "edge": { - "id": "16172a61-7cd7-46c1-9eb1-400de23021f1", - "description": "An oracle requires correct Initialization of the problem-specific input.", - "type": "isRelatedTo", - "sourcePatternName": "Oracle", - "sourcePatternId": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/16172a61-7cd7-46c1-9eb1-400de23021f1" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "outgoingDirectedEdges", - "edge": { - "id": "9186fde3-7b56-43bc-8c60-d45a8405c473", - "description": "Typically, an Uncompute is used after an oracle was applied.", - "type": "isRelatedTo", - "sourcePatternName": "Oracle", - "sourcePatternId": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle", - "targetPatternName": "Uncompute", - "targetPatternId": "d4f7c247-e2bb-4301-ad06-f758fa58f2dc", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uncompute", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/9186fde3-7b56-43bc-8c60-d45a8405c473" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/d4f7c247-e2bb-4301-ad06-f758fa58f2dc" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "b15bb40f-ca2c-41d2-b16b-a4da29ad1598", - "description": "The computation of the function table is done by an Oracle.", - "type": "dependsOn", - "sourcePatternName": "Function Table", - "sourcePatternId": "3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/functionTable", - "targetPatternName": "Oracle", - "targetPatternId": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/b15bb40f-ca2c-41d2-b16b-a4da29ad1598" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "fc32e4f1-5214-43d1-a8dd-c82d921555fe", - "description": "A phase shift can be used as an Oracle.", - "type": "isRelatedTo", - "sourcePatternName": "Phase Shift", - "sourcePatternId": "c6560c51-d2e3-4595-b9c3-b609c75c0b82", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/phaseShift", - "targetPatternName": "Oracle", - "targetPatternId": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/fc32e4f1-5214-43d1-a8dd-c82d921555fe" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/c6560c51-d2e3-4595-b9c3-b609c75c0b82" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "c0f396d7-2ece-4204-938c-6b5997601049", - "description": "An Oracle is used to verify solutions.", - "type": "uses", - "sourcePatternName": "Speedup via Verifying", - "sourcePatternId": "ddd64fb6-b324-45eb-8e21-8193dc311841", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/speedupViaVerifying", - "targetPatternName": "Oracle", - "targetPatternId": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/c0f396d7-2ece-4204-938c-6b5997601049" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/ddd64fb6-b324-45eb-8e21-8193dc311841" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "ece451df-6563-401a-a6fa-314df54b5d19", - "description": "Quantum Module Templates can accept Oracles as behavior inputs that get integrated into the final quantum circuit (this process is also called oracle expansion).", - "type": "canBeUsedWith", - "sourcePatternName": "Quantum Module Template", - "sourcePatternId": "d5cda8c9-f39b-474a-9032-c17131884975", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/quantumModuleTemplate", - "targetPatternName": "Oracle", - "targetPatternId": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/ece451df-6563-401a-a6fa-314df54b5d19" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/d5cda8c9-f39b-474a-9032-c17131884975" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e" - } - } - } - }, - { - "type": "ingoingDirectedEdges", - "edge": { - "id": "a9f7fa01-6f5d-41fe-91e3-c3bf1ba3ece3", - "description": null, - "type": "uses", - "sourcePatternName": "Grover", - "sourcePatternId": "b8c2dca0-563a-432d-adfd-8bd15ef0dfb8", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/grover", - "targetPatternName": "Oracle", - "targetPatternId": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/a9f7fa01-6f5d-41fe-91e3-c3bf1ba3ece3" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/b8c2dca0-563a-432d-adfd-8bd15ef0dfb8" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e" - } - } - } + edges: [ + { + type: 'undirectedEdges', + edge: { + id: 'd82208b3-d9aa-454d-9489-d4f6bb43adde', + description: 'A Function Table can show the same behavior as a special case of an oracle.', + type: 'isRelatedTo', + pattern1Name: 'Function Table', + pattern1Id: '3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee', + pattern1Uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/functionTable', + pattern2Name: 'Oracle', + pattern2Id: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + pattern2Uri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/undirectedEdges/d82208b3-d9aa-454d-9489-d4f6bb43adde' + }, + undirectedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/undirectedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + pattern: [ + { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee' + }, + { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e' + } + ] + } + } + }, + { + type: 'outgoingDirectedEdges', + edge: { + id: '5459b8d4-a14b-4671-bc33-4abf62485522', + description: 'An Oracle may require its input to be in uniform superposition.', + type: 'dependsOn', + sourcePatternName: 'Oracle', + sourcePatternId: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle', + targetPatternName: 'Uniform Superposition', + targetPatternId: '2229a430-fe92-4411-9d72-d10dd1d8da14', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uniformSuperposition', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/5459b8d4-a14b-4671-bc33-4abf62485522' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/2229a430-fe92-4411-9d72-d10dd1d8da14' + } + } + } + }, + { + type: 'outgoingDirectedEdges', + edge: { + id: '16172a61-7cd7-46c1-9eb1-400de23021f1', + description: 'An oracle requires correct Initialization of the problem-specific input.', + type: 'isRelatedTo', + sourcePatternName: 'Oracle', + sourcePatternId: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/16172a61-7cd7-46c1-9eb1-400de23021f1' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'outgoingDirectedEdges', + edge: { + id: '9186fde3-7b56-43bc-8c60-d45a8405c473', + description: 'Typically, an Uncompute is used after an oracle was applied.', + type: 'isRelatedTo', + sourcePatternName: 'Oracle', + sourcePatternId: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle', + targetPatternName: 'Uncompute', + targetPatternId: 'd4f7c247-e2bb-4301-ad06-f758fa58f2dc', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/uncompute', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/9186fde3-7b56-43bc-8c60-d45a8405c473' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/d4f7c247-e2bb-4301-ad06-f758fa58f2dc' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: 'b15bb40f-ca2c-41d2-b16b-a4da29ad1598', + description: 'The computation of the function table is done by an Oracle.', + type: 'dependsOn', + sourcePatternName: 'Function Table', + sourcePatternId: '3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/functionTable', + targetPatternName: 'Oracle', + targetPatternId: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/b15bb40f-ca2c-41d2-b16b-a4da29ad1598' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/3f3fabf0-7fa7-4b43-a74a-46a7ac2c55ee' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: 'fc32e4f1-5214-43d1-a8dd-c82d921555fe', + description: 'A phase shift can be used as an Oracle.', + type: 'isRelatedTo', + sourcePatternName: 'Phase Shift', + sourcePatternId: 'c6560c51-d2e3-4595-b9c3-b609c75c0b82', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/phaseShift', + targetPatternName: 'Oracle', + targetPatternId: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/fc32e4f1-5214-43d1-a8dd-c82d921555fe' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/c6560c51-d2e3-4595-b9c3-b609c75c0b82' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e' + } } - ], - "nodeid": "1cc7e9d6-ab37-412e-8afa-604a25de296e" + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: 'c0f396d7-2ece-4204-938c-6b5997601049', + description: 'An Oracle is used to verify solutions.', + type: 'uses', + sourcePatternName: 'Speedup via Verifying', + sourcePatternId: 'ddd64fb6-b324-45eb-8e21-8193dc311841', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/speedupViaVerifying', + targetPatternName: 'Oracle', + targetPatternId: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/c0f396d7-2ece-4204-938c-6b5997601049' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/ddd64fb6-b324-45eb-8e21-8193dc311841' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: 'ece451df-6563-401a-a6fa-314df54b5d19', + description: 'Quantum Module Templates can accept Oracles as behavior inputs that get integrated into the final quantum circuit (this process is also called oracle expansion).', + type: 'canBeUsedWith', + sourcePatternName: 'Quantum Module Template', + sourcePatternId: 'd5cda8c9-f39b-474a-9032-c17131884975', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/quantumAlgorithmPatterns/quantumModuleTemplate', + targetPatternName: 'Oracle', + targetPatternId: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/ece451df-6563-401a-a6fa-314df54b5d19' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/d5cda8c9-f39b-474a-9032-c17131884975' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e' + } + } + } + }, + { + type: 'ingoingDirectedEdges', + edge: { + id: 'a9f7fa01-6f5d-41fe-91e3-c3bf1ba3ece3', + description: null, + type: 'uses', + sourcePatternName: 'Grover', + sourcePatternId: 'b8c2dca0-563a-432d-adfd-8bd15ef0dfb8', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/grover', + targetPatternName: 'Oracle', + targetPatternId: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/a9f7fa01-6f5d-41fe-91e3-c3bf1ba3ece3' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/b8c2dca0-563a-432d-adfd-8bd15ef0dfb8' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e' + } + } + } + } + ], + nodeid: '1cc7e9d6-ab37-412e-8afa-604a25de296e' }, { - "edges": [ - { - "type": "outgoingDirectedEdges", - "edge": { - "id": "e72bab1c-0349-4d99-b8cf-cb370f6ef577", - "description": null, - "type": "uses", - "sourcePatternName": "Grover", - "sourcePatternId": "b8c2dca0-563a-432d-adfd-8bd15ef0dfb8", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/grover", - "targetPatternName": "Initialization", - "targetPatternId": "312bc9d3-26c0-40ae-b90b-56effd136c0d", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/e72bab1c-0349-4d99-b8cf-cb370f6ef577" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/b8c2dca0-563a-432d-adfd-8bd15ef0dfb8" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d" - } - } - } - }, - { - "type": "outgoingDirectedEdges", - "edge": { - "id": "2f8680b5-5f20-42e6-9093-4cbebec390af", - "description": null, - "type": "uses", - "sourcePatternName": "Grover", - "sourcePatternId": "b8c2dca0-563a-432d-adfd-8bd15ef0dfb8", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/grover", - "targetPatternName": "Amplitude Amplification", - "targetPatternId": "96b4d28a-a5ce-4c96-85df-d42587b13c57", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeAmplification", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/2f8680b5-5f20-42e6-9093-4cbebec390af" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/b8c2dca0-563a-432d-adfd-8bd15ef0dfb8" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/96b4d28a-a5ce-4c96-85df-d42587b13c57" - } - } - } - }, - { - "type": "outgoingDirectedEdges", - "edge": { - "id": "a9f7fa01-6f5d-41fe-91e3-c3bf1ba3ece3", - "description": null, - "type": "uses", - "sourcePatternName": "Grover", - "sourcePatternId": "b8c2dca0-563a-432d-adfd-8bd15ef0dfb8", - "sourcePatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/grover", - "targetPatternName": "Oracle", - "targetPatternId": "1cc7e9d6-ab37-412e-8afa-604a25de296e", - "targetPatternUri": "https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle", - "_links": { - "self": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/a9f7fa01-6f5d-41fe-91e3-c3bf1ba3ece3" - }, - "directedEdges": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges" - }, - "patternLanguage": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d" - }, - "sourcePattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/b8c2dca0-563a-432d-adfd-8bd15ef0dfb8" - }, - "targetPattern": { - "href": "http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e" - } - } - } + edges: [ + { + type: 'outgoingDirectedEdges', + edge: { + id: 'e72bab1c-0349-4d99-b8cf-cb370f6ef577', + description: null, + type: 'uses', + sourcePatternName: 'Grover', + sourcePatternId: 'b8c2dca0-563a-432d-adfd-8bd15ef0dfb8', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/grover', + targetPatternName: 'Initialization', + targetPatternId: '312bc9d3-26c0-40ae-b90b-56effd136c0d', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/initialization', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/e72bab1c-0349-4d99-b8cf-cb370f6ef577' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/b8c2dca0-563a-432d-adfd-8bd15ef0dfb8' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/312bc9d3-26c0-40ae-b90b-56effd136c0d' + } + } + } + }, + { + type: 'outgoingDirectedEdges', + edge: { + id: '2f8680b5-5f20-42e6-9093-4cbebec390af', + description: null, + type: 'uses', + sourcePatternName: 'Grover', + sourcePatternId: 'b8c2dca0-563a-432d-adfd-8bd15ef0dfb8', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/grover', + targetPatternName: 'Amplitude Amplification', + targetPatternId: '96b4d28a-a5ce-4c96-85df-d42587b13c57', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/amplitudeAmplification', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/2f8680b5-5f20-42e6-9093-4cbebec390af' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/b8c2dca0-563a-432d-adfd-8bd15ef0dfb8' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/96b4d28a-a5ce-4c96-85df-d42587b13c57' + } } - ], - "nodeid": "b8c2dca0-563a-432d-adfd-8bd15ef0dfb8" + } + }, + { + type: 'outgoingDirectedEdges', + edge: { + id: 'a9f7fa01-6f5d-41fe-91e3-c3bf1ba3ece3', + description: null, + type: 'uses', + sourcePatternName: 'Grover', + sourcePatternId: 'b8c2dca0-563a-432d-adfd-8bd15ef0dfb8', + sourcePatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/grover', + targetPatternName: 'Oracle', + targetPatternId: '1cc7e9d6-ab37-412e-8afa-604a25de296e', + targetPatternUri: 'https://patternpedia.org/patternLanguages/reformulatedQuantumComputingPatterns/oracle', + _links: { + self: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges/a9f7fa01-6f5d-41fe-91e3-c3bf1ba3ece3' + }, + directedEdges: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/directedEdges' + }, + patternLanguage: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d' + }, + sourcePattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/b8c2dca0-563a-432d-adfd-8bd15ef0dfb8' + }, + targetPattern: { + href: 'http://localhost:1977/patternatlas/patternLanguages/af7780d5-1f97-4536-8da7-4194b093ab1d/patterns/1cc7e9d6-ab37-412e-8afa-604a25de296e' + } + } + } + } + ], + nodeid: 'b8c2dca0-563a-432d-adfd-8bd15ef0dfb8' } ] @@ -3582,8 +3582,8 @@ export const ReverseAnnealingData = { export const Qaoa = { name: 'Quantum Approximate Optimization Algorithm', data: ['bcd4c7a1-3c92-4f8c-a530-72b8b95d3750', 'dd15032b-ce2b-40b6-80ac-97623255b531', 'bc795a9b-7977-4e01-b513-f9f5aba38aa7', -'b657ea73-63c0-4800-a69d-a91925e19ac6', '3ea9e187-e91b-4852-84eb-b35b5c480892', 'da93f915-7f4c-49df-99d0-80d91f26a337'], - optional: ['3ea9e187-e91b-4852-84eb-b35b5c480892'], + 'b657ea73-63c0-4800-a69d-a91925e19ac6', '3ea9e187-e91b-4852-84eb-b35b5c480892', 'da93f915-7f4c-49df-99d0-80d91f26a337'], + optional: ['3ea9e187-e91b-4852-84eb-b35b5c480892'], href: 'https://platform.planqk.de/algorithms/fae60bca-d2b6-4aa2-88b7-58caace34179/' }; export const Deutsch = { @@ -3594,5 +3594,5 @@ export const Deutsch = { href: 'https://platform.planqk.de/algorithms/533c90a5-5fbb-487b-b64d-a8f331aafb10/' }; export const Grover = { name: 'Grover', - data: ['312bc9d3-26c0-40ae-b90b-56effd136c0d', '2229a430-fe92-4411-9d72-d10dd1d8da14', '1cc7e9d6-ab37-412e-8afa-604a25de296e', '96b4d28a-a5ce-4c96-85df-d42587b13c57', 'b8c2dca0-563a-432d-adfd-8bd15ef0dfb8'] }; + data: ['312bc9d3-26c0-40ae-b90b-56effd136c0d', '2229a430-fe92-4411-9d72-d10dd1d8da14', '1cc7e9d6-ab37-412e-8afa-604a25de296e', '96b4d28a-a5ce-4c96-85df-d42587b13c57', 'b8c2dca0-563a-432d-adfd-8bd15ef0dfb8'] }; diff --git a/src/app/core/util/http-util.ts b/src/app/core/util/http-util.ts index 9447b03a..2a7aa0b8 100644 --- a/src/app/core/util/http-util.ts +++ b/src/app/core/util/http-util.ts @@ -14,7 +14,7 @@ import $ from 'jquery'; export function performAjax(targetUrl, dataToSend) { return new Promise(function (resolve, reject) { $.ajax({ - type: "POST", + type: 'POST', url: targetUrl, data: dataToSend, processData: false, @@ -29,4 +29,4 @@ export function performAjax(targetUrl, dataToSend) { }, }); }); -} \ No newline at end of file +} diff --git a/src/app/core/util/opentosca-utils.ts b/src/app/core/util/opentosca-utils.ts index 5d26303a..6b42c5d4 100644 --- a/src/app/core/util/opentosca-utils.ts +++ b/src/app/core/util/opentosca-utils.ts @@ -9,8 +9,8 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { fetch } from "whatwg-fetch"; -import { performAjax } from "./http-util"; +import { fetch } from 'whatwg-fetch'; +import { performAjax } from './http-util'; /** * Upload the CSAR located at the given URL to the connected OpenTOSCA Container and return the corresponding URL and required input parameters @@ -27,16 +27,16 @@ export async function uploadCSARToContainer( wineryEndpoint ) { if (opentoscaEndpoint === undefined) { - console.error("OpenTOSCA endpoint is undefined. Unable to upload CSARs..."); + console.error('OpenTOSCA endpoint is undefined. Unable to upload CSARs...'); return { success: false }; } try { - if (url.startsWith("{{ wineryEndpoint }}")) { - url = url.replace("{{ wineryEndpoint }}", wineryEndpoint); + if (url.startsWith('{{ wineryEndpoint }}')) { + url = url.replace('{{ wineryEndpoint }}', wineryEndpoint); } console.log( - "Checking if CSAR at following URL is already uploaded to the OpenTOSCA Container: ", + 'Checking if CSAR at following URL is already uploaded to the OpenTOSCA Container: ', url ); @@ -44,31 +44,31 @@ export async function uploadCSARToContainer( let getCSARResult = await getBuildPlanForCSAR(opentoscaEndpoint, csarName); if (!getCSARResult.success) { - console.log("CSAR is not yet uploaded. Uploading..."); + console.log('CSAR is not yet uploaded. Uploading...'); const body = { - enrich: "false", + enrich: 'false', name: csarName, url, }; // upload the CSAR await fetch(opentoscaEndpoint + '/csars', { - method: "POST", + method: 'POST', body: JSON.stringify(body), - headers: { "Content-Type": "application/json" }, + headers: { 'Content-Type': 'application/json' }, }); console.log( - "CSAR sent to OpenTOSCA Container. Waiting for build plan..." + 'CSAR sent to OpenTOSCA Container. Waiting for build plan...' ); // check successful upload and retrieve corresponding url getCSARResult = await getBuildPlanForCSAR(opentoscaEndpoint, csarName); - console.log("Retrieved result: ", getCSARResult); + console.log('Retrieved result: ', getCSARResult); } if (!getCSARResult.success) { - console.error("Uploading CSAR failed!"); + console.error('Uploading CSAR failed!'); return { success: false }; } @@ -82,7 +82,7 @@ export async function uploadCSARToContainer( inputParameters: buildPlanResultJson.input_parameters, }; } catch (e) { - console.error("Error while uploading CSAR: " + e); + console.error('Error while uploading CSAR: ' + e); return { success: false }; } } @@ -95,7 +95,7 @@ export async function uploadCSARToContainer( * @return the status whether the given CSAR is uploaded and the corresponding build plan link if available */ async function getBuildPlanForCSAR(opentoscaEndpoint, csarName) { - console.log("Retrieving build plan for CSAR with name: ", csarName); + console.log('Retrieving build plan for CSAR with name: ', csarName); // get all currently deployed CSARs const response = await fetch(opentoscaEndpoint); @@ -106,12 +106,12 @@ async function getBuildPlanForCSAR(opentoscaEndpoint, csarName) { // no CSARs available return { success: false, url: null }; } - console.log("Retrieved all currently deployed CSARs: ", deployedCSARs); + console.log('Retrieved all currently deployed CSARs: ', deployedCSARs); for (let i = 0; i < deployedCSARs.length; i++) { const deployedCSAR = deployedCSARs[i]; if (deployedCSAR.id === csarName) { - console.log("Found uploaded CSAR with id: %s", csarName); + console.log('Found uploaded CSAR with id: %s', csarName); const url = deployedCSAR._links.self.href; // retrieve the URl to the build plan required to get the input parameters and to instantiate the CSAR @@ -130,7 +130,7 @@ async function getBuildPlanForCSAR(opentoscaEndpoint, csarName) { * @return the URL to the build plan for the given CSAR */ async function getBuildPlanUrl(csarUrl) { - let response = await fetch(csarUrl + "/servicetemplates"); + let response = await fetch(csarUrl + '/servicetemplates'); let responseJson = await response.json(); if ( @@ -138,19 +138,19 @@ async function getBuildPlanUrl(csarUrl) { responseJson.service_templates.length !== 1 ) { console.error( - "Unable to find service template in CSAR at URL: %s", + 'Unable to find service template in CSAR at URL: %s', csarUrl ); return { success: false, url: null }; } const buildPlansUrl = - responseJson.service_templates[0]._links.self.href + "/buildplans"; + responseJson.service_templates[0]._links.self.href + '/buildplans'; response = await fetch(buildPlansUrl); responseJson = await response.json(); if (!responseJson.plans || responseJson.plans.length !== 1) { - console.error("Unable to find build plan at URL: %s", buildPlansUrl); + console.error('Unable to find build plan at URL: %s', buildPlansUrl); return { success: false, url: null }; } @@ -159,9 +159,9 @@ async function getBuildPlanUrl(csarUrl) { export function makeId(length) { - let result = ""; + let result = ''; const characters = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; const charactersLength = characters.length; for (let i = 0; i < length; i++) { result += characters.charAt(Math.floor(Math.random() * charactersLength)); @@ -188,11 +188,11 @@ export async function createNewArtifactTemplate( blob, fileName ) { - console.log("Creating new ArtifactTemplate of type: ", type); + console.log('Creating new ArtifactTemplate of type: ', type); // retrieve the currently available ArtifactTemplates const getArtifactsResult = await fetch( - wineryEndpoint + "artifacttemplates/" + wineryEndpoint + 'artifacttemplates/' ); const getArtifactsResultJson = await getArtifactsResult.json(); @@ -206,7 +206,7 @@ export async function createNewArtifactTemplate( ) ) { let nameOccupied = true; - artifactTemplateLocalName += "-" + makeId(1); + artifactTemplateLocalName += '-' + makeId(1); while (nameOccupied) { if ( !getArtifactsResultJson.some( @@ -220,23 +220,23 @@ export async function createNewArtifactTemplate( } } console.log( - "Creating ArtifactTemplate with name: ", + 'Creating ArtifactTemplate with name: ', artifactTemplateLocalName ); // create ArtifactTemplate const artifactCreationResponse = await fetch( - wineryEndpoint + "artifacttemplates/", + wineryEndpoint + 'artifacttemplates/', { - method: "POST", + method: 'POST', body: JSON.stringify({ localname: artifactTemplateLocalName, namespace, type, }), headers: { - "Content-Type": "application/json", - Accept: "application/json", + 'Content-Type': 'application/json', + Accept: 'application/json', }, } ); @@ -245,13 +245,13 @@ export async function createNewArtifactTemplate( // get URL for the file upload to the ArtifactTemplate const fileUrl = wineryEndpoint + - "artifacttemplates/" + + 'artifacttemplates/' + artifactCreationResponseText + - "files"; + 'files'; // upload the blob const fd = new FormData(); - fd.append("file", blob, fileName); + fd.append('file', blob, fileName); await performAjax(fileUrl, fd); return artifactTemplateLocalName; @@ -271,13 +271,13 @@ export async function createNewServiceTemplateVersion( serviceTemplateNamespace ) { console.log( - "Creating new version of Service Template with ID %s and namespace %s", + 'Creating new version of Service Template with ID %s and namespace %s', serviceTemplateId, serviceTemplateNamespace ); // retrieve the currently available ServiceTemplates - const getTemplatesResult = await fetch(wineryEndpoint + "/servicetemplates/"); + const getTemplatesResult = await fetch(wineryEndpoint + '/servicetemplates/'); const getTemplatesResultJson = await getTemplatesResult.json(); // abort if base service template is not available @@ -288,11 +288,11 @@ export async function createNewServiceTemplateVersion( ) ) { console.log( - "Required base ServiceTemplate for deploying Qiskit Runtime programs not available in Winery!" + 'Required base ServiceTemplate for deploying Qiskit Runtime programs not available in Winery!' ); return { error: - "Required base ServiceTemplate for deploying Qiskit Runtime programs not available in Winery!", + 'Required base ServiceTemplate for deploying Qiskit Runtime programs not available in Winery!', }; } @@ -303,7 +303,7 @@ export async function createNewServiceTemplateVersion( if ( !getTemplatesResultJson.some( (e) => - e.id === serviceTemplateId + "_" + version + "-w1-wip1" && + e.id === serviceTemplateId + '_' + version + '-w1-wip1' && e.namespace === serviceTemplateNamespace ) ) { @@ -312,18 +312,18 @@ export async function createNewServiceTemplateVersion( version += makeId(1); } } - console.log("Using component version: ", version); + console.log('Using component version: ', version); // create ServiceTemplate version const versionUrl = wineryEndpoint + - "/servicetemplates/" + + '/servicetemplates/' + encodeURIComponent(encodeURIComponent(serviceTemplateNamespace)) + - "/" + + '/' + serviceTemplateId; - console.log("Creating new version under URL:", versionUrl); + console.log('Creating new version under URL:', versionUrl); const versionCreationResponse = await fetch(versionUrl, { - method: "POST", + method: 'POST', body: JSON.stringify({ version: { componentVersion: version, @@ -335,11 +335,11 @@ export async function createNewServiceTemplateVersion( workInProgressVersion: 1, }, }), - headers: { "Content-Type": "application/json", Accept: "application/json" }, + headers: { 'Content-Type': 'application/json', Accept: 'application/json' }, }); // assemble URL to the created ServiceTemplate version const versionCreationResponseText = await versionCreationResponse.text(); - return wineryEndpoint + "/servicetemplates/" + versionCreationResponseText; + return wineryEndpoint + '/servicetemplates/' + versionCreationResponseText; } diff --git a/src/app/core/util/winery-utils.ts b/src/app/core/util/winery-utils.ts index e1c280c4..8995ca30 100644 --- a/src/app/core/util/winery-utils.ts +++ b/src/app/core/util/winery-utils.ts @@ -10,12 +10,12 @@ */ import { fetch } from 'whatwg-fetch'; -import { createNewArtifactTemplate } from "./opentosca-utils"; +import { createNewArtifactTemplate } from './opentosca-utils'; -const QUANTME_NAMESPACE_PUSH = "http://quantil.org/quantme/push"; -const QUANTME_NAMESPACE_PULL = "http://quantil.org/quantme/pull"; +const QUANTME_NAMESPACE_PUSH = 'http://quantil.org/quantme/push'; +const QUANTME_NAMESPACE_PULL = 'http://quantil.org/quantme/pull'; -const nodeTypeDefinition: string = ` +const nodeTypeDefinition = ` @@ -39,7 +39,7 @@ const nodeTypeDefinition: string = ` `; -const topologyTemplateDefinition: string = ` +const topologyTemplateDefinition = ` @@ -75,20 +75,20 @@ const topologyTemplateDefinition: string = ` tag.name === "top-node"); + const topNodeTag = tags.find((tag) => tag.name === 'top-node'); if (topNodeTag) { return deleteTagByID(serviceTemplateAddress, topNodeTag.id); } @@ -209,9 +209,9 @@ export async function getServiceTemplateXML(serviceTemplateAddress) { const response = await fetch( `${getWineryEndpoint()}/servicetemplates/${serviceTemplateAddress}xml`, { - method: "GET", + method: 'GET', headers: { - Accept: "application/xml", + Accept: 'application/xml', }, } ); @@ -223,9 +223,9 @@ export async function getArtifactTemplateInfo(artifactTemplateAddress) { const response = await fetch( `${getWineryEndpoint()}/artifacttemplates/${artifactTemplateAddress}`, { - method: "GET", + method: 'GET', headers: { - Accept: "application/json", + Accept: 'application/json', }, } ); @@ -234,20 +234,20 @@ export async function getArtifactTemplateInfo(artifactTemplateAddress) { const nodeTypeQNameMapping = new Map([ [ - "{http://opentosca.org/artifacttypes}WAR", - "{http://opentosca.org/nodetypes}TomcatApplication_WAR-w1", + '{http://opentosca.org/artifacttypes}WAR', + '{http://opentosca.org/nodetypes}TomcatApplication_WAR-w1', ], [ - "{http://opentosca.org/artifacttypes}WAR-Java17", - "{http://opentosca.org/nodetypes}TomcatApplication_WAR-w1", + '{http://opentosca.org/artifacttypes}WAR-Java17', + '{http://opentosca.org/nodetypes}TomcatApplication_WAR-w1', ], [ - "{http://opentosca.org/artifacttypes}WAR-Java8", - "{http://opentosca.org/nodetypes}TomcatApplication_WAR-w1", + '{http://opentosca.org/artifacttypes}WAR-Java8', + '{http://opentosca.org/nodetypes}TomcatApplication_WAR-w1', ], [ - "{http://opentosca.org/artifacttypes}PythonArchiveArtifact", - "{http://opentosca.org/nodetypes}PythonApp_3-w1", + '{http://opentosca.org/artifacttypes}PythonArchiveArtifact', + '{http://opentosca.org/nodetypes}PythonApp_3-w1', ], ]); export function getNodeTypeQName(artifactTypeQName) { @@ -255,9 +255,9 @@ export function getNodeTypeQName(artifactTypeQName) { } export async function loadTopology(deploymentModelUrl) { - if (deploymentModelUrl.startsWith("{{ wineryEndpoint }}")) { + if (deploymentModelUrl.startsWith('{{ wineryEndpoint }}')) { deploymentModelUrl = deploymentModelUrl.replace( - "{{ wineryEndpoint }}", + '{{ wineryEndpoint }}', getWineryEndpoint() ); } @@ -265,24 +265,24 @@ export async function loadTopology(deploymentModelUrl) { let tags; try { topology = await fetch( - deploymentModelUrl.replace("?csar", "topologytemplate"), + deploymentModelUrl.replace('?csar', 'topologytemplate'), { - method: "GET", + method: 'GET', headers: { - Accept: "application/json", + Accept: 'application/json', }, } ).then((res) => res.json()); - tags = await fetch(deploymentModelUrl.replace("?csar", "tags")).then( + tags = await fetch(deploymentModelUrl.replace('?csar', 'tags')).then( (res) => res.json() ); } catch (e) { throw new Error( - "An unexpected error occurred during loading the deployments models topology." + 'An unexpected error occurred during loading the deployments models topology.' ); } let topNode; - const topNodeTag = tags.find((tag) => tag.name === "top-node"); + const topNodeTag = tags.find((tag) => tag.name === 'top-node'); if (topNodeTag) { const topNodeId = topNodeTag.value; topNode = topology.nodeTemplates.find( @@ -299,7 +299,7 @@ export async function loadTopology(deploymentModelUrl) { ]) ); for (let relationship of topology.relationshipTemplates) { - if (relationship.name === "HostedOn") { + if (relationship.name === 'HostedOn') { nodes.delete(relationship.targetElement.ref); } } @@ -308,7 +308,7 @@ export async function loadTopology(deploymentModelUrl) { } } if (!topNode) { - throw new Error("No top level node found."); + throw new Error('No top level node found.'); } return { @@ -357,9 +357,9 @@ export async function createDeploymentModel( // replace concrete Winery endpoint with abstract placeholder to enable QAA transfer into another environment let deploymentModelUrl = serviceTemplateURL.replace( wineryEndpoint, - "{{ wineryEndpoint }}" + '{{ wineryEndpoint }}' ); - deploymentModelUrl += "?csar"; + deploymentModelUrl += '?csar'; return { deploymentModelUrl: deploymentModelUrl }; } @@ -369,10 +369,10 @@ export async function createNodeType(name, namespace) { namespace: namespace, }; const response = await fetch(`${getWineryEndpoint()}/nodetypes`, { - method: "POST", + method: 'POST', headers: { - "Content-Type": "application/json", - Accept: "text/plain", + 'Content-Type': 'application/json', + Accept: 'text/plain', }, body: JSON.stringify(nodetype), }); @@ -380,12 +380,12 @@ export async function createNodeType(name, namespace) { } export async function updateNodeType(name, namespace) { - const nodetype = nodeTypeDefinition.replace("NodetypeToReplace", name).replace("NodetypeToReplace", name).replace("NodetypeToReplace", name); + const nodetype = nodeTypeDefinition.replace('NodetypeToReplace', name).replace('NodetypeToReplace', name).replace('NodetypeToReplace', name); console.log( getWineryEndpoint() + - "/nodetypes/" + + '/nodetypes/' + encodeURIComponent(encodeURIComponent(namespace)) + - "/" + + '/' + name ); console.log(nodetype); @@ -394,10 +394,10 @@ export async function updateNodeType(name, namespace) { encodeURIComponent(namespace) )}/${name}`, { - method: "PUT", + method: 'PUT', headers: { - "Content-Type": "application/xml", - Accept: "text/plain", + 'Content-Type': 'application/xml', + Accept: 'text/plain', }, body: nodetype, } @@ -409,9 +409,9 @@ export async function updateServiceTemplate(name, namespace) { const topologyTemplate = topologyTemplateDefinition.replace(/NodetypeToReplace/g, name); console.log( getWineryEndpoint() + - "/servicetemplates/" + + '/servicetemplates/' + encodeURIComponent(encodeURIComponent(namespace)) + - "/" + + '/' + name ); console.log(topologyTemplate); @@ -420,13 +420,13 @@ export async function updateServiceTemplate(name, namespace) { encodeURIComponent(namespace) )}/${name}`, { - method: "PUT", + method: 'PUT', headers: { - "Content-Type": "application/xml", - Accept: "text/plain", + 'Content-Type': 'application/xml', + Accept: 'text/plain', }, body: topologyTemplate, } ); return response.text(); -} \ No newline at end of file +} diff --git a/src/environments/environment.ts b/src/environments/environment.ts index 46754c07..e8c57d7a 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -45,15 +45,15 @@ export const environment = { : 'http://localhost:2379/v2/keys', defaultFeatures: 'assets/settings_features/default_features.json', openToscaContainer: window['env'] && window['env']['OPENTOSCA_CONTAINER_HOST_NAME'] && window['env']['OPENTOSCA_CONTAINER_PORT'] - ? `${urlScheme}://${window['env']['OPENTOSCA_CONTAINER_HOST_NAME']}:${window['env']['OPENTOSCA_CONTAINER_PORT']}` - : 'http://localhost:1337', + ? `${urlScheme}://${window['env']['OPENTOSCA_CONTAINER_HOST_NAME']}:${window['env']['OPENTOSCA_CONTAINER_PORT']}` + : 'http://localhost:1337', winery: window['env'] && window['env']['WINERY_HOST_NAME'] && window['env']['WINERY_PORT'] - ? `${urlScheme}://${window['env']['WINERY_HOST_NAME']}:${window['env']['WINERY_PORT']}/winery` - : 'http://localhost:8093/winery', + ? `${urlScheme}://${window['env']['WINERY_HOST_NAME']}:${window['env']['WINERY_PORT']}/winery` + : 'http://localhost:8093/winery', textMatcher: window['env'] && window['env']['TEXT_MATCHING_HOST_NAME'] && window['env']['TEXT_MATCHING_PORT'] - ? `${urlScheme}://${window['env']['TEXT_MATCHING_HOST_NAME']}:${window['env']['TEXT_MATCHING_PORT']}`: 'http://localhost:1985', + ? `${urlScheme}://${window['env']['TEXT_MATCHING_HOST_NAME']}:${window['env']['TEXT_MATCHING_PORT']}`: 'http://localhost:1985', atlas: window['env'] && window['env']['ATLAS_HOST_NAME'] && window['env']['ATLAS_PORT'] - ? `${urlScheme}://${window['env']['ATLAS_HOST_NAME']}:${window['env']['ATLAS_PORT']}/atlas`:'http://localhost:6626/atlas' + ? `${urlScheme}://${window['env']['ATLAS_HOST_NAME']}:${window['env']['ATLAS_PORT']}/atlas`:'http://localhost:6626/atlas' }; /*