/[alph]/alph/doc/alph.rst
ViewVC logotype

Diff of /alph/doc/alph.rst

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by tjl, Mon May 26 08:06:16 2003 UTC revision 1.2 by tjl, Mon May 26 08:26:52 2003 UTC
# Line 5  Alph design Line 5  Alph design
5  Alph is an implementation of xanalogical hypertext (see e.g. Nelson's  Alph is an implementation of xanalogical hypertext (see e.g. Nelson's
6  writings). The fundamental point in xanalogical hypertext is that  writings). The fundamental point in xanalogical hypertext is that
7  each smallest unit of media has a unique identity.  each smallest unit of media has a unique identity.
8  Alph does not use the tumbler model in previous implementations,  
9  but is rather based on *scrollblocks* - fixed units  Spans and Media types
10  of fluid media. This allows Alph to exist on top of Storm.  =====================
11    
12    The most user-visible objects in Alph are spans. A span
13    is a contiguous block of permanent media, e.g. "the 5 characters
14    'xyahb' typed on 5 May 2003 by Janne V. Kujala" or
15    "the 23x12 block of pixels in a particular photo snapshot of a custom
16    controller built from lego bricks by Asko Soukka".
17    Spans are operated on much as any immutable media objects,
18    like Java's own ``String``s.
19    
20  The media types handled by Alph are  The media types handled by Alph are
21    
# Line 83  Note: Spans are immutable objects - the Line 91  Note: Spans are immutable objects - the
91  a new span, if the the object and the parameter were consecutive  a new span, if the the object and the parameter were consecutive
92  in the right order.  in the right order.
93    
94    Manipulating text: Enfilades, Span makers
95    =========================================
96    
97    
98    Scrollblocks
99    ============
100    
101    Alph does not use the tumbler model in previous implementations,
102    but is rather based on *scrollblocks* - fixed units
103    of fluid media. This allows Alph to exist on top of Storm.
104    
105    Each span can contain media only inside one scrollblock:
106    
107    ..  UML:: alph_scrollblock
108    
109        class Span "interface"
110    
111        class ScrollBlock
112            assoc multi(1) - multi(*) Span
113            methods
114                String getContentType()
115                Span getCurrent()
116                boolean isMutable()
117                String getID()
118                Object getBlockId()
119                
120    
121    
122    
123    The scrollblock model assumes that given a span it is possible
124    to access all the fluid media units inside the same block.
125    However, this is not always true:
126    there are some span types that do not have a real scroll block -
127    ``FakeTextSpan`` and ``URN5TextSpan``.
128    
129    
130    Access to the original media: block files
131    =========================================
132    
133    Alph does not currently provide access methods
134    for data in images and pagespans. This is because the
135    programs may use their own methods for accessing these -
136    e.g. Fenfire uses either Java AWT *or* the Libvob OpenGL
137    system implemented in C++. Forcing access using AWT images
138    would make things inefficient for the OpenGL system.
139    
140    Because of this, Alph provides direct access to the underlying
141    block:
142    
143    
144    
145    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26