| | 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 | }}} |