Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.9%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: InfiniData-Lab
- Language: Python
- Default Branch: main
- Size: 4.85 MB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
VLDB'25 vision paper "Quantum Data Management in the Noisy Intermediate-Scale Quantum Era"
This repository contains the research and associated works related to the VLDB 2025 vision paper, "Quantum Data Management in the NISQ Era".
It includes supplementary materials, detailed experimental settings, and comprehensive results, particularly in Appendices B3 and B4 of our technical report. This repository serves as a resource for researchers interested in the intersection of classical database technologies and quantum computing.
Citation
BibTeX
tex
@article{hai2025qdmvision,
title={Quantum Data Management in the Noisy Intermediate-Scale Quantum Era},
author={Hai, Rihan and Hung, Shih-Han and Coopmans, Tim and Littau, Tim and Geerts, Floris},
journal={Proceedings of the VLDB Endowment},
year={2025},
publisher={VLDB Endowment},
note={to appear}
}
Reproducing the shown results
The results shown in the paper can either be reproduced using the benchmark notebook or by running the simulation script. Required packages for the Python installation can be installed using the command
pip install -r requirements.txt
Here is a list of the included dependencies
duckdb==1.1.3
jupyter_client==8.6.3
jupyter_core==5.7.2
numpy==2.2.1
opt-einsum==3.3.0
psycopg2-binary==2.9.10
To generate an SQL query from a quantum circuit provided as json you can use the circuit_sqlgen file. A circuit should be of the following format:
{
"number_of_qubits": 3,
"gates": [
{
"qubits": [0],
"gate": "H"
},
{
"qubits": [0, 1],
"gate": "CNOT"
},
{
"qubits": [1, 2],
"gate": "CNOT"
}
]
}
This json quantum circuit would create the GHZ state for three qubits.
When running the simulation.py, make sure there is PostgreSQL running on your machine with the following settings:
Using PostgreSQL is optional and if not needed should be explicitly excluded. PostgreSQL should have the following configuaration:
- POSTGRES_DB: 'postgres'
- POSTGRES_USER: 'postgres'
- POSTGRES_PASSWORD: 'password'
- HostPort: "5432"
If you want to run a customized version of the simulations please refer to the API Documentation below.
To quickly do a test run without PostgreSQL and DuckDB run simulation.py with the argument sqlite for an extensive test or test for a very quick test run.
Simulation API
Functions
sqltonp
Parameters:
db_result(list): Database query result rows.expected_shape(tuple): Shape of the resulting tensor.complex_flag(bool, optional): IfTrue, assumes complex values in the result.
Returns:
np.ndarray: The constructed NumPy tensor.
generateghzcircuit
Parameters:
num_qubits(int): Number of Qubits in the GHZ state preparation.reverse(bool, optional): IfTrue, the circuit will be reversed
Returns:
dict: The constructed circuit as dict.
generatewcircuit
Parameters:
num_qubits(int): Number of Qubits in the GHZ state preparation.reverse(bool, optional): IfTrue, the circuit will be reversed
Returns:
dict: The constructed circuit as dict.
generateqftcircuit
Parameters:
num_qubits(int): Number of Qubits in the GHZ state preparation.reverse(bool, optional): IfTrue, the circuit will be reversed
Returns:
dict: The constructed circuit as dict.
generateqpecircuit
Parameters:
num_qubits(int): Number of Qubits in the GHZ state preparation.
Returns:
dict: The constructed circuit as dict.
generateghzqft
Parameters:
num_qubits(int): Number of Qubits in the GHZ state preparation.
Returns:
dict: The constructed circuit as dict.
generatewqft
Parameters:
num_qubits(int): Number of Qubits in the GHZ state preparation.
Returns:
dict: The constructed circuit as dict.
Classes
QuantumCircuit
Class for constructing and simulating quantum circuits.
Constructor:
python
QuantumCircuit(num_qubits: int = None, circuit_dict: dict = None)
Attributes:
num_qubits(int): Number of Qubits in the circuitgates(list): List of gates in the circuittensor_uniques(dict): All unique tensors of the initial state and the gates in the circuiteinsum(str): Einstein Summation Notation as strmps(MPS | None): If simulation method "MPS" is used this contains the corresponding MPS Objectcon(Connection | None): DB Connection if existscur(Cursor | None): DB Cursor if existsdispatcher(dict): Gate dispatcher to map str gate names to corresponding gate method
Methods:
to_query(complex=True): Converts the circuit to a SQL query.convert_to_einsum(): Converts the circuit to Einstein summation notation.run(contr_method='np'): Runs the circuit using the specified contraction method.benchmark_circuit_performance(n_runs): Benchmarks the circuit's performance.export_circuit_query(): Exports the circuit query.One-Qubit_Gate(qubit): possible gates: H, X, Y, ZControlled-Gate(control_qubit, target_qubit): possible gates: CNOT, CY, CZR(qubit, k): applies Phase Shift gate with parameter kRY(qubit, theta): applies Rotation around Y-axis of Bloch-Sphere with angle thetaG(qubit, p): G(p) gate as described in Cruz et al.
Gate
Base class for quantum gates.
Constructor:
python
Gate(qubits: list, tensor: numpy.ndarray, name: str = None, two_qubit_gate: bool = False)
Attributes:
qubits(list): Qubits the gate acts on.tensor(np.ndarray): Matrix representation of the gate.two_qubit_gate(bool): Indicates if the gate is a two-qubit gate.gate_name(str): Name of the gate.
Owner
- Login: InfiniData-Lab
- Kind: user
- Repositories: 1
- Profile: https://github.com/InfiniData-Lab
Citation (CITATION.cff)
@article{hai2025qdmvision,
title={Data Management in the Noisy Intermediate-Scale Quantum Era},
author={Hai, Rihan and Hung, Shih-Han and Coopmans, Tim and Littau, Tim and Geerts, Floris},
journal={Proceedings of the VLDB Endowment},
year={2025},
publisher={VLDB Endowment},
note={to appear}
}
GitHub Events
Total
- Push event: 14
Last Year
- Push event: 14
Dependencies
- duckdb ==1.1.3
- numpy ==2.2.1
- opt-einsum ==3.3.0
- psycopg2-binary ==2.9.10