IVOA

VOResource: an XML Encoding Schema for Resource Metadata
Version 1.0

IVOA Working Draft 28 April 2005

This version:
http://www.ivoa.net/Documents/WD/WD-VOResource-20050428.html
Latest version:
http://www.ivoa.net/Documents/WD/VOResource.html
Previous versions:
n/a
Authors:
Raymond Plante, Editor
Tony Linde
the IVOA Registry Working Group.

Abstract

This document describes an XML encoding standard for IVOA Resource Metadata, referred to as VOResource. 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."

Comments on this document are due 30 June 2003 for consideration in the next version of this document. They should be sent to registry@ivoa.net, a mailing list with a public archive. 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 an XML Schema [Schema] document (see next section).

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 VOResource 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 VOResource schema include the namespaces prefix, vr, as in vr:Resource (a type defined in the VOResource schema). Use of the vr prefix in compliant instance documents is not required (see section 2.1); its use in this document is simply to indicate that it is an entity defined in the VOResource schema. References to (local) elements are further labelled by enclosing the name in the XML tag brackets, as in <vr:identifier>.

Contents


1. 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. The RM defines a resource as:

... VO element that can be described in terms of who curates or maintains it and which can be given a name and a unique identifier. Just about anything can be a resource: it can be an abstract idea, such as sky coverage or an instrumental setup, or it can be fairly concrete, like an organization or a data collection. This definition is consistent with its use in the general Web community as "anything that has an identity" (Berners-Lee 1998, IETF RFC2396). We expand on this definition by saying that it is also describable.

The resource metadata are, then, the terms and concepts that describe a resource in general. The RM defines the terms as well as describes reasonable or allowed values; it does not, however, describe how the terms and values should be encoded. This is because resource metadata may be encoded in several different formats, depending on the context. This document specifically describes an encoding called VOResource.

The primary intended use of VOResource is to provide an XML interchange format for use with resource registries. A registry is a repository of resource descriptions [RM] and is employed by users and applications to discover resources. VOResource can be used to pass descriptions from publishers to registries and then from registries to applications. Another inended use is as a language for services to describe themselves directly. VOResource may be used in other ways, in whole or in part, using the standard XML mechanisms (e.g., import, include).

The VOResource schema provides XML encoding for so-called core metadata from the RM that (with a few exceptions) can apply to al resources; however, it is recognized that a full and useful description of a specific resource will require additional metadata that is relevant only to a resource of its type. Thus, the VOResource schema has been especially designed to be extended. The model for doing this is described in section XX.

Note:
The name "VOResource" has in practice had two meanings within IVOA discussions. The first refers specifically to the core XML schema defined by this document. The second refers more broadly to the core schema plus the set of legal extensions. In this document, use of the name "VOResource" corresponds to the first meaning. Reference to the broader set of schemas will be indicated explicitly with the annotating phrase, "and its legal extensions."

2. The VOResource Data Model

The primary use for VOResource, of course, is to describe a resource using the metadata concepts defined in the RM. Here's an example of a VOResource document describing an organisation, the Radio Astronomy Imaging Group at the National Center for Supercomputing Applications.

Example
<?xml version="1.0" encoding="UTF-8"?>
<resource xsi:type="Organisation"
  xmlns="http://www.ivoa.net/xml/VOResource/v1.0"
  xmlns:vr="http://www.ivoa.net/xml/VOResource/v1.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.ivoa.net/xml/VOResource/v1.0
                      http://www.ivoa.net/xml/VOResource/v1.0">

    <title>NCSA Radio Astronomy Imaging</title>
    <shortName>NCSA-RAI</shortName>
    <identifier>ivo://rai.ncsa.uiuc.edu/RAI</identifier>

    <curation>
      <publisher>NCSA Radio Astronomy Imaging</publisher>
      <creator>
        <name>Dr. Richard Crutcher</name>
        <logo>http://rai.ncsa.uiuc.edu/rai.jpg</logo>
      </creator>
      <date>1993-01-01</date>
      <contact>
        <name>Dr. Raymond Plante</name>
	<email>rplante@ncsa.uiuc.edu</email>
      </contact>
    </curation>

    <content>
      <subject>radio astronomy</subject>
      <subject>data repositories</subject>
      <subject>digital libraries</subject>
      <subject>grid-based processing</subject>
      <description>
        The Radio Astronomy Imaging Group at the National Center for
        Supercomputing Applications is focused on applying
        high-performance computing to astronomical research.  Our
        projects include the NCSA Astronomy Digital Image Library, 
        the BIMA Data Archive, the BIMA Image Pipeline, and the
        National Virtual Observatory. 
      </description>
      <referenceURL>http://rai.ncsa.uiuc.edu/</referenceURL>
      <type>Organisation</type>
      <contentLevel>Research</contentLevel>
    </content>

    <facility>Berkeley-Illinois-Maryland Array (BIMA)</facility>
    <facility>
       Combined Array for Research in Millimeter Astronomy (CARMA)
    </facility>

