| 1 | = Technical Teleconference, 2005 October 28 = |
| 2 | |
| 3 | == Agenda / Context == |
| 4 | |
| 5 | Igor requested a meeting to discuss how to use VOTable within VSO to make it easier for integration with other Virtual Observatories. |
| 6 | |
| 7 | {{{ |
| 8 | Date: Thu, 27 Oct 2005 19:18:50 -0700 |
| 9 | From: Igor Suarez-Sola |
| 10 | To: Joe Hourcle, Karen Tian, Alisdair Davey |
| 11 | Subject: VOTable for VSO |
| 12 | |
| 13 | |
| 14 | Hi all, |
| 15 | |
| 16 | I want to clarify that the adoption of the VOTable format is for our |
| 17 | metadata transactions and not scientific use (e.g. handling of fits |
| 18 | files etc) and that the driver for this change is mainly performance. |
| 19 | Although if we can be compliant with the VO all the better. |
| 20 | |
| 21 | Also , hopefully, the adoption of the VOTable would be used internally |
| 22 | by the CORE, GUI, Catalogs, CART and providers ... |
| 23 | See attached examples of VOTable.xml and VSOTable.xml (the only |
| 24 | difference being in the TABLEDATA part). Both formats can be handle |
| 25 | internally. However the interfaces can switch to one another and that'll |
| 26 | be toggled by passing a flag in the request message. The VSOTable gains |
| 27 | a little bit of performance over the <TR><TD> one .. mainly in memory |
| 28 | usage for large sets. |
| 29 | |
| 30 | The VOTable structure used in its simplest form E.g. "VOTable.xml" is |
| 31 | quite straight forward. However I see how it can get awkwardly complex |
| 32 | as we get into rough territory like keeping state, linking results set |
| 33 | with Queries etc. For instance for catalog entries in one ResultSet |
| 34 | could yield a new query and to a new result set. Although in principle |
| 35 | all that could be achieved by sticking to the VOTable schema. It can get |
| 36 | very twisted and I don't quite see the advantage of that ... and that's |
| 37 | why I think the VOTable format should be used only for the search |
| 38 | results, while everything else internal to the VSO like states, link to |
| 39 | other queries and links to result set are handle as we do now in our own |
| 40 | format. (mmmh ... it now sounds like the obvious thing to do ... |
| 41 | probably you'll be thinking what the hell is he talking about ... ) |
| 42 | |
| 43 | |
| 44 | Anyway going back to the VOTable.xml example ... things I want you to |
| 45 | pay attention to ... |
| 46 | 1. We can have multiple RESOURCE elements |
| 47 | We can take the RESOURCE element as the equivalent of one |
| 48 | provider "search results" |
| 49 | a) use the DEFINITIONS element to specify the provider and |
| 50 | version maybe other information related to the provider?? |
| 51 | b) The TABLE element will be the actual result set |
| 52 | I- Use the PARAM element to pass information relative |
| 53 | to the search result namely no_of_records_found and no_of_records_returned |
| 54 | II - A number of info messages (we can't put much |
| 55 | granularity there but might suffice). If we want something more complex |
| 56 | like message type , level of debugging etc we would have to bend the |
| 57 | schema a little bit. |
| 58 | |
| 59 | 2. Alternatively we could have one RESOURCE and multiple TABLE elements |
| 60 | where each TABLE will be the equivalent to one provider "search results" |
| 61 | see attached "VOTable_2.xml" and the version and provider information |
| 62 | goes as PARAM sub-elements. Note that the xml schema attached is version |
| 63 | 1.0 and doesn't seem to allow that, however a pdf I have on VOTable 1.1 does |
| 64 | |
| 65 | 3. The other issue is if you want to pass or keep the 'query input |
| 66 | parameters' in the VOTable ... probably not but I thought of asking ... |
| 67 | |
| 68 | |
| 69 | Unfortunately I can't show you the code at this time. I thought I could |
| 70 | give it to you today but I lost some time thinking in generalizing the |
| 71 | decoding of the VOTable xml. To be honest is quite straight forward as |
| 72 | long as we keep it simple . I.e the VOTable for search results only. |
| 73 | However the handling on the provider side and the integration with the |
| 74 | DataProvider.pm is mostly done as there weren't much to change there. So |
| 75 | I'm finalizing the xml decoder for the VOTable .. and that will take |
| 76 | tomorrow and then over the weekend I wrap up the test files and |
| 77 | documentation ... yes Joe you heard/read well 'I am DOCUMENTing' as I |
| 78 | go along ... ;-) ... so by moday you could have a look at it .. sorry |
| 79 | for the delay! |
| 80 | |
| 81 | |
| 82 | Talk to you tomorrow! |
| 83 | |
| 84 | Igor |
| 85 | }}} |
| 86 | |
| 87 | == Decisions == |
| 88 | |
| 89 | {{{ |
| 90 | Should we extend / modify VOTable? |
| 91 | |
| 92 | - Don't modify the structure. |
| 93 | - Maybe add attributes if needed for extra VSO information |
| 94 | - Try to find some VOTable folks, so we can ask why they laid it |
| 95 | out how they did, and if they have any special intent for |
| 96 | 'resource', etc. |
| 97 | - Igor might have local folks to ask |
| 98 | - Joe might go to the SPASE meeting next week, and has |
| 99 | some local folks at GSFC to look up |
| 100 | - We should try to make our format readable by VOTable tools. |
| 101 | - Need to find what VOTable tools exist |
| 102 | http://viewcvs.cacr.caltech.edu/us-vo/viewcvs.cgi/contrib/VOTable/ |
| 103 | |
| 104 | - Try to come up with something workable, and see how well it |
| 105 | performs (speed, memory usage, compatability w/ existing tools), |
| 106 | rather than try to worry about it beign perfect in the first |
| 107 | revision. |
| 108 | |
| 109 | Speed / Memory optimizations |
| 110 | |
| 111 | - Joe will look at the serializer bits, and see if we can avoid |
| 112 | deserializing the content in the Core, so it's passed through as |
| 113 | an xml string |
| 114 | - May have to parse for version compatability issues (eg, |
| 115 | deal with outdated providers and/or clients) |
| 116 | - Get something working first, then find bottlenecks & optimize. |
| 117 | }}} |