Browse Prior Art Database

Bidirectional Language Segment Processing

IP.com Disclosure Number: IPCOM000107615D
Original Publication Date: 1992-Mar-01
Included in the Prior Art Database: 2005-Mar-22
Document File: 3 page(s) / 123K

Publishing Venue

IBM

Related People

Gabbay, Y: AUTHOR [+5]

Abstract

Segments are groups of characters within a field that have an orientation which differs from that of the field or of the segment that they are nested in. Normally a segment consists of a string of consecutive characters in the Source Buffer and within a field which have the same or higher character nesting levels.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 47% of the total text.

Bidirectional Language Segment Processing

       Segments are groups of characters within a field that
have an orientation which differs from that of the field or of the
segment that they are nested in.  Normally a segment consists of a
string of consecutive characters in the Source Buffer and within a
field which have the same or higher character nesting levels.

      Within a segment the condition of Split Segment or Double Split
Segment may exist. This special case occurs when the Cursor Nesting
Level is less that that of the nesting level of the cursored
position.  The segment level is one of the character attributes in
the Source Buffer data. Segments are processed from the Source Buffer
to the Presentation Space and are manipulated relative to their
position in the Source Buffer row by the logical steps shown below.

      The examples below assume two levels of segment nesting. Each
second level segment in a row in the Source Buffer is reversed and
has its level reduced by one to a first level segment. This may now
be a part of a larger first level segment. Each first level segment
in the row is then reversed and has its level reduced to level zero.
Then all characters in the row are at level zero. The sequencing in
this logical row is ready for display in the Presentation Space.

      It should be noted that transformations do not change the
Source Buffer, or affect it in any way.  The transformations operate
on the Presentation Space and occur when data is moved from the
Source Buffer to the Presentation Space.

      Transformations are performed on a line by line basis. If a
field spans several lines, the transformations are made separately on
each part of the field in each line. Thus, if a segment spans from
line to line, the part of the segment on the first line is reversed
first, and the part of the segment on the next line is then reversed.
This insures that data is not moved from one line to another as a
result of a transformation.

      In the examples below, left-to-right languages, such as
English, are shown as upper case characters and right-to-left
languages, such as Arabic and Hebrew, are shown as lower case. The
numbers above the characters shown in the Source Buffer represent the
nesting level contained in the character attribute.  The symbol @
represents the field attribute position.

      If the Source Buffer contents are:
  00000000000000011111111111222111111111111100000000000
 @MY ADDRESS IS: jerusalem, 123 roses street RIGHT NOW.

      After the first transformation the numerals 123 are reversed:
  00000000000000011111111111111111111111111100000000000
 @MY ADDRESS IS: jerusalem, 321 roses street RIGHT NOW.

      After the second transformation the segment 'jerusalem, 321
roses street' is reversed.  The nesting levels are reduced to zero
and the visual display for a resultant left-to-right field is:
 @MY ADDRESS IS: teerts sesor 123 ,melasurej RIGHT NOW.
when di...