It may be a Yahoo! proprietary Language, but I found that it's also something else:
1999/06/23 Shawn Gordon
Purpose of RTML ("Remote Telescope Markup Language")
The Remote Telescope Markup Language is designed primarily to enable a remote observer to submit observing requests to any remote telescope which can understand this language. The observing requests can be submitted in two modes of operation: interactive, where the observer waits for the result of the observation request, and non-interactive or 'batch', where the observer submits an observing list and allows the telescope to carry out the observations in a scheduled mode.
The definition of observer is rather loose. The observer can be a human sitting at a terminal, or it can be a computer accessing a database. The main point is that it does not matter to the remote telescope who or what generates the request as long as the request is a valid RTML request file.
Control of a remote telescope consists primarily of two modes of communications - requests sent to a telescope and the response or data that is received from the telescope. This form of communication can either be interactive, in the case where an observer is controlling a telescope in real time, or it can be non-interactive, where an observing list is submitted to the remote telescope to be executed by an on-site telescope operator or by scheduling software. These two distinct formats are implicitly supported by the structure of this language. We refer to these two formats in the following as an observing list, when requests are sent to the telescope, and as an observing log, when data is retreived from the telescope.
The mode of operation of a telescope (interactive or batch) is telescope and software dependent. Therefore, the RTML language does not specify which of these modes is currently in use for a specific file. The current mode is context dependent. For example, if an observer was controling a telescope interactively, the style of RTML file would be different than if the observer was sending the file to a batch executed telescope. The mode can be determined from the tags in the RTML file.
RTML Requirements
List of requirements that this language should address:
It must be able to describe a complete observation request for a specific telescope.
It must be telescope hardware and software independent.
It must be network independent.
It must accommodate a wide degree of telescope automation yet be able to take advantage of it where it is available (particularly if there is scheduling software available).
It must be human readable. It must also be simple enough that an observer could generate an observing list in this language and a telescope operator could generate a valid observing log.
It should provide the means to execute observations interactively or in a scheduled mode.
It should be extensible. When new features are added to this language, it must be backward compatible.
Although the initial implementation of this language is intended to be for optical telescopes, the language should not inhibit further extension for other telescopes operating at different wavelengths.
Define a complete general set of scheduling keywords to enable a variety of telescope scheduling systems to use RTML.
Origins of RTML
Automated telescopes are becoming much more common. With the advent of the Internet, it is now possible to control telescopes from a remote location. Typically, though, the language and routines which control a telescope are unique to that telescope. There are efforts underway to develop a common instrument control language (AIML and ATIS are two such languages). However, these efforts do not address the need to communicate to a variety of telescopes using a common language. RTML is an attempt to separate the observing goals from the instrument. The goals of RMTL are to enable an observer to develop an observing list in a format common to all telescopes. Obviously, the goals of a research project will dictate on which instrument the observations should be carried out. Nevertheless, a typical observation can be described such that the telescope to which it is submitted can understand and fulfill the request.
Remote Telescope Markup language is a data description language whose goal is to completely describe an observation request and the observation result, independent of the telescope hardware. The premise behind this language is that each RTML literate telescope has a small server running on it which can accept RTML files and parse them into its own command language. In the same manner that the Java programming language enables any program to be executed on any machine, RTML enables any observing list to be executed on any telescope system.
The origins of RTML are from the Hands On Universe Project, and it need to access optical telescopes on a worldwide basis. There are several telescopes which are already available for the HOU project. However, for the most part there is no standardization in either the hardware or software which operates these telescopes. This language is an attempt to standardize the communications protocol between a remote telescope and a remote observer. Although its impetus is the HOU project, it is not designed specifically for the HOU project. Instead, this language is an attempt to provide a common language to control remote telescope in either an interactive or scheduled manner.
One application of RTML is with the Hands On Universe Global Telescope Network (HOU-GTN). This project allows teachers and students from around the world to submit observation requests to the HOU server. These requests are then distributed to each of the available telescopes in its network. There is a strong interest by many telescope operators to participate in the HOU program. However, each telescope has a different telescope control system and each telescope has a different set of capabilities. One telescope may be entirely automated including a scheduler for distributing observation requests throughout the night; another may be operated manually. These types of differences and capabilities make it difficult for a project such as the HOU-GTN to incorporate a large set of telescopes without requiring some kind of standardization. RTML is the standard language for delivering an observing list to a telescope in a manner that is independent of the underlying system. The telescope need only be provided with a routine or program to translate the incoming RTML observing list into its own internal format.
Definition of the RTML Language
RTML is an extension of the XML markup language in the same manner that HTML is an extension of the XML language. The model of HTML and the web is similar to the model proposed by this langauge. With the web, programs known as servers respond to HTTP requests from a client and typically serve up HTML pages. The HTML data is delivered to the browser (or client) where it is decoded and displayed in a graphically appealing manner for the user.
By extension, RTML could be used in the following manner. An automated telescope would submit a HTTP request to a server on which a list of observing requests is stored. The server would parse the request and return an RTML document containing the list of targets to observe. On the telescope side, the client software would recieve the RTML document, either decode it such that the target list could be executed by the telescope, or it could be used directly if the telescope is 'RTML literate'.
This is not the only possible implemenation of RTML. By design it is to be used in a variety of possible situations. For example, through the use of XML exstensible style sheets, the incoming RTML document could be decoded by a XML literate browser (e.g. Netscape and IE) and viewed in a format that could be understood by an observer at a telescope which is not automated.
RTML is written using XML (eXtensible Markup Language). The primary reason for this choice is that XML provides the framework for organizing structured data in a text file. The result of this is a data file that is human readable and is network neutral. The secondary reason is that there already exist libraries of code (in Java, C, and perl, among others), which can parse XML (and hence RTML) files. As a result, it becomes easier to develop tools to read and process RTML files.
The model of RTML is similar to that of HTML (HyperText Markup Language), and in fact HTML is described by XML as well. HTML is a hardware-independent document definition language, which enables web documents to be viewed from any computer regardless of the underlying hardware. Similarly, RTML delivers observing lists to telescopes and telescopes return observing logs to observers in a manner that is independent of the underlying telescope system.
RTML "Document Type Definition"
The RTML Document Type Definition (DTD) describes the language to be used to communicate with remote telescopes via the internet. The purpose of this language is to address the communication needs of remote telescopes. It is designed to enable interactive or batch control of remote telescopes from a remote location over the internet. Refer to the RTML DTD for a completely detailed definition of the RTML Document Type Definition.
An RTML document uses tags (words bracketed by a '<' and a '>') and attributes (modifiers of the form 'name=value' within a tag) to describe a complete observation request or the result of an observation.
In the first version of RTML, the language is being designed for use with optical telescopes (hence the tags
and ). Most of the following describes the application of this language to optical telescopes. Obviously, it is important for the success of this language to extend it to include telescopes operating at other wavelengths.
In the following sections, this document describes the language and how it Is to be used. In section "Implementation", we describe how the system is to be implemented under three different scenarios. In section "Example", we provide sample RTML files and describe what they are meant to accomplish. Finally, in section "Tag Descriptions" we describe each one of the tags and how they are to be used.
Implementation of RTML
Usage
RTML is designed to provide the protocol for delivering observation requests to telescopes and receiving the observing logs from the telescopes. To that end, RTML files come in two distinct formats: (1) the observing list format, and (2) the observing log format. The format of a particular RTML file is determined both from its context (where it is coming from - e.g. a telescope) and from the document structure and tags it uses. Here we discuss the format and tags used by each of these particular formats.
Observing List
The observing list format is prepared by the observer and submitted to the telescope for which he or she has observing time. It has the following tag hierarchy:
<--Renamed
Discussion of Observing List
Each observing file begins with the tag. This tag contains the contact information for the RTML file. The next tag is the tag. This tag is optional and is used to define default values for a set of variables used by the RTML server. These default values are useful when the RTML file must be generated manually. The third tag, , describes a single complete observing request. There can be more than one per file.
An observing request as defined by the tag is a set of logically connected targets as defined by the tag. Typically, a target describes all aspects necessary to take a set of exposures of an astronomical object. An exposure is not required, however, and may simply be used to move the telescope to a specified location. By 'logically connected', we mean that each target within a request is related to the other targets in some reasonable fashion. For example, one might want to take an exposure in each filter of a filter set for a single object. Alternatively, the targets may consist of a set of exposures with offsets between each exposure.
Each describes a single complete action to be carried out by the telescope. Typically, this includes - but does not required - some kind of exposure. A is identified by its attribute 'name'. The number of times a target is executed is defined by the 'numobs' attribute. The following tags are defined in the tag: , , ,