</resource>
This example illustrates some important components of a VOResource record:
  1. the VOResource namespace,
  2. the specific type of resource indicated by the value of the xsi:type attribute,
  3. the location of the schema documents used by this description,
  4. values for the three main types core metadata: identity, curation, and content,
  5. extension metadata specific to the type of resource.

2.1. The Schema Namespace and Location

The VOResource schema namespace is "http://www.ivoa.net/xml/VOResource/v1.0". The namespace URI has been chosen to allow it to be resolved as a URL to the XML Schema document (given in Appendix A) that defines the VOResource schema. Applications may assume that the namespace URI is so resolvable.

Authors of instance documents that use the VOResource schema may choose to provide a location for VOResource XML Schema document using the xsi:schemaLocation attribute; the choice of the location value is the choice of the author. In general, the use of xsi:schemaLocation is recommended by this specification with a the namespace URI given as the location as illustrated in the example above, unless the application prefers otherwise.

xsi:schemaLocation="http://www.ivoa.net/xml/VOResource/v1.0
                    http://www.ivoa.net/xml/VOResource/v1.0"
Whenever instance validation is needed, use of the VOResource schema and its legal extensions must be declared using the standard namespace declaration attributes, xmlns and xmlns:prefix (where prefix is an arbitrary prefix). The prefix, vr, is used by convention as the prefix defined for the VOResource schema; however, instance documents may use any prefix of the author's choosing. In this document, the vr prefix is used to label, as shorthand, a type or element name that is defined in the VOResource schema, as in vr:Resource.

2.2. The Core Structural and Semantic Model

The VOResource schema only defines global types; it does not define any global elements (often refered to as root elements). It is the responsibility of the application to define the root element of the VOResource-employing documents it operates on. Typically, the root element is defined in a separate application-specific schema. The type of an application document's root element is not assumed to be any particular type defined in the VOResource schema (nor any of its legal extensions). In fact, it need not be of a type from the VOResource at all; rather, VOResource types may appear anywhere in the document.

Note:
The IVOA Registry Interface standard, for example, includes a small schema that defines a single global element, <VOResources>, that can contain a series of <resource> child elements. The child element is defined to be of the type Resource from the VOResource schema.

Note:
In the example instance document at the beginning of section 2, the root element, <resource> is not defined in any schema. Nevertheless, this document is still legal and verifiable XML. This is because the element's type is explicitly specified with the xsi:type attribute.

VOResource uses the following conventions for names of elements and types:

It is recommended that this convention be followed in other schemas that either use the VOResource schema (via an xsd:import or xsd:include) or extend it.

Applications describe a single resource using an element of the type vr:Resource or a legal derivation of it. The content of the vr:Resource type is referred to as the core VOResource metadata, and they fall into three categories (corresponding to the sections 3.1, 3.2, and 3.3 of the RM):

These elements are defined in more detail in section 3.

Many of the elements in VOResource that are meant to have string or URI values are defined as being of the type vr:PaddedString and vr:PaddedURI, respectively:

vr:PaddedString Schema Definition
<xs:simpleType name="PaddedString">
  <xs:restriction base="xs:string">
    <xs:whiteSpace value="collapse"/>
  </xs:restriction>
</xs:simpleType>
vr:PaddedURI Schema Definition
<xs:simpleType name="PaddedURI">
  <xs:restriction base="xs:anyURI">
    <xs:whiteSpace value="collapse"/>
  </xs:restriction>
</xs:simpleType>

This allows authors of VOResource instance documents to pad string and URI values with spaces and include carriage returns to improve readability. The definition of these type will cause an XML Schema-compliant parser to replace tab, line feed, and carraige return characters with simple spaces, then replace multiple sequential occurances of spaces with a single space, and then remove all leading and trailing spaces.

All VOResource elements and attributes that contain dates must be interpreted as UTC dates and must be encoded in compliance with ISO8601 standard Date and Time Format [ISO8601]. This is enforced by the use of the vr:UTCDateTime:

vr:UTCDateTime Schema Definition
<xs:simpleType name="UTCdatetimeType">
   <xs:union memberTypes="xs:date vr:UTCDateTimeZ"/>
</xs:simpleType>

<xs:simpleType name="UTCDateTimeZ">
   <xs:restriction base="xs:dateTime">
      <xs:pattern value=".*Z"/>
   </xs:restriction>
</xs:simpleType>

