Starlink VOTable software Author: Mark Taylor Open source Java software for table manipulation STIL:

Slides:



Advertisements
Similar presentations
J0 1 Marco Ronchetti - Web architectures – Laurea Specialistica in Informatica – Università di Trento Java XML parsing.
Advertisements

VOTable 2005 Applications. Agenda Description of some applications Description of some applications Nilesh UrunkarAbout C++ Parser and CONVOT Nilesh UrunkarAbout.
STILTS – Command-line tools for table/VOTable manipulation TOPCAT VO features – VO features in the GUI tabular data exploration tool SPLAT-VO – SSAP functionality.
September 13, 2004NVO Summer School1 VO Protocols Overview Tom McGlynn NASA/GSFC T HE US N ATIONAL V IRTUAL O BSERVATORY.
Manipulating VOTables with TOPCAT and STILTS
Connecting to Databases. relational databases tables and relations accessed using SQL database -specific functionality –transaction processing commit.
An International Virtual Observatory data exchange format VOTable Roy Williams François Ochsenbein Clive Davenhall Daniel Durand Pierre Fernique David.
Introduction to the BinX Library eDIKT project team Ted Wen Robert Carroll
1 caAdapter Jan 24, caAdapter The caAdapter is an open source tool that facilitates HL7 version 3 message building, parsing and validation based.
E-Science Data Information and Knowledge Transformation The BinX Language.
SAX A parser for XML Documents. XML Parsers What is an XML parser? –Software that reads and parses XML –Passes data to the invoking application –The application.
31 Signs That Technology Has Taken Over Your Life: #6. When you go into a computer store, you eavesdrop on a salesperson talking with customers -- and.
28-Jun-15 StAX Streaming API for XML. XML parser comparisons DOM is Memory intensive Read-write Typically used for documents smaller than 10 MB SAX is.
BinX and Astronomy Bob Mann Institute for Astronomy and National e-Science Centre.
Technical Track Session XML Techie Tools Tim Bornholt.
Simple Web SQLite Manager/Form/Report
CVSQL 2 The Design. System Overview System Components CVSQL Server –Three network interfaces –Modular data source provider framework –Decoupled SQL parsing.
CSE 6331 © Leonidas Fegaras XML Tools1 XML Tools Leonidas Fegaras.
12-Oct-03ADASS VO Tutorial 1 VOTable Format, I/O Libraries & Tools Participants- Francois Ochsenbein (CDS, Strasbourg) Mark Taylor (Starlink, UK) Pallavi.
XML for E-commerce II Helena Ahonen-Myka. XML processing model n XML processor is used to read XML documents and provide access to their content and structure.
Introduction to XML cs3505. References –I got most of this presentation from this site –O’reilly tutorials.
1 XML at a neighborhood university near you Innovation 2005 September 16, 2005 Kwok-Bun Yue University of Houston-Clear Lake.
Data File Access API : Under the Hood Simon Horwith CTO Etrilogy Ltd.
SAX Parsing Presented by Clifford Lemoine CSC 436 Compiler Design.
Software Design 13.1 XML: Another TLA or the Future? XML is eXtensible Markup Language  It's a w3c standard.
Functions and Demo of Astrogrid 1.1 China-VO Haijun Tian.
1 Accelerated Web Development Course JavaScript and Client side programming Day 2 Rich Roth On The Net
Advanced Java Session 9 New York University School of Continuing and Professional Studies.
CSE 6331 © Leonidas Fegaras XML Tools1 XML Tools.
XML Parsers Overview  Types of parsers  Using XML parsers  SAX  DOM  DOM versus SAX  Products  Conclusion.
SAX. What is SAX SAX 1.0 was released on May 11, SAX is a common, event-based API for parsing XML documents Primarily a Java API but there implementations.
JSTL, XML and XSLT An introduction to JSP Standard Tag Library and XML/XSLT transformation for Web layout.
Sheet 1XML Technology in E-Commerce 2001Lecture 3 XML Technology in E-Commerce Lecture 3 DOM and SAX.
Francesco Rizzo (ISTAT - Italy) SDMX ISTAT FRAMEWORK GENEVE May 2007 OECD SDMX Expert Group.
User Interface Android GUI Tool OpenGL API XML Writer Optimized Layout Algorithm WPF Component Inter.
CSE 6331 © Leonidas Fegaras XML Tools1 XML Tools.
Copyright © 2012 UNICOM Systems, Inc. Confidential Information z/Ware Product Overview illustro Systems International A Division of UNICOM Global.
XML and Its Applications Ben Y. Zhao, CS294-7 Spring 1999.
AxKit A member of the Apache XML project Ryan Maslyn Kyle Bechtel.
WIRED Detector Description in XML Mark Dönszelmann, Applications for Physics and Infrastructure, IT, CERN XML Detector Description Workshop CERN, 14 April,
SAX2 and DOM2 Kanda Runapongsa Dept. of Computer Engineering Khon Kaen University.
XML eXtensible Markup Language. XML A method of defining a format for exchanging documents and data. –Allows one to define a dialect of XML –A library.
XML and SAX (A quick overview) ● What is XML? ● What are SAX and DOM? ● Using SAX.
COSC617 Project XML Tools Mark Liu Sanjay Srivastava Junping Zhang.
May 24, 2004IVOA Interop Meeting1 An AXIS-based Java SkyNode Ramon Williamson NCSA T HE US N ATIONAL V IRTUAL O BSERVATORY.
Introduction to Server-Side Web Development Introduction to Server-Side Web Development using JSP and XML Further JSP and integration with XML 17 th March.
When we create.rtf document apart from saving the actual info the tool saves additional info like start of a paragraph, bold, size of the font.. Etc. This.
1 Introduction JAXP. Objectives  XML Parser  Parsing and Parsers  JAXP interfaces  Workshops 2.
Discussed in Kyoto Schema changes for the next version (Gerard Lemson)  will be included in VOTable1.2 Schema changes for the next version (Gerard Lemson)
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
E-Science Data Information and Knowledge Transformation BinX – A Tool for Binary File Access eDIKT project team Ted Wen
XML Tools (Chapter 4 of XML Book). What tools are needed for a complete XML application? n Fundamental components n Web infrasructure n XML development.
VOTable agenda Current VOTable status News from Applications Referring STC (as a data model example) Relations between s Questions about VOTable schema.
Evanthia Hatziminaoglou, ESO - Garching Virtual Observatory Info-Workshop, SOFIA January 2008 VO Tools Overview.
C Copyright © 2011, Oracle and/or its affiliates. All rights reserved. Introduction to XML Standards.
7-Mar-16 Simple API XML.  SAX and DOM are standards for XML parsers-- program APIs to read and interpret XML files  DOM is a W3C standard  SAX is an.
Connecting to External Data. Financial data can be obtained from a number of different data sources.
Java API for XML Processing
Week-9 (Lecture-1) XML DTD (Data Type Document): An XML document with correct syntax is called "Well Formed". An XML document validated against a DTD is.
XML Parsers Overview Types of parsers Using XML parsers SAX DOM
In this session, you will learn to:
Database Processing with XML
Adaptive Code Umamaheswaran Senior Software Engineer
Working with Data in Windows
XML Parsers Overview Types of parsers Using XML parsers SAX DOM
Java API for XML Processing
XML Problems and Solutions
A parser for XML Documents
VOTable Meetings: Conclusions
XML Programming in Java
Presentation transcript:

