1 |
------------------------------------------------------------------------------------------------------- |
2 |
VO-DML MAPPING GEGINNER'S EXAMPLE |
3 |
|
4 |
Based on a prototype an an Healpix extension for spatial coordinates. |
5 |
This is not a model proposal but a testbench for the VODML workflow. |
6 |
|
7 |
See HOWTO.txt to see how to process the model resources to generate VODML files with the documentation |
8 |
|
9 |
Laurent Michel 04/2017 |
10 |
-------------------------------------------------------------------------------------------------------- |
11 |
|
12 |
USE CASE |
13 |
-------- |
14 |
The goal of this project is to annotate a simple VOTable with a very basic source model by using the tools available in April 2017. |
15 |
It can be used as a toy example for VO-DML mapping beginners. |
16 |
|
17 |
This model, namely lmsource, has one class with the following attributes: |
18 |
- name |
19 |
- RA/DEC |
20 |
- Positional Error |
21 |
- Healpix index |
22 |
- Parallax |
23 |
|
24 |
lmsource imports the STC2 space coordinate pattern extended to support Healpix. |
25 |
|
26 |
USED MODELS |
27 |
----------- |
28 |
- lmsource : source data model |
29 |
- coordsys_tessel: extension of the STC2 coordsys Spatial Domain Package with a new axis class for the tesselation |
30 |
- coords_tessel : extension of the STC2 coords Spatial Domain Package adding a Tile to the position |
31 |
|
32 |
Each model comes with a complete documentation: |
33 |
- model.xmi : XMI file file generated by Modelio. XMI files are automatically patched to support |
34 |
XSLT sheets (UML name space set as http://schema.omg.org/spec/UML/20100901) |
35 |
- model.vodml.xml : VODML serialization of the model, generated by an XSL transformation |
36 |
- model.html/gvd/map/png: Hypertext documentation of the model, generated by an XSL transformation |
37 |
- model_diagram.png : Class diagram focused on the package of interest, generated by Modelio |
38 |
|
39 |
MODEL DESIGN |
40 |
------------- |
41 |
All models have been designed with Modelio 3.5 on Ubuntu 14.4. |
42 |
Both *_tessel have been built from |
43 |
https://volute.g-vo.org/svn/trunk/projects/dm/STC-2.0/model/coords/STC_coords_V2.0.zip |
44 |
And https://volute.g-vo.org/svn/trunk/projects/dm/STC-2.0/model/coordsys/STC_coordsys_V2.0.zip |
45 |
|
46 |
These models have been renamed and then extended with the new classes. |
47 |
|
48 |
lmsource model has been created from scratch by following the instructions of VO-DMLModelingBeginnersGuide.pdf. |
49 |
The importation of both *_tessel models have been done by following the instructions of VODMLImportonModelio.pdf. |
50 |
XMIs files have been generated by Modelio with the UML2.4 template |
51 |
|
52 |
All XSL transformations have been run by the scripts located in ./scripts. |
53 |
These scripts use the XSLT files written by Gerard Lemson and Omar Laurino. |
54 |
They can be applied to different models without editing any property file. |
55 |
Scripts are setup for my own installation, they must be updated to be used in another context. |
56 |
XSLT sheets are not dupliacted in this project. |
57 |
|
58 |
VOTABLE ANNOTATION |
59 |
------------------ |
60 |
The lmsource.votable.xml contains the raw VOTable: no mention of VO-DML |
61 |
The lmsource.votable.annot.xml contains the VOTable annotated with the lmsource model. |
62 |
|
63 |
The annotation process has been done with the Omar's Jovial tool plus a few handcraft actions. |
64 |
The lmsource.groovy file contains DSL instructions used by Jovial to generate the annotations. |
65 |
The lmsource.groovy.output.xml file contains the Jovial output. |
66 |
By default, Jovial uses stdout as output stream, this output has been Copied/Pasted in that file. |
67 |
|
68 |
The <VODML> element of lmsource.groovy.output.xml has been Copied/Pasted below the <VOTABLE> element in lmsource.votable.annot.xml. |
69 |
The LITERALs defining the Healpix schema have been replaced by hand by <CONSTANT> elements which refer to existing <PARAM>s |
70 |
This patch is due to the fact the Jovial does not implement the reference to PARAMs yet. |
71 |
|
72 |
WARNING: the current version of the Groovy file is not uptodate. Most of the mapping TEMPLATEs have been writtent by hand |
73 |
|
74 |
RUNNING JOVIAL |
75 |
-------------- |
76 |
Jovial is hosted by Github: https://github.com/olaurino/jovial |
77 |
|
78 |
To run it in our context do as follow: |
79 |
1) git clone https://github.com/olaurino/jovial.git |
80 |
2) cd jovial |
81 |
3) mvn package # if the test step fails, adds the -DskipTests flag |
82 |
4) java -jar target/jovial-1.0-SNAPSHOT-jar-with-dependencies.jar -i /yourpath/lmsource.groovy |
83 |
|
84 |
VOTable validation |
85 |
------------------ |
86 |
The annotated VOTable must be valid against the VOTable 1.4 schema referenced in the head. |
87 |
The validation can be checked with any XSD processor. |
88 |
Eclipse XML Espresso has been used for here |
89 |
|
90 |
VOTable parsing |
91 |
--------------- |
92 |
The annotated VOTable can be parsed with the MAST parser developed by Tom Donaldson: |
93 |
- Connect https://masttest.stsci.edu/vodml/Mashup/Clients/Mast/Portal.html |
94 |
- Upload your VOTable and type <CR> |
95 |
- A full documentation is available at https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/mapping/MAST%20VODML%20Parser/VODML%20Parser.html |
96 |
|
97 |
Enjoy |
98 |
LM |
99 |
|