| 5. Matching procedure for searching
      in sign language texts Having document servers able to serve sign
      language texts stored in SWML would be almost useless if one
      couldn't define searching procedures for such texts. However, there is a major problem in searching
      sign languages texts: dealing with the small graphical variations
      people can imprint in the way they write the same signs. The
      SignWriting system distinguishes explicitly some graphical properties
      of the symbols, like rotation and flop, for example, but does
      not distinguish (neither identify) tiny variations due to vertical
      and/or horizontal displacements of symbols within signs, because
      such values aren't discretized in the system (as opposed to,
      e.g., rotation, which can only assume a few set of possible discretevalues). The solution we've found to allow the user
      to control the criteria to be used for judging on the similarity
      of two signs is to define a kind of degree of similarity between
      the component symbols of a sign, assuring that two corresponding
      symbols should have the same symbol type, rotation and flop,
      but allowing them to have some variation on their relative positions
      within the respective signs.. This kind of similarity is formalized
      here as a parameterized, reflexive and symmetric relation, that
      we call sign similarity relation. 
 5.1. Basic Definitions and Geometric
      Considerations Each SignWriting symbol can be characterized,
      in principle, by three basic features: its shape number, its
      filling information, and its so-called variation. Let s be a SignWriting symbol.
      Let t be its symbol shape, let f = 0,1,2,3,4,5
      be its filling information (which, e.g., codes both the way hands
      are facing the signer and if they are in a horizontal or in vertical
      plane), and let v, the variation, be complementary information
      about the symbol. The identification tuple for symbol
      s can thus be defined as the tuple ids=(t,f,v),
      allowing us to identify the symbol with its identification tuple. A set of symbols that represent the same
      essential linguistic information, having the same symbol shape
      and differing only in their filling or variation information,
      is called a symbol group. Each symbol group is a class
      of equivalence represented by the basic symbol, whose
      identified tuple is ids = (t,0,0). For any symbol s (with its shape,
      fill and variation information) of any symbol group, s
      can - in principle - be given two additional spatial information:
      rotation, denoted by r, and flop, denoted
      by fl, where r = 0,1,2,3,4,5,6,7 indicates a counter
      clockwise rotation applied to s (given in intervals of
      45 degrees), and fl is a Boolean value indicating if the
      symbol is vertically mirrored or not, relative to the basic symbol.
      A symbol with such additional information is called an oriented
      symbol, and is identified by the tuple (ids, r, fl),
      where ids is the symbol identification tuple. Example:
      The symbol group called index, whose symbols represent
      hands with index finger straight up and closed fist, is shown
      in the figure below. Each symbol s in the group is identified
      by a tuple ids = (0,f,0): shape number 0, f=0,1,...,5
      (from left to right in the figure), and variation 0. The
      symbols in the first line have the basic orientation (no rotations,
      no flop) and are identified by codes of the form (ids,0,0).
      In the second line, a rotation of 45 degrees was applied to each
      symbol, and the symbols in that line are thus identified by (ids,1,0).
      In the third and fourth lines, there are flopped symbols, identified
      by (ids,0,1) (with no rotations) and (ids,7,1)
      (with rotations of 315 degrees).The group of symbols called index,
      which represents hands with index finger straight up and closed
      fist, and some of its rotated and flopped symbols. A symbol-box is the least box that
      contains a symbol. It is identified by sb = (x,y,w,h),
      where x and y are, respectively, the horizontal
      and vertical coordinates of the upper left corner of the symbol_box
      (relative to the upper left corner of the sign-box containing
      the symbol_box ñ see below), w is its width and
      h is its height. Symbol_boxes serve the purpose of indicating
      the placement of symbol instances within signs. A symbol instance,
      that is, an occurence of an oriented symbol within a sign, is
      defined as a pair si = (s;sb), where s = (ids;r;fl)
      is an oriented symbol and sb is a symbol box. A sign, denoted by Sg, is
      a finite set of symbol instances. A sign_box is the least
      box that contains a sign. It is identified by Sgb = (w,h),
      where w is the box's width and h is its height.
      A sign instance is a sign Sg together with its
      sign_box Sb and an index j indicating the position
      of the sign within a sign sequence (a phrase in sign language)..
      It is represented by the tuple Sgi = (Sg;Sgb;j). Remark:
      All the definitions presented above are reflected in the SWML
      format. Note, in particular, that as defined above, sign_boxes
      (and consequently, sign instances) have no coordinate information.
      This is so because, in the current version of SWML, sign language
      texts are treated as simple strings of signs, with no formatting
      information. The format in which texts are rendered is left completely
      to the discretion of the application.A sign instance for the sign ìideaî
      in LIBRAS. Example:
      The representation in SWML of the sign for ìideaî
      in LIBRAS (see figure above) is: 
        <sign_box> <!-- sign "idea" in LIBRAS
        --> <symbol x="20" y="9"> <!-- the head --> <shape number="215" fill="1"
        variation="0"/> <transformation rotation="3"
        flop="0" /> </symbol> <symbol x="15" y="33"> <!-- the arrow --> <shape number="114" fill="1"
        variation="1"/> <transformation rotation="7"
        flop="0" /> </symbol> <symbol x="15" y="27"> <!-- the asterisk --> <shape number="87" fill="1"
        variation="0"/> <transformation rotation="0"
        flop="0" /> </symbol> <symbol x="23" y="28"> <!-- the hand --> <shape number="0" fill="1"
        variation="1"/> <transformation rotation="1"
        flop="0" /> </symbol> </sign_box>
       |