The QIS-XML Schema is officially available at the following URL:
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
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.