Starlink VOTable software Author: Mark Taylor Open source Java software for table manipulation STIL: Table I/O & processing library TOPCAT: Graphical table view/edit/analysis application STILTS: STIL Tool Set

Software Features ● Java – J2SE 1.4/1.5, portable, easy deployment ● Open source – Licenced under the GPL ● Full documentation – Tutorial/reference user documents, javadocs ● Scalable – Designed for use with large tables, not memory-limited – Switch between memory & disk caching of bulk data using pluggable Storage Policies

STIL ● Generic table I/O & processing library ● Presents abstract view of table to programmer ● Format-neutral I/O – VOTable, FITS, SQL, ASCII, CSV... Starlink Tables Infrastructure Library

VOTable FITS SQL query ASCII CSV... VOTable FITS SQL table ASCII HTML LaTeX Mirage... Table metadata Column metadata Cell data Name URL Description PARAMs, INFOs... Names Descriptions Units, UCDs Types,... StarTable interface Cell values Table Processing Input handlers Output handlers random-access sequential

STIL VOTable features ● Fully implements VOTable standard – Understands TABLEDATA, BINARY, FITS (inline or by URL) – VOTable 1.0 or 1.1 versions ● Flexible options for writing VOTables – Can write TABLEDATA, BINARY, FITS (inline or by URL) ● Full access to structure of VOTable document – Table-aware SAX (streamed) parsing – Table-aware DOM (memory-based) processing ● Best-efforts parsing of non-conforming documents – Processing is mainly FIELD and DATA elements – Non-catastrophic schema changes easy to cope with