Copied from the OAI Protocol for Metadata Harvesting schema [OAI], this definition allows a date to have a precision of either a day (as in the xsd:date type) or the second. The latter format is forced to end with a "Z" to be compliant with the ISO8601 time zone specification.

All VOResource types and elements have an associated semantic meaning which is given in the first <xsd:documentation> node within the type or element's definition in the schema. The meaning associated with a type is generic, indicating the kind of information the type provides. The semantics that are delivered by a VOResource instance document, however, are those associated with VOResource elements. The meaning of a VOResource element can be thought of as having two parts: the generic meaning of the set of information it contains as defined by its type, and a specific meaning describing the context in which that information applies. Because all VOResource elements are locally defined element (in the XML Schema sense), they do not have an absolute meaning, but rather have a meaning tied to the thing being described by that element as represented by the enclosing type.

Here are three examples that illustrate the semantics communicated by VOResource entities:
  1. The vr:Curation type describes the curation of a resource. The <vr:curation> element describes curation of the specific resource described by the enclosing vr:Resource type and identified by its vr:identifier element.

  2. The vr:ResourceName type is a generic reference to another resource. The <publisher> element gives a reference to the publisher of the specific resource being described which may itself be a registered resource described elsewhere.

  3. The <title> element gives the title of the resource being described the enclosing vr:Resource type and identified by its <vr:identifier> element. The <title> element's type, vr:PaddedString (a restriction on xsd:string, has no inherent meaning associated with it.

Additional semantics are transmitted through the use of derived types using the xsi:type attribute. In the sample instance document above, the use of xsi:type="Organisation" means that the resource being described is specifically an organisation as defined by the vr:Organisation type. This type provides additional metadata that are not part of the core resource metadata; however, in general, a derived type need not alter the content model of its base type. This allows derived types to add more specific meaning with out adding any additional metadata. The semantics associated with the use of xsi:type is described further in the next section.

2.3. Extending the VOResource Schema

A schema made up only of global type definitions provides great flexibility for extension. Any global type defined in the VOResource schema may be used as the base of a derived type defined in another schema. The schema containing the derived types must declare its own namespace URI or default to the null namespace; it must not adopt the VOResource namespace URI. The application must then define what schemas, identified by their namespace URIs, are supported and/or required.

A VOResource extension is an XML Schema document whose primary purpose is to define new types derived from those defined in the VOResource schema. It is recommended that VOResource extensions follow the definition styles used by the core VOResource. In particular:

There are two types of derivation that are particularly important to the VOResource data model: derivation of the vr:Resource type, used to define specific types of resources, and the derivation of service metadata elements.

2.3.1. Defining New Resource Types

When a resource is described with an element explicitly of the type vr:Resource, it is being described in the most generic sense. The metadata presented in this type, including both free text values and controlled vocabulary, can give some sense of what type of resource is being described and what it might be used for. However, the most useful descriptions of resources will not explicitly use the vr:Resource type; rather, they will use types that are derived from vr:Resource.

Defining derived vr:Resource types accomplishes two things:

  1. it sharpens the semantic meaning of the resource description by indicating what specific type of resource it is, and
  2. it may allow additional metadata not part of the core but specific to the that type of resource.

The VOResource schema defines two types derived from vr:Resource: vr:Organisation and vr:Service. The vr:Organisation adds metadata describing the astronomical facilities such as telescopes that are associated with the organisation it describes. The vr:Service type adds a description of the service's interface and its specific capabilities. Specific kinds of services, particularly those defined by an IVOA standard, should be derived from vr:Service.

Note:
It is recommended that the IVOA standards document that defines an IVOA standard service should include the definition of a VOResource extension schema that is used to describe implementations of the service in a registry. This schema would include a type that derives from vr:Service and may also include extensions of vr:Interface and/or vr:Capability (see section 2.3.2).

It is intended that the most common extensions to the VOResource schema will be to define new derived vr:Resource types. Derivation of vr:Resource should be done by extension (i.e. using <xsd:extension>) rather than restriction. It is not required that the derived type change the content model from that of the vr:Resource base type; in this case, the purpose of the derivation is only to sharpen the semantic meaning of the resource description.

As described in section 2.2, it is intended that derived vr:Resource types be invoked in instance documents using the xsi:type attribute (as illustrated in the sample document above). This method illustrates a polymorphism for resource metadata in that any place where an element of type vr:Resource is expected, the derived type may be inserted. The use of xsi:type illustrates both what specific type is being inserted in as well as what it is being inserted in for. That is, as in our example, the resource being described is an organisation.

The other method of for polymorphism provided by XML Schema [Schema] is substitution groups. Invoking derived vr:Resource types via elements in a substitution group is discouraged because it is less obvious from looking at the instance document that a substitution is being made.

