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