Tools for validating VOTable annotated with MIVOT and to generate MIVOT snippets
Project description
mivot-validator
This package has 2 purposes:
- Validation of VOTables annotated with IVOA recommendation MIVOT
- MIVOT serialization of model components (snippets) that can be used to build annotations
Installation
The validator is distributed as a Python package.
$ pip install mivot-validator
Scripts for Validating Annotated VOTables
There are 2 validation levels:
- against the XML schemas (VOTable and MIVOT)
- against the model itself as it is defined in VODML
XML Schema Validation
Validation of an annotated VOTable against both VOTable and MIVOT schemas:
$ mivot-validate PROJECT_DIR/tests/data/gaia_3mags_ok_1.xml
USAGE: mivot-validate [path]
Validate against both VOTable and MIVOT schemas
path: either a simple file or a directory
all directory XML files are validated
exit status: 0 in case of success, 1 otherwise
Validation of an annotated VOTable against the MIVOT schema only:
$ mivot-mapping-validate PROJECT_DIR/tests/data/gaia_3mags_ok_1.xml
USAGE: mivot-mapping-validate [path]
Validate XML files against MIVOT schema
path: either a simple file or a directory
all directory XML files are validated
exit status: 0 in case of success, 1 otherwise
Model Validation
This tool checks that mapped classes match the model they refer to.
$ mivot-instance-validate <VOTABLE path>
USAGE: mivot-instance-validate [path]
Validate the mapped instances against the VODML definitions
path: path to the mapped VOTable to be checked
exit status: 0 in case of success, 1 otherwise
Types and Roles Checking
The validation tool below checks that all dmtype
and dmrole
referenced in the mapping block
are known by mapped models; it does not care of the class structures.
This checking only works with the PhotDM/MANGO/Meas/Coord/ivoa models, other models are ignored.
$ types-and-roles-validate <VOTABLE path>
USAGE: types-and-roles-validate [path]
Validate all dmtypes and dmroles
exit status: 0 in case of success, 1 otherwise
Snippet Generation
To facilitate the MIVOT annotation of VODML files, it can be convenient to work with pre-computed snippets that can be stacked to build full annotation blocks.
- A snippet is a MIVOT fragment, where values and references are not set, that represents a component of a model.
- Snippets can easily be derived from the VODML representation of the model as long as there is no class polymorphism. If there is some, we provide a tool helping users to resolve abstract components.
There are two snippet generators available in this package:
mivot-snippet-model
which allows, for a given model, to generate all non-abstract object and data types as MIVOT components.- The
mivot-snippet-instance
which generate, for a given concrete class name, a usable snippet including the concrete classes given either as user input or as command line parameters.
Build all MIVOT snippets for a model
$ mivot-snippet-model [VODML path or url]
USAGE: mivot-snippet-model [url] [output_dir]
Create MIVOT snippets from VODML files
url: url of any VODML-Model (must be prefixed with file:// in case of local file)
output_dir: path to the chosen output directory (session working directory by default)
exit status: 0 in case of success, 1 otherwise
Build the MIVOT snippet for one model class with resolving abstract types:
$ mivot-snippet-instance coords:TimeSys `pwd`/coords.TimeSys.example \
-cc dmrole=coords:TimeFrame.refPosition,context=coords:TimeSys,dmtype=coords:RefLocation,class=coords:StdRefLocation\
-cc dmrole=coords:TimeFrame.refDirection,context=coords:TimeSys,dmtype=coords:RefLocation,class=coords:StdRefLocation
In this example the tool will generate one snippet for the object type coords:TimeSys
.
- The produced file will be located in
CURRENT_FOLDER/coords.TimeSys.example.xml
. If the output is not an absolute path, it will be located in the session working directory. - All MIVOT instances of (abstract) type
coords:RefLocation
playing the rolecoords:TimeFrame.refPosition
and hosted by a class playing the rolecoords:TimeSys
, will be replaced by instances of typecoords:StdRefLocation
- All MIVOT instances of (abstract) type
coords:RefLocation
playing the rolecoords:TimeFrame.refDirection
and hosted by a class playing the rolecoords:TimeSys
, will be replaced by instances of typecoords:StdRefLocation
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file mivot_validator-0.2.tar.gz
.
File metadata
- Download URL: mivot_validator-0.2.tar.gz
- Upload date:
- Size: 203.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.20
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 941897f2b811e9e15e741292c3c4bb3cbd0bb3778f99849370a4bcc5a9cd3eb4 |
|
MD5 | 626fb67b4467448e1ccb662bb8f6647a |
|
BLAKE2b-256 | 8a36d33dcbefaf244e6965db49988b5ec784bd8a56776146c050114641e8c35f |
File details
Details for the file mivot_validator-0.2-py3-none-any.whl
.
File metadata
- Download URL: mivot_validator-0.2-py3-none-any.whl
- Upload date:
- Size: 148.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.20
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3aa8a7bf7cb92f1f17a89ba91f02fa29bcc776d2898bc839ceea7a28397ed28f |
|
MD5 | 6365795c9829e0aaabb47de42f616ecd |
|
BLAKE2b-256 | 322d98384cbb4c1cd0c721b69f421d8ced5782a611cbcffdede5797c6a2a1441 |