QIS-XML Schema

The QIS-XML Schema is officially available at the following URL:

Module URL
Instance http://qisxml.org/schema/1_0/qis.instance.xsd
Gate http://qisxml.org/schema/1_0/qis.gate.xsd
Circuit http://qisxml.org/schema/1_0/qis.circuit.xsd
Program http://qisxml.org/schema/1_0/qis.program.xsd
Reusable http://qisxml.org/schema/1_0/qis.reusable.xsd

The schema technical documentation is aavailable online in HTML format or for download in MS-Word or Adobe PDF.

Structure Overview

QIS-XML is a schema composed of the following modules:

  • Gate module: describes core quantum gates
  • Circuit module: describes simple and complex circuits composed of gates
  • Program module: describes simple algorithm based on quantum circuits
  • Instance module: wrapper to bring together gates, circuits, programs and devices
  • Reusable module: set of complex types common to all the modules
This modular approach promotes reusability and facilitates federated maintenance of components. This allows various agencies to maintain their components while building on information provided by others.

The Gate Module

This module focus on the description of quantum gates. It capture information such as the gate name, description, its size (number of qubits) and its unitary transformation. Since the fundamental set of quantum gates is quite well defined, a standard gate library is made available by QIS-XML as a reference set. This document is available at http://qisxml.org/xml/qis.gate.core.xml.

The Circuit Module

The modules is used to describe quantum circuits made of interconnected quantum gates. The circuit element provides general information such as size, descriptive information on the input and output qubits. A circuit is made of a collection of "steps", each step being itself a set of "operations" that act on the qubits. An operation maps the qubit to quantum gate, another circuit or a measurement. Circuits can be used to describe simple or complex quantum algorithms.

A particular application of circuits is also the description of "gate equivalence". A quantum gate type can typically be replaced by a circuit made of a set other quantum gate. For example, a CNOT gate can be replaced by a couple of Hadamard gates and a Z gate. This functionality will be useful for the practical implementation of quantum computer low level compilers as equivalence will often be needed to translate logical circuits into executable code.

The Program Module

A Program module is the highest level of representation for QIS-XML and bring together circuits with the quantum memory, registers, and circuits along with the typical sequence of initialize/execute/measure. Programs in essence represent an pseudo-code that can in theory in turn be converted for execution on quantum hardware. As real quantum computers are not currently available, proof of concepts are available using simulators such as the Quantum Computation Language simulator (QCL) and the Fraunhofer Quantum Computing Simulator.

The Instance Module

The Instance module is a technical requirement of the extensible markup language. A in XML only a single element can exists at the root of the document, the Instance is a "wrapper" used to bring together gate, circuit and program libraries. This allows the various components to be linked together to form a complete descriptive framework

The Reusable Module

The Reusable module made of metadata elements common to the other modules. It defines concepts such as qubit, input/output, complex number, matrix, unitary transformation and technical elements used to identify and reference objects.