2.3.2. Defining New Service Interfaces and Capabilities

The derived type vr:Service adds the <vr:interface> element to the core set provided by vr:Resource. By itself, the <vr:interface> element, which is of type vr:Interface, is not particularly illuminating: it only allows one to provide a URL handle to the service (in the form of an <vr:accessURL>), and the meaning of that URL is not specific enough for a user to know what to do with it. That is why the definition of vr:Interface type is marked as abstract. It is intended, therefore, that vr:Service instances substitute in a type (using xsi:type) derived from vr:Interface.

Note:
It is intended that a set of common generic interface types would be defined in a separate VOResource extension schema. At the time of this writing, this schema is called VODataService. It defines interfaces for describing a SOAP Web Service, tradition HTTP GET and POST services, and GLU services. More specific interfaces, particularly those associated with standard IVOA services (like a Registry Service) would derive its specific interface describe from one of the common type as appropriate.

The <vr:interface> element is intended to describe how the service is called. A derived vr:Interface type must indicate in the documentation how the <vr:accessURL> should be interpreted and used. The derived type may also include other added metadata describing how to use the service (e.g., a description of the input arguments).

The VOResource schema defines another type, called vr:Capability intended for use in the derived vr:Interface types. It is intended to describe the behavior of the service and can include limitations of the service.

Note:
The Simple Image Access Protocol [SIA] is an example of a standard service that defines capability metadata. These include "maxRecords" that list the maximum number of records the SIA implementation can return at a time, and "MaxImageSize" gives the maximum image size that the service can return.

Because capability metadata is not included in the base vr:Service resource type, one does not use xsi:type to insert a derived vr:Capability type into the derived vr:Service type. Instead one simply uses the derived vr:Capability type as the type of an element added to the derived vr:Service type's content model.

Example
How a Capability element can be defined to describe the Simple Image Access Protocol...
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
            xmlns:vr="http://www.ivoa.net/xml/VOResource/v1.0"
            xmlns:sia="http://www.ivoa.net/xml/SIA/v1.0"
            targetNamespace="http://www.ivoa.net/xml/SIA/v1.0"
            elementFormDefault="qualified" attributeFormDefault="unqualified"
            version="1.0">

   <xs:import namespace="http://www.ivoa.net/xml/VOResource/v0.10"/>

   <xs:complexType name="SimpleImageAccess">
      <xs:annotation>
         <xs:documentation>
            A description of a particular implementation of the
            standard Simple Image Access Protocol.
         </xs:documentation>
      </xs:annotation>

      <xs:complexContent>
         <xs:extension base="vr:Service">
            <xs:sequence>

               <xs:element name="capability" type="sia:SIACapability">
                  <xs:annotation>
                     <xs:documentation>
                        a description of the behavior and limitations
                        of the SIA implementation.  
                     </xs:documentation>
                  </xs:annotation>
               </xs:element>

            </xs:sequence>
         </xs:extension>
      </xs:complexContent>

   </xs:complexType>

   <xs:complexType name="SIACapability">
      <xs:annotation>
         <xs:documentation>
            The capabilities of an SIA implementation.  
         </xs:documentation>
      </xs:annotation>

      <xs:complexContent>
         <xs:extension base="vr:Capability">

            <xs:sequence>

               <xs:element name="maxRecords" type="xs:int">
                  <xs:annotation>
                     <xs:documentation>
                        The largest number of records that the Image Query web
                        method will return. 
                     </xs:documentation>
                  </xs:annotation>
               </xs:element>

               <!-- other capability metadata -->
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>

</xs:schema>
...and what a supporting instance document would look like.
<resource xsi:type="sia:SimpleImageAccess"
  xmlns="http://www.ivoa.net/xml/VOResource/v1.0"
  xmlns:vr="http://www.ivoa.net/xml/VOResource/v1.0"
  xmlns:sia="http://www.ivoa.net/xml/SIA/v1.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    <!-- the core VOResource metadata -->

    <vr:interface xsi:type="...">
      <!-- interface description -->
    </vr:interface>

    <sia:capability xmlns="http://www.ivoa.net/xml/SIA/v1.0">
       <maxRecords>5000</maxRecords>
       <!-- other capability metadata -->
    </sia:capability>

</resource>

3. The VOResource Metadata

This section enumerates the types and elements defined in the VOResource schema and describes their meaning in terms of the RM.

3.1. The Base Resource Type

A resource, as defined by the RM, is any entity or component of a VO application that is describable and identifiable by a IVOA Identifier. A resource is described using VOResource by an element of the type vr:Resource or one of its legal extensions. The schema definition (below) includes elements that encode the identity, curation, and general content metadata for a resource (see sections 3.1 thru 3.3 of the RM). The RM states that certain metadata are required in a minimally compliant resource description; this requirement is enforced by the VOResource schema definition.

