view annotate.xml @ 63:9cf99d513197

intro complete
author Henry S. Thompson <ht@markup.co.uk>
date Mon, 12 Jun 2017 13:40:56 +0200
parents e46b3efbe845
children 823ac978f4ab
line wrap: on
line source

<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="../../../lib/xml/doc.xsl" ?>
<!DOCTYPE doc SYSTEM "../../../lib/xml/doc.dtd" >
<doc>
 <head>
  <title>Spreadsheet annotation spec</title>
  <author>Henry S. Thompson</author>
  <date>$Id$</date>
 </head>
 <body>
  <div>
   <title>Introduction</title>
   <p>This is a first pass at defining an annotation menu structure for
spreadsheets. The assumption is that we'll have an 'Annotate' entry in the Excel
right-button menu for selected regions, which will pop up region-appropriate
menus.</p>
  </div>
  <div>
   <title>Top-level menus</title>
   <note>If the selection is a single cell I guess we try popping up a selection type menu,
with choices 'Row', 'Column', 'Matrix' and 'None' (the latter resulting in <code>_Nnnn</code>).</note>
   <p>Right-clicking 'Annotate' when over a selected range will create a new
defined name of the form <code>_Xnnn</code>, where <code>X</code> is one of <code>R</code>,
<code>C</code> or <code>M</code> for <name>r</name>ows (horizontal range
selection), <name>c</name>olumns (vertical range selection) or
<name>m</name>atrix (for two-dimensional range selection) respectively, and
<code>nnn</code> is a serial number for the relevant selection type.</p>
   <p>The comment field (attribute in the XML) of the defined name should contain a
feature-value dictionary, represented in JSON/Python style, that is, using the
following BNF</p>:
   <display><code>fvd := '{' ( fvp ( ',' fvp )* )? '}'
fvp := key ':' value
key := string
value := string | number | fvp | array
string := '"' char* '"'
array := '[' ( value ( ',' value )* )? ']'</code></display>
<p>with whitespace ignored, 'number' being the usual integer or decimal
representation and 'char' being ASCII-only (?).</p>
   <p>If possible, the selected range should appear as the value of the new
name <emph>without</emph> single-quotes.</p>
   <p>Some top-level features should be computed, others require annotator
decision.  Some features are unique to a particular selection type, others are
shared across all or some types.</p>
   <p>Accordingly, in order for the annotator to supply the required
information, a form should pop up with all the features appropriate to the
selection type.  Literal or array-valued form fields will just require a value
menu (allowing multiple selection in the array-valued case), but features with
dictionary values will require cascading sub-forms.</p>
   <p>The sections below tabulate the annotator-supplied features and their
possible values.</p>
  </div>
 </body>
</doc>