<div dir="ltr">Hi Gerard,<br><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 10, 2015 at 4:33 PM, glemson1@jhu <span dir="ltr">&lt;<a href="mailto:glemson1@jhu.edu" target="_blank">glemson1@jhu.edu</a>&gt;</span> wrote:<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
One might argue that do not really care about a data model at all, as they do not care about structure.</blockquote><div><br></div><div>Well, one might argue either way, and probably the definitions in the mapping document would have benefitted from some feedback ;)</div><div><br></div><div>When it says that naive clients are not (necessarily) interested in the structure of the instance, I mean that they may be after a few items in a response that is probably already somewhat flat. One example can be the DAL client that is only interested in a few vodml-ids/utypes. A slightly more complicated case is an STC library that can convert coordinates into different frames: it would not be interested in what the coordinates represent inside the larger data model, and in this sense it is not interested in the structure of the instance in which the STC positions are nested: it just goes after all the coordinates in the file and converts them according to the user&#39;s input, ignoring everything else.</div><div><br></div><div>But you are probably right that the way it is phrased makes it seem like a naive client is not interested in any structure at all, and that is not true. At the very least it needs to read the VOTable structure and some (albeit simple) STC structures.</div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Do you think we can get some concrete examples of these based on a realistically (vodml-)annotated votable?<br></blockquote><div><br></div><div>I think we should definitely reboot the prototyping efforts and validate the suggested VOTable changes. After more than two years of documenting, prototyping, and implementing I am not particularly excited to start everything over, but this is just the way it is. What we learned in the past can still be valuable and it is not like we are starting from scratch.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
Your advanced clients seem to be still naïve by my definition, only thing they can do is understand a data model.<br>
Would they still &quot;need&quot; the multiple VODML/TYPE elements?<br></blockquote><div><br></div><div>As I said, and as Pat I believe remarked, multiple TYPEs can be used to optimize the discovery of instances of certains types in a way that is compatible with the extensibility requirement, which is a requirement we decided to support when we started three years ago. We can do without them, but I think dropping them would make the life of naive clients (in the sense described by the mapping document) somewhat less robust.</div><div><br></div><div>We can indeed question the whole Mapping specification again in ways that are not just syntactically different, and explore other solutions. In that case indeed you probably don&#39;t even need multiple TYPEs as an optimization prop.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
Your guru clients are my meta-clients I think. So you do not have sophisticated clients as I define them. I.e. those that are able to parse VO-DML documents if necessary, but still only interested in a particular data model about which they know the esemantics. Does this mean we need 4 categories In our discussion?<br></blockquote><div><br></div><div>I don&#39;t read in your comments anything that seems to require a fourth category. In the introduction to the clients definition it is said that this is a crisp classification but that in real life clients would probably be hybrids. Take Iris as an example: there is no way Iris can assume knowledge of every possible extension of the SED-related Data Model. Iris will use some of the types defined in several data models to provide scientific tools that have to do with SEDs. However, it can still provide the Metadata Browser, that is a DM-agnostic exploration tool the user might find rather useful to filter and manipulate the data. In this sense Iris would probably be a mix of Guru, Advanced, and maybe even Naive code.</div><div><br></div><div>Your comments, to me, seem to fall in between the crisp categories defined in the mapping document, not outside the perimeter they define.</div><div><br></div><div>Omar.</div><div><br></div><div>P.S. In my previous email I might have mixed up the VOTable change proposals, but that should have been clear from what I argued. I believe 4c is the only proposal that does not have ALTTYPE but allows for multiple types. There seems to be consensus that we can do without the multiple TYPEs, so my vote is for a slightly different version of 4c where the TYPE multiplicity is bound to 0..1. This can be turned into an open multiplicity in the future if we think we need multiple TYPEs afterall.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
Cheers<br>
Gerard<br>
<span class="im"><br>
&gt; -----Original Message-----<br>
&gt; From: Laurino, Omar [mailto:<a href="mailto:olaurino@cfa.harvard.edu">olaurino@cfa.harvard.edu</a>]<br>
&gt; Sent: Tuesday, March 10, 2015 3:39 PM<br>
&gt; To: gerard.lemson@gmail<br>
&gt; Cc: Tom Donaldson; IVOA Applications WG; &lt;<a href="mailto:dm@ivoa.net">dm@ivoa.net</a>&gt;<br>
&gt; Subject: Re: regarding ALTTYPE [was RE: vo-dml in votable]<br>
&gt;<br>
&gt; Hi Gerard,<br>
&gt;<br>
&gt;<br>
&gt; On Tue, Mar 10, 2015 at 12:32 PM, gerard.lemson@gmail<br>
</span><div class=""><div class="h5">&gt; &lt;<a href="mailto:gerard.lemson@gmail.com">gerard.lemson@gmail.com</a> &lt;mailto:<a href="mailto:gerard.lemson@gmail.com">gerard.lemson@gmail.com</a>&gt; &gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;       In this context, some of my questions are:<br>
&gt;       1) is my characterisation of naive clients above correct, and if not<br>
&gt;       complete, what does it miss?<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; The definitions for so called naive, advanced, and guru clients are in the old<br>
&gt; Mapping document, i.e. the one we presented in Heidelberg:<br>
&gt; <a href="http://volute.googlecode.com/svn/trunk/projects/dm/vo-dml/doc/UTYPEs-" target="_blank">http://volute.googlecode.com/svn/trunk/projects/dm/vo-dml/doc/UTYPEs-</a><br>
&gt; WD-v.0.x.pdf<br>
&gt;<br>
&gt;<br>
&gt; I report them here for convenience:<br>
&gt;<br>
&gt; This document defines a complete, unambiguous, standard specification that<br>
&gt; can be used to serialize and de-serialize instances of Data Model types. It was<br>
&gt; designed to be simple and straightforward to implement by Data Providers and<br>
&gt; by different kind of clients.<br>
&gt;<br>
&gt; We can classify clients in terms of how they parse the VOTable in order to<br>
&gt; harvest its content. Of course, in the real word such distinction is somewhat<br>
&gt; fuzzy, but this section tries and describe the different levels of usage of this<br>
&gt; specification.<br>
&gt;<br>
&gt; Naïve clients<br>
&gt; We say that a client is naïve if:<br>
&gt;   i) it does not parse the VO-DML description file<br>
&gt;   ii) it assumes the a priori knowledge of one or more Data Models<br>
&gt;   iii) it discovers information by looking for a set of predefined UTYPEs in the<br>
&gt; VOTable In other terms, a naïve client has knowledge of the Data Model it is<br>
&gt; sensitive to, and simply discovers information useful to its own use cases by<br>
&gt; traversing the document, seeking the elements it needs by looking at their<br>
&gt; @utype attribute. Examples of such clients are the DAL service clients that allow<br>
&gt; users to discover and fetch datasets. They will just inspect the response of a<br>
&gt; service and present the user with a subset of its metadata. They do not reason<br>
&gt; on the content, and they are not interested in the structure of the serialized<br>
&gt; objects. If such clients allow users to download the files that they load into<br>
&gt; memory, they should make sure to preserve the structure of the metadata, so to<br>
&gt; be interoperable with other applications that might ingest the same file at a<br>
&gt; later stage.<br>
&gt;<br>
&gt; Advanced clients<br>
&gt; We say that a client is advanced if:<br>
&gt;   i) it does not parse the VO-DML description file<br>
&gt;   ii) it is interested in the structure of the serialized instances<br>
&gt;   iii) can follow the mapping patterns defined in this specification, for example<br>
&gt; collections, references, and inheritance41<br>
&gt;<br>
&gt; Examples of such clients are science applications that display information to the<br>
&gt; user in a structured way (e.g. by plotting it, or by displaying its metadata in a<br>
&gt; user-friendly format), that reason on the serialized instances, perform<br>
&gt; operations on those instances, and possibly allow the users to save the<br>
&gt; manipulated version of the serialization. Notice that the fact that an application<br>
&gt; does not directly use some elements that are out of the scope of its<br>
&gt; requirements does not mean that the application cannot provide them to the<br>
&gt; user in a useful way. For example, an application might allow users to build<br>
&gt; Boolean filters on a table, using a user-friendly tree representing the whole<br>
&gt; metadata. This exposes all the metadata provided by the Data Provider in a way<br>
&gt; that might not be meaningful for the application, but that may be meaningful for<br>
&gt; the user. Notice, also, that advanced clients may be DM-agnostic: for instance,<br>
&gt; an Advanced Data Discovery application may allow the user to filter the results<br>
&gt; of a query by using a structured view of its metadata, even though it does not<br>
&gt; possess any knowledge of Data Models.<br>
&gt;<br>
&gt; Guru clients<br>
&gt; We say that a client falls into this category if:<br>
&gt;   i) it parses the VO-DML descriptions<br>
&gt;   ii) it does not assume any a priori knowledge of any Data Models.<br>
&gt;<br>
&gt; Such applications can, for example, dynamically allow users and Data Providers<br>
&gt; to map their files or databases to the IVOA Data Models in order to make them<br>
&gt; compliant, or display the content of any file annotated according to this<br>
&gt; standard. This specification allows the creation of universal validators equivalent<br>
&gt; to the XML/XSD ones. It also allows the creation of VO-enabled frameworks and<br>
&gt; universal libraries. For instance, a Python universal I/O library can parse any<br>
&gt; VOTable according to the Data Models it uses, and dynamically build objects on<br>
&gt; the fly, so that users can directly interact with those objects or use them in their<br>
&gt; scripts or in science applications, and then save the results in a VO-compliant<br>
&gt; format. Java guru clients could automatically generate interfaces for<br>
&gt; representing Data Models and dynamically implement those interfaces at<br>
&gt; runtime, maybe building different views of the same file in different contexts.<br>
&gt; Notice that Guru frameworks and libraries can be used to build Advanced or<br>
&gt; even Naïve applications in a user-friendly way, abstracting the developers from<br>
&gt; the technical details of the standards and using first class scientific objects<br>
&gt; instead.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt;<br>
&gt; Omar Laurino<br>
&gt; Smithsonian Astrophysical Observatory<br>
&gt; Harvard-Smithsonian Center for Astrophysics<br>
&gt; 100 Acorn Park Dr. R-377 MS-81<br>
&gt; 02140 Cambridge, MA<br>
&gt; <a href="tel:%28617%29%20495-7227" value="+16174957227">(617) 495-7227</a><br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">Omar Laurino<br>Smithsonian Astrophysical Observatory<br>Harvard-Smithsonian Center for Astrophysics<div><font color="#999999">100 Acorn Park Dr. R-377 MS-81</font></div><div><font color="#999999">02140 Cambridge, MA</font><br><span style="color:rgb(153,153,153)"><a value="+16174957227" style="color:rgb(17,85,204)">(617) 495-7227</a></span></div></div></div>
</div></div>