Bi-directional display
First Claim
1. A method of converting a logically ordered character stream into a character stream suitable for display by a computer and comprehension by a user, said logically ordered character stream having a plurality of characters and control codes contained within it, said method comprising:
- assigning bidirectional attributes to a logical character stream;
assigning initial level numbers and honoring any directional overrides by explicit processing;
changing attribute types based upon surrounding attribute types through weak and neutral processing;
associating final level numbers to the logical character stream through implicit processing; and
reordering said characters within said logical character stream according to said final level numbers such that said reordered characters form a character stream in display order wherein facets of layout relating to character reordering and facets related to character stream rendering are handled separately in a functional programming language, and said character stream is handled as sequential runs of integers during said steps of assigning attributes, level numbers, changing, attribute types, associating final level numbers, and reordering characters.
1 Assignment
0 Petitions
Accused Products
Abstract
A bidirectional text display method embodied in a functional programming language which first assigns bidirectional attributes to a logical character stream. Next, through explicit processing, level numbers are assigned, honoring any directional overrides present in the logical character stream. Subsequent weak and neutral type processing potentially causes attribute types to change based upon surrounding attribute types. Then, implicit processing assigns final level numbers to the stream which control reordering. Finally, reordering processing produces a sequence of characters in display order. By separating the facets of layout dealing with reordering from those that are concerned with rendering, such as line breaking, glyph selection, and shaping, the Haskell-based method is more discernible and comprehendable, thereby allowing it to be more useful as a model upon which others may base bidirectional implementations.
15 Citations
27 Claims
-
1. A method of converting a logically ordered character stream into a character stream suitable for display by a computer and comprehension by a user, said logically ordered character stream having a plurality of characters and control codes contained within it, said method comprising:
-
assigning bidirectional attributes to a logical character stream; assigning initial level numbers and honoring any directional overrides by explicit processing; changing attribute types based upon surrounding attribute types through weak and neutral processing; associating final level numbers to the logical character stream through implicit processing; and reordering said characters within said logical character stream according to said final level numbers such that said reordered characters form a character stream in display order wherein facets of layout relating to character reordering and facets related to character stream rendering are handled separately in a functional programming language, and said character stream is handled as sequential runs of integers during said steps of assigning attributes, level numbers, changing, attribute types, associating final level numbers, and reordering characters. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer readable medium encoded with software causing a computer to perform the following actions:
receiving a logically ordered character stream; assigning bidirectional attributes to the logical character stream; assigning initial level numbers and honoring any directional overrides by explicit processing; changing attribute types based upon surrounding attribute types through weak and neutral processing; associating final level numbers to the logical character stream through implicit processing; and reordering said characters within said logical character stream according to said final level numbers such that said reordered characters form a character stream in display order, wherein facets of layout relating to character reordering and facets related to character stream rendering are handled separately in a functional programming language, and said character stream is handled as sequential runs of integers during said steps of assigning attributes, level numbers, changing, attribute types, associating final level numbers, and reordering characters. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
19. A text code conversion system for converting logically ordered text streams and displaying said text streams in a display order, said system comprising:
-
a character stream receiver for receiving a logically ordered character stream; a bidirectional attribute assignor realized for assigning bidirectional attributes to a received logical character stream; an initial level assignor for assigning initial level numbers and for honoring any directional overrides by explicit processing; an attribute type changer realized for changing attribute types based upon surrounding attribute types through weak and neutral; a final level assignor realized for associating final level numbers to the logical character stream through implicit processing; and a character resequencer realized for reordering said characters within said logical character stream according to said final level numbers such that said reordered characters form a character stream in display order, wherein facets of layout relating to character reordering and facets related to character stream rendering are handled separately, and said logically ordered character stream is handled as sequential runs of integers by said character stream receiver, said attribute assignor, said initial level assoignor, said type changer, said final level assignor, and said character resequencer, each of which are realized in a functional programming language. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
-
Specification