<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<DEFANGED_meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
(Copied to the list...hope no-one in the original discussion minds.)
What follows is a discussion
about using plastic messages to select or show columns in a table.<br>
<br>
<br>
Mark Taylor wrote:
<blockquote
cite="mid...@an..."
type="cite">
<pre wrap="">On Tue, 20 Jun 2006, Bob Mann wrote:
</pre>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<pre wrap=""> 1. Selecting columns (rather than rows).
</pre>
</blockquote>
<pre wrap="">So should the message contain some hint about what to do
with the named columns? Should there be one message
showCols( int[] colIds );
or several
showCols( colId );
showCols2( colId1, colId2 );
showCols3( colId1, colId2, colId3 );
? etc. Open questions.
</pre>
</blockquote>
<pre wrap=""> Good question. I can see two different use cases here, which might
call for different messages. In the first Weka/Eirik act as an initial
filter of a dataset before one starts exploring it with, say, TOPCAT. In
that case, one might select, say, 10 columns out of a 50-column table and
then, as you said, the appropriate response from TOPCAT might be to hide
the remaining 40 columns, on the assumption that the user is only going
to work with the selected 10. In the second use case, TOPCAT is just being
used as a 3D display tool, and Eirik might fire a series of messages
saying "make a 3D scatter plot of these three columns" and want TOPCAT
to do just that. Maybe one would want the second use case to be
implemented with a plotCols message, rather than the more general showCols
one which would work for the first one...but I don't know how that would
square with the current philosophy over PLASTIC messaging...
</pre>
</blockquote>
<pre wrap=""><!---->
that sounds about right, and probably more sensible than my initial
thought above.
</pre>
</blockquote>
I think this could spark an interesting debate about how generic
plastic messages should be. To take this example, the two extreme
positions are to have a completely generic
votech.org/votable/showCols(id, cols[]) message leaving it completely
up to the recipient to decide what its being asked to do, and to have
an application-specific message such as<br>
starlink/topcat/create2DPlot(id, col1, col2).<br>
We get "better" interop (in the sense of more apps can play together)
with general messages at the cost of clarity for the end-user and
(maybe) reliability. From the user's point of view, the difference
would be that with general messages they might have to configure the
receiving application to tell it what to do (create a new subset, open
a new plot, overwrite the existing plot...) whereas with a specific
message they'd make the choice in the sending application (right
clicking might show two options: create new subset/open new plot).<br>
A middle ground that might be worth exploring is having a generic
message, but with an optional hint argument to the recipient.<br>
<br>
My gut feeling is that for the user, making a plot of the data in some
columns is a different concept to creating a new subset and so they
should probably be different messages even though they share the same
argument list. Here's how Bob's suggestion (slightly modified) could
work in practice:<br>
<br>
<table border="1" cellpadding="2" cellspacing="2" width="100%">
<tbody>
<tr>
<td valign="top"><b>Recipient</b><br>
</td>
<td valign="top"><b>plotCols(id, cols[])</b><br>
</td>
<td valign="top"><b>selectCols(id, cols[])</b><br>
</td>
</tr>
<tr>
<td valign="top">Topcat<br>
</td>
<td valign="top">Opens a new 2D or 3D cartesian plot depending on
the number of args. Cols>3 are ignored.<br>
</td>
<td valign="top">Creates a new subset consisting only of those
cols. Returns a new id?<br>
</td>
</tr>
<tr>
<td valign="top">VisIVO<br>
</td>
<td valign="top">Opens a new 3D plot, using the cols>3 as
indices into the colourmap, glyph sizes etc....<br>
</td>
<td valign="top">?<br>
</td>
</tr>
<tr>
<td valign="top">TabView<br>
</td>
<td valign="top">Highlights the columns<br>
</td>
<td valign="top">Creates a new subset consisting only of those
cols.<br>
</td>
</tr>
<tr>
<td valign="top">xmdv-lite<br>
</td>
<td valign="top">On the parallel axes plot, highlights the chosen
columns. On the scatter plots, could highlight or show only the
relevant scatter plots<br>
</td>
<td valign="top">New plots only of selected cols<br>
</td>
</tr>
<tr>
<td valign="top">Anomaly Detector<br>
</td>
<td valign="top"><br>
</td>
<td valign="top">Runs the EM-algorithm only on the selected
columns<br>
</td>
</tr>
<tr>
<td valign="top">Aladin<br>
</td>
<td valign="top">Maybe opens VOPlot?<br>
</td>
<td valign="top">create a new pane with the reduced columns?<br>
</td>
</tr>
</tbody>
</table>
<br>
This separation of "showing" and "selecting a subset" makes me think
that we've confounded the two with our showObjects message. I wonder
if we ought to split it so that we can distinguish between creating a
new row subset (a la Topcat) and simply highlighting the selected rows
(a la Aladin). Indeed, perhaps the two "create subset" messages could
be merged into one.<br>
<br>
<br>
<blockquote
cite="mid...@an..."
type="cite">
<pre wrap=""> </pre>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<pre wrap=""> 2. Identifying several sets of rows.
</pre>
</blockquote>
</blockquote>
<blockquote type="cite">
<pre wrap="">Actually you can sort of do this in TOPCAT as it stands. Each received
ivo://votech.org/votable/showObjects message results in the creation
of a new row subset (old ones are not discarded (even if you want them
to be, which admittedly can be an annoyance)). Within TOPCAT you
can then select which subsets are plotted etc.
</pre>
</blockquote>
<pre wrap=""> OK - that is very useful. Do you give the row subset a name in
the message in which you define it?
</pre>
</blockquote>
<pre wrap=""><!---->
No, TOPCAT assigns names automatically - currently e.g. weka-1, weka-2,
weka-3, .... May or may not be ideal for your purposes.
Mark
</pre>
</blockquote>
<br>
<br>
<div class="moz-signature">-- <br>
<hr>
<center>AstroGrid/VOTech<br>
&<br>
Institute for Astronomy, Edinburgh<br>
<a href="skype:johndavidtaylor?chat">Skype:johndavidtaylor</a><br>
</center>
<hr>
</div>
</body>
</html>
|