IVOA

VOApplication: an XML Encoding Schema for Application Resource Metadata
Version 1.0

IVOA Working Draft 25 April, 2007

This version:
http://www.ivoa.net/Documents/WD/ReR/VOApplication-XXXX.html
Latest version:
http://www.ivoa.net/Documents/latest/VOApplication.html
Previous versions
Authors:
Paul Harrison, Editor
and the IVOA Registry Working Group.

Abstract

This document describes an XML encoding standard for IVOA Application Metadata, referred to as VOApplication. This schema is primarily intended to support interoperable registries used for discovering resources; however, any application that needs to describe resources may use this schema. In this document, we define the types and elements that make up the schema as representations of metadata terms defined in the IVOA standard, Resource Metadata for the Virtual Observatory [Hanisch et al. 2004]. We also describe the general model for the schema and explain how it may be extended to add new metadata terms and describe more specific types of resources.

Status of this document

This is an IVOA Working Draft for review by IVOA members and other interested parties. It is a draft document and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use IVOA Working Drafts as reference materials or to cite them as other than "work in progress."

Parts that the editor considers should be removed from the document are marked in red with a strike through line, and parts to be expanded are in green

Comments on this document are due 15 December 2006 for consideration in the next version of this document. They should be sent to registry@ivoa.net, a mailing list with a public archive or on the VOApplication twiki discussion page. General discussion of related technology is also welcome on the Rwp03 wiki site.

A list of current IVOA Recommendations and other technical documents can be found at http://www.ivoa.net/Documents/.

Acknowledgements

This document has been developed with support from the National Science Foundation's Information Technology Research Program under Cooperative Agreement AST0122449 with The Johns Hopkins University, from the UK Particle Physics and Astronomy Research Council (PPARC), and from the Eurpean Commission's Sixth Framework Program via the Optical Infrared Coordination Network (OPTICON).

Conformance-related definitions

The words "MUST", "SHALL", "SHOULD", "MAY", "RECOMMENDED", and "OPTIONAL" (in upper or lower case) used in this document are to be interpreted as described in IETF standard, RFC 2119 [RFC 2119].

The Virtual Observatory (VO) is general term for a collection of federated resources that can be used to conduct astronomical research, education, and outreach. The International Virtual Observatory Alliance (IVOA) is a global collaboration of separately funded projects to develop standards and infrastructure that enable VO applications.

XML document validation is a software process that checks that an XML document is not only well-formed XML but also conforms to the syntax rules defined by the applicable schema. Typically, when the schema is defined by one or more XML Schema [Schema] documents (see next section), validation refers to checking for conformance to the syntax described in those Schema documents. This document describes additional syntax constraints that cannot be enforced solely by the rules of XML Schema; thus, in this document, use of the term validation includes the extra checks that goes beyond common Schema-aware parsers which ensure conformance with this document.

Syntax Notation Using XML Schema

The eXtensible Markup Language, or XML, is document syntax for marking textual information with named tags and is defined by the World Wide Web Consortium (W3C) Recommendation, XML 1.0 [XML]. The set of XML tag names and the syntax rules for their use is referred to as the document schema. One way to formally define a schema for XML documents is using the W3C standard known as XML Schema [Schema].

This document defines the VOApplication schema using XML Schema. The full Schema document is listed in Appendix A. Parts of the schema appear within the main sections of this document; however, documentation nodes have been left out for the sake of brevity.

Reference to specific elements and types defined in the VOApplication schema include the namespaces prefix, va, as in va:Application (a type defined in the VOApplication schema). Use of the specific va prefix in compliant instance documents is not required (the namespace could be assigned to any prefix); its use in this document is simply to indicate that it is an entity defined in the VOApplication schema.

Namespace prefixes used in this document
prefix namespace
vr http://www.ivoa.net/xml/VOResource/v1.0
vs http://www.ivoa.net/xml/VODataService/v1.0
va http://www.ivoa.net/xml/VOApplication/v1.0

Contents

Introduction

The IVOA Standard, Resource Metadata for the Virtual Observatory [Hanisch et al. 2004] (hereafter referred to as RM) defines metadata terms for describing resources. A specific XML encoding of these resources is described in the IVOA standard VOResource: an XML Encoding Schema for Resource Metadata [Plante et al. 2006] (hereafter refered to as the VR) The "resource" that is described in these documents is a very general concept, and was deliberately designed so that it can be specialized for particular types of resource.