vr:Resource Type Schema Definition
<xs:complexType name="Resource">
   <xs:sequence>

      <xs:element name="title" type="vr:PaddedString"/>
      <xs:element name="shortName" type="vr:ShortName" minOccurs="0"/>
      <xs:element name="identifier" type="vr:IdentifierURI"/>
      <xs:element name="curation" type="vr:Curation"/>
      <xs:element name="content" type="vr:Content">

   </xs:sequence>

   <xs:attribute name="created" type="xs:date"/>
   <xs:attribute name="updated" type="xs:date"/>
   <xs:attribute name="status" default="active"/>
      <xs:simpleType>
         <xs:restriction base="xs:string">
            <xs:enumeration value="active"/>
            <xs:enumeration value="inactive"/>
            <xs:enumeration value="deleted"/>
         </xs:restriction>
      </xs:simpleType>
   </xs:attribute>
</xs:complexType>

The child elements for vr:Resource are described in subsequent sections.

The vr:Resource attributes represent a special class of metadata: they describe the resource metadata description contained within the vr:Resource itself as opposed to the resource being described. Their meaning are as follows:

vr:Resource Attributes
AttributeDefinition
created
Value type: UTC date stamp: vr:UTCDateTime
Semantic Meaning: The date this resource metadata description was created.
updated
Value type: UTC date stamp: vr:UTCDateTime
Semantic Meaning: The date this resource metadata description was last updated.
status
Value type: string, controlled vocabulary: xsd:string
Semantic Meaning: a tag indicating whether this resource is believed to be still actively maintained.
Allowed Values:
active resource is believed to be currently maintained, and its description is up to date (default).
inactive resource is apparently not being maintained at the present.
deleted resource publisher has explicitly deleted the resource.

The following sections define the elements that encode the specific metadata from the RM. In all cases, the semantic meaning of an element is defined by the RM metadatum it corresponds to (labeled "RM Name" below). All rules and advice given in the "Comments" portions in the RM definition apply. Any textual differences in the semantic definitions given below from those given in the RM are intended only for clarification for the XML encoding context.

3.1.1. Identity Metadata

The identity metadata described in the RM (section 3.1) are represented as top-level children of the vr:Resource type.

vr:Resource Identity Metadata Elements
ElementDefinition
title
RM Name: Title
Value type: string: vr:PaddedString
Semantic Meaning: The date this resource metadata description was created.
Occurances: required
shortName
RM Name: ShortName
Value type: string limited to 16 characters or less: vr:ShortName
Semantic Meaning: a short name or abbreviation given to the resource.
Occurances: optional
identifier
RM Name: Identifier
Value type: IVOA identifier URI: vr:IdentifierURI
Semantic Meaning: an unambiguous reference to the resource conforming to the IVOA standard for identifiers [ID]
Occurances: required

Two special types, vr:ShortName and vr:identifierURI are defined to support identity metadata. The vr:ShortName definition enforces the 16-character limit on shortNames.

vr:ShortName Type Schema Definition
<xs:simpleType name="ShortName">
  <xs:restriction base="xs:string">
     <xs:maxLength value="16"/>
  </xs:restriction>
</xs:simpleType>

The vr:IdentifierURI enforces the URI syntax for IVOA Identifiers as defined by the IVOA Identifier standard [ID].

vr:IdentifierURI Type Schema Definition
<xs:simpleType name="IdentifierURI">
  <xs:restriction base="xs:anyURI">
    <xs:pattern value="ivo://[\w\d][\w\d\-_\.!~\*'\(\)\+=]{2,}
(/[\w\d\-_\.!~\*'\(\)\+=]+(/[\w\d\-_\.!~\*'\(\)\+=]+)*)?"/>
  </xs:restriction>
</xs:simpleType>

Two additional types which are not used within the vr:Resource type but are available to support the two components of an IVOA Identifier [ID]: vr:AuthorityID and vr:ResourceKey.

vr:AuthorityID Type Schema Definition
<xs:simpleType name="AuthorityID">
  <xs:restriction base="xs:string">
    <xs:pattern value="[\w\d][\w\d\-_\.!~\*'\(\)\+=]{2,}"/>
  </xs:restriction>
</xs:simpleType>
vr:ResourceKey Type Schema Definition
<xs:simpleType name="ResourceKey">
  <xs:restriction base="xs:string">
    <xs:pattern value="[\w\d\-_\.!~\*'\(\)\+=]+(/[\w\d\-_\.!~\*'\(\)\+=]+)*"/>
  </xs:restriction>
</xs:simpleType>

3.1.2. Curation Metadata