Table-aware DOM ● Parser builds normal org.w3c.dom document in memory ● Only small (non-DATA) elements are included ● For table data, use ((TableElement)el).getData() ● This gives you a StarTable which provides table elements ● Don't need to worry wheter it's TABLEDATA, BINARY or FITS <COOSYS equinox=”J2000.0” epoch=”J2000.0” system=”eq_FK5”/> AAAD0NoYXJsZXMgTWVzc2llc gAAAAtNYXJrIFRheWxvcg== getData() StarTable

Table-aware SAX ● Extends SAX (streaming) XML parser with VOTable- aware callback methods ● Parsing code receives notification for start, end and each row of TABLE data as well as XML elements, entities, etc public interface TableHandler { void startTable( StarTable metadata ); void rowData( Object[] row ); void endTable(); } public interface ContentHandler { void startDocument(); void endDocument(); void startElement( name, atts...); void endElement( name,... ); void characters( char-data,... ); } Standard SAX handler STIL extension for VOTables

Axis VOTable de/serialization ● STIL provides custom serializer/deserializers for use with Axis web services ● JAX-RPC calls send StarTable objects over the wire as VOTable documents ● In principle, streaming means this works with large tables ● (but there are problems at Axis 1.1)

TOPCAT ● View/analyse/edit/write tabular data – Manipulate table data and metadata – Plot, match, sort, calculate, select,... – Powerful and extensible expression language ● Based on STIL – Multi-format, including VOTable (all encodings) & SQL – Large tables (10^6 rows x 10^2 columns) Tool for OPerations on Catalogues And Tables

STILTS ● Command-line tools for table manipulation ● Generic table tools: – tcopy: format conversion – tpipe: table pipeline processing ● VOTable structure-sensitive tools – votcopy: DATA encoding conversion – votlint: VOTable document validation ● Current release is beta STIL Tool Set

votcopy ● Converts VOTable DATA encodings ● Can write all defined encodings: – TABLEDATA, BINARY, FITS ● Choose STREAM element output: – inline ( encoding='base64' ) – external ( href=' ' ) ● All non-data elements are untouched ● Useful for: – humans looking at STREAM data – conversion to STREAM prior to transmission –... <COOSYS equinox=”J2000.0” epoch=”J2000.0” system=”eq_FK5”/> % votcopy -f tabledata AAAD0NoYXJsZXMgTWVzc2llc gAAAAtNYXJrIFRheWxvcgQaY Ue0Gkyys/xso9PoiMSj4ZmZo +H753PxqfvggpdtyAQL5DtwA KQAEMkC+QADQGd/72lEZzAKQ... % votcopy -f binary % votcopy -f fits -href -base data

votlint ● Many VOTables are in violation of the standard – Makes it hard for parsing software – Data might get garbled ● DTD/Schema validation misses many errors: – Content of TD/STREAM elements can't be checked against FIELDs – arraysize attribute values may be meaningless – ref/ID crossreferences might make no sense – etc, etc, etc... ● votlint parses a VOTable document and warns of trouble – Doesn't pick up everything, but it's a lot better than not using it ● Useful for VOTable authors and parser developers ● If you are producing VOTables or VOTable-writing software - please use it to check your VOTables are legal!

votlint example <VOTABLE xmlns:xsi=” xsi:schemaLocation=” xmlns=” version=”1.1”> A very small table Fomalhaut d0 Running votlint on this valid document: gives these warnings: INFO (l.4): No arraysize for character, FIELD implies single character WARNING (l.15): Characters after first in char scalar ignored (missing arraysize?) ERROR(l.17): Bad double string d0 WARNING (l.19): Wrong number of TDs in row (expecting 3 found 4) ERROR (l.22): Row count (1) not equal to nrows attribute (2)

Summary ● STIL – Table-aware DOM – Table-aware SAX ● STILTS – votcopy – votlint ● Other features available – TOPCAT, generic parts of STIL & STILTS – Applications session tomorrow, or talk to me ● The future is uncertain...