Hi Jonathan,
nice piece of work. I send you here what we had already compiled and showed in Beijing. We would obviously like to be part of the definition of UFIs, as they are of the utmost importance for discovery (ADQL) purposes, from which the issue was raised the first time.
The attached (see below) summary was compiled in April this year by Aurelien Stebe from our work here (Aurelien, Inaki, Alberto, Jesus and myself) after discussions with you and others prior to Beijing. I have changed unique UTYpes for UFIs to follow your new naming...
I also attach our possible answer to your open questions.
I am not sure I will be able to allocate much on our discussion for UTypes in our -single- VOQL session. In Beijing we agreed that you and myself would initiate this work, but there has not been much coordination and I am afraid that just a small bit on the last part of our single VOQL session might not be enough...
Maybe we have the chance to try to allocate more time if we meet during ADASS....
We keep in touch.
Cheers,
P.
On Unique UTYpes (====> UFIs in the new nomenclature)
UFIs should be *unique* identifiers for elements in a DM.
They could respect the following BNF (from Alberto) :
<alpha> ::= a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z
|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z
<digit> ::= 0|1|2|3|4|5|6|7|8|9
<char> ::= <alpha>|<digit>|-|_
<period> ::== .
<colon> ::== :
<word-component> ::= <alpha>|<digit>|<word-component><char>
<namespace-ref> ::= <word-component>
<word> ::= <word-component>|<word><period><word-component>
<UFI> :: = <namespace-ref><colon><word>|<word>
that is for ex: char:Axis.Time.start
By uniquely pointing at an element in a DM both the type and the usage of that element is known (should be clear in the DM). UFIs could be constructed by reading the DM UML diagram from the root and writing in sequence the names of the entities separated by single dots until reaching the desired information to describe. Hence, the UML is the normative info and the UFis should stem from it automatically.
A convention might be to write UFIs following OO names case :
"classes" first letter uppercase, following words first letter
uppercase, all the rest lowercase.
The namespace prefix to use should be fixed by the DM doc. (it is the
case more or less with "spec" "char" or "ssa")
New UFIs for attribute specification (filtering)
The proposal : write it like this => char:Axis.Spatial [coordSys="FK5"].Center.ra
A few things to discuss: use square brackets or curly brackets ? I would avoid parenthesis and XML type tags because already present in an ADQL syntax.
force quotes around string type values ? or just write [coordSys=FK5]
allow multiple conditional filters ? like [coordSys="FK5" and epoch="J200"]
or even char:Axis.Spatial[coordSys="FK5"].Center [unit="deg"].ra
If we want Registry people to use this also, they will want it to be fully compatible with XPath (especially AstroGrid). That is, square brackets, with quotes and "@" identifier for attributes (ex: char:Axis.Spatial[@coordSys="FK5"].Center.ra) .... they might even want slashes instead of dots. .... and meaningful namespaces => no "char:" if it is not declared and is the actual NS in the schema.
Cheers,
P.
On Sep 18, 2007, at 2:38 PM, Jonathan McDowell wrote:
> > Dear DM team, > I have prepared a note on my view of the role and syntax of UTYPEs > (data model field labels) and their relationship to what I call UFIs > (ways to describe/locate uniquely a piece of information in a DM > instance), > to set things up for discussion in Cambridge. > The doc is > http://hea-www.harvard.edu/~jcm/vo/docs/utype/ut2.pdf > > See you in the UK > Jonathan McDowell _________________________________________Pedro Osuna Alcalaya
European Space Agency (ESA)
European Space Astronomy Centre (ESAC)
Science Operations Department (SCI-O)
Science Archives and Computer Support Engineering Unit (SCI-OE)
e-mail: Pedro.Osuna-at-esa.int
Tel + 34 91 813 13 14 Fax: +34 91 813 11 72