This document specifically describes an extension of the metadata concepts and an XML encoding called VOApplication. The VOApplication schema provides XML encoding that extends the VR so that can be used to describe applications (see section below for discussion of what constitues an application). The intention of creating this model is to allow a framework for finding applications in an IVOA compliant registry and possibly downloading and automatically running them.

The VOApplication Data Model

The concept of an application in the context of this standard can cover almost any computer program or process than can consume and/or emit data. e.g.

Note that although this is a very wide ranging definition, forms of "application" e.g. web services which are specifically covered by other IVOA standards, should normally be described in terms of those standards, rather than as a general VOApplication.

Core VOApplication Metadata

At the IVOA interoperability meeting in Madrid 2005 a list of desired metadata for applications was agreed.

Function
A delimited list, including terms such as reduction, analysis, display, modeling, graphics, format conversion, etc. Multiple terms could be selected.
OperationModes
Interactive, command line, scriptable, from browser, etc.
OpenSource
Yes/No.
SourceURL
Entry point to the source code.
License
Name of license and descriptive text.
Cost
Free; or description of pricing, if not freely available.
SourceLanguage
A delimited list of software development languages. Can be more than one.
Dependencies
A text description of dependencies � compilers, libraries, etc. � that this application needs in order to be compiled or deployed. Include IDs of other applications in the registry upon which this application relies.
NetworkRequired
Essential/Useful/Limited/Unnecessary.
BinarySize
Typical size of the executable.
MemorySize
Typical memory requirements.
Platforms
List of supported platforms (hardware plus operating system).
VOStandards
List of supported VO standards and protocols used or implemented in this application (SIAP, SSAP, ADQL, OSQ, etc.)
InputFormats
List of supported input data formats, e.g., FITS, HDF, VOTable.
OutputFormats
List of supported output data formats, e.g., FITS, HDF, VOTable.
Appliction Version
It is often the case that applications are updated - not clear that the version element that appears in curation is sufficient for the needs (how is the latest version of an application signalled, if access to legacy versions are left in the registry.

Note that this model does not attempt to categorize the function of the application - this is beyond the scope of this standard, and will be covered by either the IVOA Ontology WG efforts, or by the characterization of processes that is being undertaken by the IVOA Theory WG. The only characterization of the application in this model is in terms of the types of inputs or IVOA standards that it supports.

Formal UML model

UML model of VOApplication

The main type introduced by this specification is the va:Application which contains all of the generic application metadata. The main subcategorizations of an application are then

Desktop Application
An application that can be executed locally by a user on their desktop machine and is represented by the va:DesktopApplication type.
Software Library
A collection of software that is not directly executable itself, but can be used to build other applications - represented by the va:SoftwareLibrary type.
Remote Application
An application that is executed remotely from the users desktop. There is no specific type defined for this class of application in this VOApplication schema, but this class of application is represented in the diagram above by the CeaApplication type which is defined in a separate standard [CEA]

Details of the VOApplication Schema

Application Type

This is the basic extension to the VOResource type that this schema defines. It is the container for the basic extension metadata that are common to all applications.

cost

an indication as to what the cost of the application is - the string "free" or "none" should be used to indicate that the application does not cost anything. Any value for the cost of any non-free software should be taken to be an approximate cost for one license - it is obviously difficulte to curate this value for non-free software so that the main use of this element will be to distinguish between free and non-free.

license

A free text value that indicates what type of license is in force. This can either be a common name of a license or a URL pointing to the license text.

openSource

A boolean value indicating whether the application is open source.

dataFormat

The concept of input formats and output formats have been collapsed into the single dataFormat element with an additional attribute called direction which can take on the values "read", "write" or "both". The identifiers to be used for the formats are detailed in the section on Enumerations.

voStandard

Any VO standards that the application can support. These should be specified as a ivoa identifier for the standard as detailed in [VSTD]

sourceLanguage

The identifier (as detailed in the section Enumerations) for the principal language that the application is written in.

sourceCodeURL

A URL from where the application source code can be obtained.

DesktopApplication

This is a concrete type that can be used to register real application that can be run on the user's desktop. In addition to the metadata described above, there is the possibility to add metadata for the following properties.

binarySize

The size of the executable in bytes.

memoryRequirement

An estimate in bytes of the mimimum memory that the application requires to function with acceptable interactive performance.

network

An assertion about the network requirements for the proper functioning of the application. This can take on the values;

Essential
The application will not even start without a network connection.
Useful
The application will start, but the primary use for the application requires a network connection.
Limited
The application makes only limited use of network facilities, thus the majority of its functionality is still available without a network connection.
Unnecessary
The application makes no use of the network.

dependsOn

Can be used to indicate other applications/software libraries that the application depends upon. This should only be used to indicate depenedencies that must be installed separately from the application itself e.g. this element should not be used to indicate a dependency on a software library if the library is included in the application download.

executable

This is a complex type that is described further in the section on the ExecutionEnvionment type.

ExecutionEnvironment type

This type is intended to provide enough information for an executable image of the application to be downloaded and possibly automatically run. It should be noted of course that the automatic invocation of an application could possibly be dangerous and it only recommended for environments where a suitable "sandbox" is provided and/or cryptographic verification of the origin of the executable can be made.

platform

The major classification of the platform that the software is compiled for. This should be an ivoa identifier for the platform name as specified in the section on Enumerations.

architecture

The hardware architecture that the software is compiled for, if relevant.

subtype

An optional free format sub-classification name for the platform.

maxVersion

An optional maximum version of the platform that the software image is valid for.

minVersion

An optional minimum version of the platfrom that the software image is valid for.

download

The URL from which the executable image can be downloaded. This can actually take point to different types of entity depending on the platform e.g. for the "unix" platform this would typically point to a compiled executable image (though it might point to an archive or "packaging" file that contains the executable amongst other files). For the "Java Webstart" platform this element will point to a ".jnlp" file that contains all of the information necessary for the Java Webstart technology to download and run the application.

path

If the software image is packaged within some form of archive format (e.g. tar or zip format) then this element can be used to indicate the exact location of the software image within the archive file.

An example of the ExecutionEnvironment type being used to describe the ways that Aladin can be launched
<!-- note that aladin can be started via webstart -->
<executable>
<platform>
ivo://net.ivoa.application/platforms#JavaWebStart
</platform>
<download>
http://aladin.u-strasbg.fr/java/nph-aladin.pl?frame=get&id=aladin.jnlp
</download>
</executable>
<!-- or downloaded directly-->
<executable>
<platform>ivo://net.ivoa.application/platforms#Java</platform>
<download>
http://aladin.u-strasbg.fr/java/nph-aladin.pl?frame=get&id=Aladin.jar
</download>
</executable>
<!-- or even run as an applet -->
<executable>
<platform>
ivo://net.ivoa.application/platforms#JavaApplet
</platform>
<download>
http://aladin.u-strasbg.fr/java/nph-aladin.pl
</download>
</executable>
</ri:Resource>

 

SoftwareLibrary Type

The SoftwareLibrary type is used to register software that is not executable, but can be used as a component to build other executable software. The only metadata that the SoftwareLibrary type has beyond the basic Application type is that of the library element which is of type ExecutionEnvironment and can thus be used to indicate the location and platform that a library has been compiled for.

Enumerations

In accordance with the guidelines laid down by [VR], there has been no attempt to create enumerated lists for cases where there list could not be closed (e.g. the set of operating system names will grow as new operating systems are developed). This means that the values of certain elements in a document instance will not be checked by even a validating XML parser, and validation that the element contents are allowed will have to be done by a separate process. This section will list the allowed values for those enumerations where appropriate and instance documents MUST use these exact strings to represent the same concept. These names are registered using the VOStandard schema [VSTD] as vstd:ResourceEnumList types, and the registry entries for the enumerations will be the definitive source for updates that occur after this document is published.

  Type for which enum is valid Value Description
Programming languages va:ProgrammingLanguage ivo://net.ivoa.application/languages#C The C programming language - taken to include all variants of the language from K&R to ANSI.
ivo://net.ivoa.application/languages#CPP The C++ programming language ISO/IEC 14882:1998

ivo://net.ivoa.application/languages#CSharp

The C# programming language http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-334.pdf
ivo://net.ivoa.application/languages#FORTRAN The FORTRAN programming language - Includes all versions of the language
ivo://net.ivoa.application/languages#Java The Java programming language http://java.sun.com/
ivo://net.ivoa.application/languages#Perl The Perl programming language http://www.perl.org/
ivo://net.ivoa.application/languages#Python The Python programming language http://www.python.org/
Data Formats va:DataFormat ivo://net.ivoa.application/formats#FITS The FITS data format http://fits.gsfc.nasa.gov/documents.html
ivo://net.ivoa.application/formats#VOTable The VOTable format [VOTable]
ivo://net.ivoa.application/formats#HDF http://www.hdfgroup.org/
Execution Environments va:Platform ivo://net.ivoa.application/platforms#Unix This includes all variations, as well as Linux
ivo://net.ivoa.application/platforms#Windows All varieties of Microsoft Windows
ivo://net.ivoa.application/platforms#JavaWebStart A Java application that can be launched using the WebStart mechanism
ivo://net.ivoa.application/platforms#JavaApplet A Java executable that can be launched as an applet
ivo://net.ivoa.application/platforms#Perl  
ivo://net.ivoa.application/platforms#Python  
ivo://net.ivoa.application/platforms#IRAF  
ivo://net.ivoa.application/platforms#PyRaf ??
ivo://net.ivoa.application/platforms#IDL  
ivo://net.ivoa.application/platforms#OSX Apple OS X

 

The procedure to add to these enumerations is to apply by email to the curators of the respective resources

Suggestions for Extension

Common Execution Architecture (CEA)

The VOCEA schema that is used to register CEA information [CEADM] is a good example of how the VOApplication schema can be extended. This has already been illustrated in the UML diagram earlier in this document.

Plastic

TBC

Appendix A: The complete VOApplication Schema

Note that this schema can be found on-line at http://www.ivoa.net/xml/VOApplication/v1.0 (i.e. the target namespace can also be used as a URL for the schema.) This location should represent the definitive source, the schema is only copied below for completeness of this document.

Appendix B: The complete source of the examples presented

The example instances of the the VOApplication schema show several features of how to use the schema to register applications.

Appendix C: Change History

This is the first version that has been made public - it is derived from wiki content.

References

[RFC 2119]
Bradner, S. 1997. Key words for use in RFCs to Indicate Requirement Levels, IETF RFC 2119, http://www.ietf.org/rfc/rfc2119.txt
[RM]
Hanisch, Robert (ed.) 2004. Resource Metadata for the Virtual Observatory, Version 1.01, IVOA Recommendation, http://www.ivoa.net/Documents/REC/ResMetadata/RM-20040426.htm
[VR]
Plante, Ray (ed.) 2006. VOResource: an XML Encoding Schema for Resource Metadata, IVOA Working Draft, http://www.ivoa.net/Documents/latest/VOResource.html
[VSTD]
Harrison, Paul. (ed.) 2006. VOStandard: an XML Encoding Schema for IVOA Standards, IVOA Working Draft, http://www.ivoa.net/Documents/latest/VOResource.html
[CEA]
Harrison, Paul. 2006. A Proposal for a Common Execution Architecture , IVOA Working Draft, http://www.ivoa.net/Documents/latest/VOCEA.html
 
[CEADM]
Harrison, Paul. 2007. CEA Application Model: A model and XML Encoding Schema for Applications in the Common Execution Architecture, IVOA Working Draft, http://www.ivoa.net/Documents/latest/CEADM.html
 
[xml]
Bray, Tim, Paoli, Jean, Sperberg-McQueen, C. M., Maler, Eve, Yergeau, Francois (editors) 2004, Extensible Markup Language (XML) 1.0 (Third Edition), W3C 25-Apr-2007 15:44/TR/REC-xml
[schema]
Fallside, David C., Walmsley, Priscilla (editors) 2004, XML Schema Part 0: Primer Second Edition, W3C Recommendation 28 October 2004, http://www.w3.org/TR/xmlschema-0/
[ID]
Plante, R., Linde, T., Williams, R., Noddle, K. 2005, IVOA Identifiers v1.1, http://www.ivoa.net/Documents/REC/Identifiers/Identifiers-200505XX.html.
 

Last modified: 25-Apr-2007 15:44