The curation metadata described in the RM (section 3.2) are bundled together into the vr:Resource child element, <vr:curation>. Its content is defined by the vr:Curation complex type.

vr:Curation Type Schema Definition
<xs:complexType name="Curation">
  <xs:sequence>

    <xs:element name="publisher" type="vr:ResourceName"/>
    <xs:element name="creator" type="vr:Creator"
                minOccurs="0" maxOccurs="unbounded"/>
    <xs:element name="contributor" type="vr:ResourceName"
                minOccurs="0" maxOccurs="unbounded"/>
    <xs:element name="date" type="vr:Date" 
                minOccurs="0" maxOccurs="unbounded"/>
    <xs:element name="version" type="vr:PaddedString" minOccurs="0"/>
    <xs:element name="contact" type="vr:Contact"/>

  </xs:sequence>
</xs:complexType>

vr:Curation Metadata Elements
ElementDefinition
publisher
RM Name: Publisher, PublisherID (see type definition below)
Value type: string with optional ID attribute: vr:ResourceName
Semantic Meaning: Entity (e.g. person or organisation) responsible for making the resource available
Occurances: required
Comments: The PublisherID is encoded as an optional attribute
creator
RM Name: Creator, Creator.Logo (see type definition below)
Value type: composite: vr:Creator
Semantic Meaning: The entity (e.g. person or organisation) primarily responsible for creating the content or constitution of the resource.
Occurances: optional; multiple occurances allowed
Comments: If <vr:creator> element appears, it must contain at least a name. If multiple creator elements appear, but only one logo is provided (see type definition below), applications may assume that the one logo applies to all creators.
contributor
RM Name: Contributor
Value type: string with optional ID attribute: vr:ResourceName
Semantic Meaning: Entity responsible for contributions to the content of the resource.
Occurances: optional; multiple occurances allowed
date
RM Name: Date
Value type: UTC time stamp with optional role attribute: vr:Date
Semantic Meaning: Date associated with an event in the life cycle of the resource.
Occurances: optional; multiple occurances allowed
version
RM Name: Version
Value type: string: vr:PaddedString
Semantic Meaning: Label associated with creation or availablilty of a version of a resource.
Occurances: optional
contact
RM Name: Contact, Contact.Name, Contact.Email
Value type: composite: vr:Contact
Semantic Meaning: Information that can be used for contacting someone with regard to this resource.
Occurances: required; multiple occurances allowed

Several of the curation elements (most importantly, <vr:publisher>) make use of the vr:ResourceName type. This type is provides a means of refering to another resource both by name and by its IVOA identifier. Not all resources refered to using this type will necessarily be registered and, therefore, will have an identifier; thus, the identifier (which is encoded as an attribute) is optional.

vr:ResourceName Type Schema Definition
<xs:complexType name="ResourceName">
  <xs:simpleContent>
    <xs:extension base="vr:PaddedString"> 
      <xs:attribute name="ivo-id" type="vr:IdentifierURI"/>
    </xs:extension>       
  </xs:simpleContent>
</xs:complexType>   

The <vr:creator> element is defined by the vr:Creator complex type which bundles together the RM metadata Creator and Creator.Logo.

vr:Creator Type Schema Definition
<xs:complexType name="Creator">
   <xs:sequence>
     <xs:element name="name" type="vr:ResourceName"/>
     <xs:element name="logo" type="xs:anyURI" minOccurs="0"/>
   </xs:sequence>
</xs:complexType>

vr:Creator Metadata Elements
ElementDefinition
name
RM Name: Creator
Value type: string with optional ID attribute: vr:ResourceName
Semantic Meaning: The name and (optionally) the ID of the entity (e.g. person or organisation) primarily responsible for creating the content or constitution of the resource.
Occurances: required
logo
RM Name: Creator.Logo
Value type: URL: vr:paddedURI
Semantic Meaning: URL pointing to a graphical logo, which may be used to help identify the information source
Occurances: optional

The <vr:Date> element's type, vr:Date, is an extension of the UTCDateTime type that adds an optional attribute called role.

vr:Date Type Schema Definition
<xs:complexType name="Date">
   <xs:simpleContent>
      <xs:extension base="vr:UTCDateTime">
        <xs:attribute name="role" type="xs:string" default="representative"/>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>

The purpose of the role attribute is to indicate what aspect of the resource the date describes. This allows several <vr:date> elements to be provided, each with a different role. The possible values for this attribute are not controlled; however, several values are recommended below and may be recognized by applications. Other roles may be given. If a role is not given, applications should interpret the date as representative as defined below.

vr:Date Attributes
AttributeDefinition
role
Value type: string: xsd:string
Semantic Meaning: A string indicating what the date refers to.
Recommended Values:
creation date refers to when the resource was created.
update date refers to when the resource was last updated.
representative date is a rough representation of the time coverage of the resource (default).

