XSIL: Extensible Scientific Interchange Language


The Extensible Scientific Interchange Language (XSIL) is a flexible,
hierarchical, extensible, transport language for scientific data objects.
The entire object may be represented in the file, or there may be metadata in the XSIL
file, with a powerful, fault-tolerant linking mechanism to external data. The language is
based on XML, and is designed not only for parsing and processing by machines, but also
for presentation to humans through web browsers and web-database technology.
It comes with a Java object model that is designed to be extensible, so that scientific
data and metadata represented in XML is available to a Java code.
There is also a powerful Swing-based object browser called Xlook, that is also designed
to be extensible.
XSIL is directed toward a number of projects, including LIGO, the NPACI Storage Resource Broker, and the Digital Puglia project. For LIGO, the language is known
as LIGO_LW: this tag is equivalent to the more general XSIL tag in the
examples, the parser, and the visualizer.
For more information, read the paper (June 00)
And don't forget to get the software

More about XSIL

All XSIL objects may have Name and Type attributes; these are shown in the XSIL
browser, and are used by the API to locate particular objects. For example: "Find the
object of type Fruit with the name Apple".
There is a container object in XSIL, with the XSIL tag, that may have Name and Type
attributes. The container may contain other containers, so that this object induces a
hierarchy.
The elementary objects of XSIL include Param, an association between a keyword and a
value; an Array, similar to the array concept of Fortran or C; a Table, which is a set of
column headings followed by a set of records.

The Stream object in XSIL is a sophisticated mechanism for including data either within
the XSIL file itself (a Local Stream), or pointing to an external resource (a Remote
Stream). The data may be encoded or compressed; and there may be hints about when to begin
reading the data and a timeout value.
Available Software
 |
The basic XSIL window consists of a message window (bottom). a source-xml
window (right), and the hierarchical view (left). The tree viewer is implemented with
JTree, part of ther Java2 installation. The tree can expand an collapse, and objects can
be selected. Different icons are associated with different types of XSIL object. |
 |
This image shows the table object viewed with LiveTable from KL Group. The
table has been sorted on the second column -- which is different from the sorting visible
in the source-code window. Sorting occurs with shift-click on the column heading. |
 |
Here we see the TimeSeries viewing component. One window shows the series
against time, the other shows the power-spectrum. This is implemented with the JChart
component from KL Group. Another window shows the chart customizer to make the chart
"just perfect". |
 |
A URL can be a first class object in an XSIL file. Here we see the viewing
component for a web-page, which is just the user's familiar browser. Any MIME-typed file
can thus be represented: images, documents, databases, spread-sheets, etc. |