Just a word (or two) in defence of relational databases.
Quoting Roy Williams <roy-at-cacr.caltech.edu>:
> (1) ADQL is semantically similar to SQL, it is something for querying
> relational databases like star catalogs
A star catalog is not a relational database. A star catalog could be expressed as a relation within a relational database. or as a XML document, eg a VOTable.
>
> (2) Xquery is for querying hierarchical databases (like XML documents). (see
> example* below). Xquery is made for XML (which VOResource is), and there are
> existing implementations.
>
> I believe that we are agreed that an SQL-type language is best for
> relational databases of stars,
SQL is a very good language for relational databases Relationalships in such databases can be quite complex, not just a star catalog.
> and that our agreement from Cambridge covers
> this. However, the registry is different from a star catalog in several ways
> (a) the structure is more complex, with repeated elements (eg authors), and
Repeated elements are obviously not handled in a relational database within a single table; furthermore N to M relationships can be handled in a relational database by adding so called junction tables. A registry could very well be implemented using a relational database.
> (b) the amount of data is much less. In other words, the registry is
> *metadata*, not *data*.
Databases are a very natural place for storing metadata. At least this is what I have been doing in my last ten years ... And SQL is out there since the seventies.
> There is not much experience on querying these --
> because we do not actually have any significant VO registries yet!
>
> Querying the registry is not a solved problem (like SQL and star catalogs).
> There is no benefit in entrenching ourselves in a position. I think we in
> the IVOA should continue to investigate ways to make client software for VO
> registries, and hope that by this time next year we will be sufficiently
> informed to consider a standards process.
>
> Roy
>
> --------------------------------
> * Xquery example (approx) -- would select the Messier catalog from the
> resources in the Caltech registry:
>
> <query>
> { for $b in document("nvo.caltech.edu/registry.xml")/VOResource
> where $b/Curation/Creator="Messier" and $b/@date<1800
> return <resource year="{$b/@date}"> {$b/Curation/Title} </resource> }
> </query>
>
To answer to Tony:
In SQL this will be somthing similar:
select a.resource_id, a.resource_title, a.resource_date
from Resources a, Resources_Curators b
where a.resource_id = b.resource_id
and b.creator = "Messier"
I do not see your point, sorry Roy.
I do not want people to confuse the concept described in a schema (like the SRM) with the way the schema is implemented. I only need a good schema. After that, nobody would stop me to create my own copy of the registry using the technology I prefer, if I so like, provided that I comply to the defined and agreed upon standards for its interfaces.
Alberto Received on 2003-10-03Z01:37:51