It is important to note that the <date> element describes the resource itself, not the resource record that describes it. Dates describing the resource record are covered by vr:Resource attributes created and updated

The <vr:contact> element is defined by the vr:Contact type which bundles together several component pieces of information, including the RM metadata Contact.Name and Contact.Email.

vr:Contact Type Schema Definition
<xs:complexType name="Contact">
  <xs:sequence>

     <xs:element name="name" type="vr:ResourceName"/>
     <xs:element name="address" type="vr:PaddedString" minOccurs="0"/>
     <xs:element name="email" type="vr:PaddedString" minOccurs="0"/>
     <xs:element name="telephone" type="vr:PaddedString" minOccurs="0"/>

   </xs:sequence>
</xs:complexType>

vr:Contact Metadata Elements
ElementDefinition
name
RM Name: Contact.Name
Value type: string with optional ID attribute: vr:ResourceName
Semantic Meaning: The name and (optionally) the ID of the entity (e.g. person or organisation) that can be contacted regarding the resource.
Occurances: required
address
RM Name: n. a.
Value type: string: vr:PaddedString
Semantic Meaning: All components of the mailing address of the contact person or organisation.
Occurances: optional
email
RM Name: Contact.Email
Value type: string: vr:PaddedString
Semantic Meaning: The email address of the contact person or organisation.
Occurances: optional
telephone
RM Name: n. a.
Value type: string: vr:PaddedString
Semantic Meaning: The telephone number of the contact person or organisation.
Occurances: optional
Comments: Complete international dialing codes should be provided.

3.1.3. General Content Metadata

The general content metadata described in the RM (section 3.3) are bundled together into the vr:Resource child element, <vr:content>. Its content is defined by the vr:Content complex type.

vr:Content Type Schema Definition
<xs:complexType name="Content">
  <xs:sequence>

    <xs:element name="subject" type="vr:PaddedString"
                minOccurs="0" maxOccurs="unbounded"/>
    <xs:element name="description" type="vr:PaddedString"/>
    <xs:element name="source" type="vr:Source" minOccurs="0"/>
    <xs:element name="referenceURL" type="vr:PaddedURI"/>
    <xs:element name="type" type="vr:Type" minOccurs="0"/>
    <xs:element name="contentLevel" type="vr:ContentLevel" 
                minOccurs="0" maxOccurs="unbounded"/>
    <xs:element name="relationship" type="vr:Relationship" 
                minOccurs="0" maxOccurs="unbounded"/>

</xs:sequence>
</xs:complexType>

vr:Content Metadata Elements
ElementDefinition
subject
RM Name: Subject
Value type: string: vr:PaddedString
Semantic Meaning: a topic, object type, or other descriptive keywords about the resource.
Occurances: required; multiple occurances allowed
description
RM Name: Description
Value type: string: vr:PaddedString
Semantic Meaning: An account of the nature of the resource.
Occurances: required
Comments: The description may include but is not limited to an abstract, table of contents, reference to a graphical representation of content or a free-text account of the content.
source
RM Name: Source
Value type: a formatted reference (e.g. ADS Bibcode): vr:Source
Semantic Meaning: a bibliographic reference from which the present resource is derived or extracted.
Occurances: optional
referenceURL
RM Name: ReferenceURL
Value type: URL: vr:PaddedURI
Semantic Meaning: URL pointing to a human-readable document describing the resource.
Occurances: required
type
RM Name: Type
Value type: string with controlled vocabulary: vr:Type
Semantic Meaning: Nature or genre of the content of the resource
Occurances: optional; multiple occurances allowed
Allowed Values:
Other resource that does not fall into any of the category names currently defined.
Archive Collection of pointed observations
Bibliography Collection of bibliographic reference, abstracts, and publications
Catalog Collection of derived data, primarily in tabular form
Journal Collection of scholarly publications under common editorial policy
Library Collection of published materials (journals, books, etc.)
Simulation Theoretical simulation or model
Survey Collection of observations covering substantial and contiguous areas of the sky
Transformation A service that transforms data
Education Collection of materials appropriate for educational use, such as teaching resources, curricula, etc.
Outreach Collection of materials appropriate for public outreach, such as press releases and photo galleries
EPOResource Collection of materials that may be suitable for EPO products but which are not in final product form, as in Type Outreach or Type Education. EPOResource would apply, e.g., to archives with easily accessed preview images or to surveys with easy-to-use images.
Animation Animation clips of astronomical phenomena
Artwork Artists' renderings of astronomical phenomena or objects
Background Background information on astronomical phenomena or objects
BasicData Compilations of basic astronomical facts about objects, such as approximate distance or membership in constellation
Historical Historical information about astronomical objects
Photographic Publication-quality photographs of astronomical objects
Press Press releases about astronomical objects
Organisation An organization that is a publisher or curator of other resources
Project A project that is a publisher or curator of other resources
Registry a query service for which the response is a structured description of resources
contentLevel
RM Name: ContentLevel
Value type: string with controlled vocabulary: vr:ContentLevel
Semantic Meaning: Description of the content level or intended audience
Occurances: optional; multiple occurances allowed
Allowed Values:
General Resource provides information appropriate for all users.
Elementary Education Resource provides information appropriate for use in elementary education (e.g. approximate ages 6-11).
Middle School Education Resource provides information appropriate for use in middle school education (e.g. approximate ages 11-14).
Secondary Education Resource provides information appropriate for use in elementary education (e.g. approximate ages 14-18).
Community College Resource provides information appropriate for use in community/junior college or early university education.
University Resource provides information appropriate for use in university education.
Research Resource provides information appropriate for supporting scientific research.
Amateur Resource provides information of interest to amateur astronomers.
Informal Education Resource provides information appropriate for education at museums, planetariums, and other centers of informal learning.
relationship
RM Name: Relationship, RelationshipID
Value type: composite: vr:Relationship
Semantic Meaning: a description of a relationship to another resource
Occurances: optional; multiple occurances allowed

