VODML Parser Service
Summary
Service
This web service transforms a VOTABLE into a variety of formats.
The input table can contain the proposed VODML mapping syntax (VOTable-1.4_vodml.xsd). An alternate form of the xsd uses "include" to access the VODML schema from a separate file.
Client
In addition to the web service, the MAST Portal client can display the
content of VODML annotated VOTABLEs. Use the link below to active
that version of the MAST Portal, then load the VOTABLE via URL in the
search box or via "Upload Target List" (really means upload any table).
https://masttest.stsci.edu/vodml/Mashup/Clients/Mast/Portal.html
After loading a table via URL, you can grab a shortcut link to the
Portal with that table loaded using the "Copy Link for this Search"
button.
Notes / Todo
- The parser doesn't
currently parse FITS files, so 100 rows of fake data are generated for
VOTABLEs that use FITS. (Once the parser can recognize FITS, it
still won't be able to find "file:" references to those FITS files.
- The template filling and reference following happens only in the
client now. Maybe a future extension of the parser can do that
server-side as well.
- The client doesn't dereference and REMOTEREFERENCE or FOREIGNKEY references.
- The client should demonstrate that it "knows" certain models (e.g., sample, CAOM).
- This could/should include validating that the model matches the VODML annotations.
Arguments
- format - The desired
output format. Available choices (not case sensitive) are
below:
- json - A JSON
serialization of all the VODML instances from the input VOTABLE.
All non-VODML content of the VOTABLE is discarded.
- jsonlite - A slightly
shorter serialization of all the VODML instances. The only real
difference is in the leaf nodes for primitive data values.
- extjs - A complex JSON
serialization intended for use by the MAST Discivery Portal. This
format contains all the data from the original table along with some
client-specific information such as histograms of the data
columns. It also contains the same object returned by the json
format above.
- votable - Echoes back a
VOTABLE that was constructed from the internal model created by the
parser, but is hopefully equivalent to the input VOTABLE.
- csv - A csv containing
the TABLEDATA from the first table in the input VOTABLE. Most
metadata is discarded.
- votable - The input
votable. Value can be specified as:
- URL (must be accessible to the masttest.stsci.edu server)
- Local file (only available when using the parseVodmlForm
version of the web service)
Service Entry Points
The service has two different versions, both of which have the base URL
https://masttest.stsci.edu/vodml/Mashup/Mashup.asmx/
- parseVodml - Takes the
arguments as url parameters.
- votable value must be URL accessible to the masttest server.
- This example URL, which can be used with curl or in a browser, parses
test5.votable-1.4.xml from volute, and outputs the resulting VODML
instances in json format:
https://masttest.stsci.edu/vodml/Mashup/Mashup.asmx/parseVodml?format=json&votable=https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/mapping/test5.votable-1.4.xml
- parseVodmlForm - Takes
the arguments as form data.
- votable value can be URL or can specify a file from your local
disk.
- The first example does the same thing as the URL above, but
with the arguments as form data:
curl \
-F "format=json" \
-F "votable=https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/mapping/test5.votable-1.4.xml" \
https://masttest.stsci.edu/vodml/Mashup/Mashup.asmx/parseVodmlForm
- The second example does the same thing, but loads the votable
from the local disk:
curl \
-F "format=json" \
-F "votable=@/Users/tom/myfiles/test5.votable-1.4.xml" \
https://masttest.stsci.edu/vodml/Mashup/Mashup.asmx/parseVodmlForm
Examples
Create JSON format for some annotated VOTABLEs in volute
test5.votable-1.4.xml
votable.annotatedRef.xml
chandra_2Dsky_image_annotated.vot
chandra_2Dsky_image_annotated_byref.vot
chandra_events_annotated.vot
Run MAST portal on some annotated VOTABLEs in volute
test5.votable-1.4.xml
chandra_2Dsky_image_annotated.vot