xtype: similarity to VODataService's externalType
Douglas Tody
dtody at nrao.edu
Thu May 28 11:22:23 PDT 2009
Hi -
As I mentioned in the VOTable session, we need to be very careful
to distinguish XTYPE from UTYPE. So XTYPE is used to define a
"custom type". But an "abstract type" sounds very similar, but can
be an object or data model, which is where UTYPE is already used.
The distinction should be that anything which has an XTYPE is an
atomic type which could be used anywhere (not defined as an element of
some data model), and which can be mapped to a primary type such as
any VOTable datatype. Basically it is used to extend the "machine"
level typing system to say things such as a primitive type of string
contains a timestamp or STC-S region.
We can probably ensure against semantic confusion by insisting that an
XTYPE be storable in a single item of primitive type, and manipulated
atomically as a primitive type would be, at the layer where the type
is defined. It would be possible to abuse this simple concept by
serializing an object as a string or blob, but if it can nonetheless
be manipulated as an atomic object at the level where the datatype
is defined (as in storing an object in a field of a table) this might
still be ok.
Hence a FIELD or PARAM (and maybe INFO for consistency although I
would be happy with only having string there) can have an XTYPE,
but GROUP should not, nor any higher level non-atomic construct
which has some internal structure. If it can't have a "datatype",
it can't have an XTYTPE. This is for VOTable, but if VODataService
deals with this as well it should be consistent.
- Doug
On Thu, 28 May 2009, Ray Plante wrote:
> Hi VOTablers,
>
> As discussed in the last VOTable session in Strasbourg, we are considering
> adding a new FIELD attribute called xtype (or exttype or externalType).
> As I mentioned, this is very similar to an attribute availble in
> VODataService for describing a table column.
>
> For reference, here's how the VODataService Document
> (http://www.ivoa.net/Documents/latest/VODataService.html) describes
> them...
>
> More descriptive information about the type can be provided via the
> extendedType and extendedSchema, which provide an alternate data type
> name. It's expected that this name will only be understood by a special
> subset of applications. The name given in the element content, then,
> represents a more commonly understood "fall-back" type.
>
> extendedType Value type: string: xs:string.
> Semantic Meaning: the data value represented by this
> type can be interpreted as of a
> custom type identified by the value
> of this attribute.
> Occurrences: optional
> Comments: The name implies a particular
> expected format for the data
> value that can be parsed into a
> value in memory.
>
> If an application does not recognize
> this extendedType, it should attempt
> to handle value assuming the type
> given by the element's value.
> "string" (or its equivalent) is a
> recommended default type.
>
> This element may make use of the
> extendedSchema attribute and/or any
> arbitrary (qualified) attribute to
> refine the identification of the
> type.
>
> extendedSchema Value type: URI: xs:anyURI.
> Semantic Meaning: An identifier for the schema that
> the value given by the extended
> attribute is drawn from.
> Occurrences: optional
> Comments: This attribute is normally ignored if
> the extended element is not present.
>
> hope this is helpful for reference.
>
> cheers,
> Ray
>
More information about the votable
mailing list