The <vr:source> element's type, vr:Source, is an extension of the vr:PaddedString type that adds an optional attribute called format.

vr:Source Type Schema Definition
<xs:complexType name="Source">
   <xs:simpleContent>
      <xs:extension base="vr:PaddedString">
        <xs:attribute name="format" type="xs:string"/>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>

The format indicates the syntactic format of the value of the <source> element. The possible values for this attribute are not controlled; however, applications should recognize a value equal to bibcode as referring to the standard astronomical bibcode format [Bibcode].

The <relationship> is defined by the vr:Relationship complex type which bundles together the RM metadata Relationship and RelationshipID.

vr:Relationship Type Schema Definition
<xs:complexType name="Relationship">
   <xs:sequence>
      <xs:element name="relationshipType" type="vr:RelationshipType"/>
      <xs:element name="relatedResource" type="vr:ResourceName" 
                  minOccurs="1" maxOccurs="unbounded"/>
   </xs:sequence>
</xs:complexType>

vr:Relationship Metadata Elements
ElementDefinition
relationshipType
RM Name: Relationship
Value type: string with controlled vocabulary: vr:ResourceName
Semantic Meaning: the name of the resource that this resource is related to.
Occurances: required
relatedResource
RM Name: RelationshipID
Value type: string with optional ID attribute: vr:ResourceName
Semantic Meaning: the name of resource that this resource is related to.
Occurances: required, multiple values allowed
Comments: The attribute value provides the RM metadatum RelationshipID.

3.2. Resource Type Extensions

The VOResource schema defines two extensions of the base vr:Resource type for describing two specific types of resources: vr:Organisation and Service. In addition to providing more refined semantic meaning, they add additional metadata for the describing the resource which don't necessarily apply in the generic case.

3.2.1. The Organisation Resource Type

3.2.2. The Service Resource Type

Appendix A: the VOResource XML Schema


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
[xml]
Bray, Tim, Paoli, Jean, Sperberg-McQueen, C. M., Maler, Eve, Yergeau, Francois (editors) 2004, Extensible Markup Language (XML) 1.0 (Third Edition), W3C Recommendation 04 February 2004, http://www.w3.org/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/
[ISO8601]
Wolf, Misha and Wicksteed, Charles 1997, Date and Time Format, http://www.w3.org/TR/NOTE-datetime.
[OAI]
Lagoze, Carl, Van de Sompel, Herbert, Nelson, Michael, and Warner, Simeon 2004, The Open Archives Initiative Protocol for Metadata Harvesting, http://www.openarchives.org/OAI/openarchivesprotocol.html.
[SIA]
Tody, Doug and Plante, Ray 1997, Simple Image Access Specification Version 1.0, http://www.ivoa.net/Documents/WD/SIA/sia-20040524.html.
[ID]
Plante, R., Linde, T., Williams, R., Noddle, K. 2005, IVOA Identifiers v1.1, http://www.ivoa.net/Documents/REC/Identifiers/Identifiers-200505XX.html.
[Bibcode]
Schmitz, M., Helou, G., Dubois, P., LaGue, C., Madore, B., Corwin, H. G., & Lesteven, S. NED and SIMBAD Convention for Bibliographic Reference Coding, http://cdsweb.u-strasbg.fr/simbad/refcode/refcode-paper.html.

Last modified: Sun May 15 18:03:38 2005