UNIT?E DE RECHERCHE INRIA-SOPHIAANTIPOLIS Institut National de Recherche en Informatique et en Automatique 2004 route des Lucioles B.P. 93 06902 Sophia-Antipolis France Rapports de Recherche Nffi1752 Programme 4 Robotique , Image et Vision CONSTRUCTION OF D-DIMENSIONAL HYPEROCTREES ON A HYPERCUBE MULTIPROCESSOR Frank Dehne Andreas Fabri Mostafa Nassar Andrew Rau-Chaplin Rada Valiveti 28 Septembre 1992 Construction of d-Dimensional Hyperoctrees on a Hypercube Multiprocessor ? La Construction d'un Hyperoctree de Dimension d sur un Hypercube Frank Dehne y Andreas Fabri z Mostafa Nassar x Andrew Rau-Chaplin y Rada Valiveti y Programme 4 : Robotique , Image et Vision . ? This work was partially supported by the Natural Sciences and Engineering Research Council of Canada and the ESPRIT Basic Research Actions Nr . 3075 -LRB- ALCOM -RRB- and Nr . 7141 -LRB- ALCOM II -RRB- . ySchool of Computer Science , Carleton University , Ottawa , Canada K1S 5B6 zINRIA | B.P. 93 | 06902 Sophia-Antipolis cedex , France xJodrey School of Computer Science , Acadia University , Wolfville , Canada B0P 1X0 Abstract We present a parallel algorithm for the construction of the hyperoctree representing a d-dimensional object from a set of n -LRB- d ? 1 -RRB- - dimensional hyperoctrees , representing adjacent crossections of this object . On a p-processor SIMD hypercube the time complexity of our algorithm is O -LRB- mp log p log n -RRB- , where m is the maximum of input and output size . R?esum?e Nous pr?esentons ici un algorithme parall?ele pour la construction de l'hyperoctree repr?esentant un objet de dimension d ? a partir de l'ensemble d'hyperoctrees de dimension d ? 1 repr?esentant des coupes de cet objet . Sur un hypercube avec p processeurs le temps de calcul est O -LRB- mp log p log n -RRB- , o?u m est le maximum de la taille de l'entr ? ee etde la sortie . 1 Introduction In many applications a description of an object is given as a set of cross sections , e.g. in medical diagnosis planar cross sections are obtained via tomography systems . In this paper we consider the problem of computing the 3-dimensional representation of an object given as a set of cross sections . There are two primary versions of this problem which can be considered depending on what is known about the input . If the cross sections are known to be widely spaced or we have no spacing information at all , i.e. the information about the 3-dimensional object consists only of planar contours extracted from the cross sectional images , then we have an interpolation problem , see for example -LSB- Bo88 -RSB- . Alternatively , if the cross sections are known to lie close together , i.e. they can be considered as interpolations of the volume lying between themselves and the following cross section , then we have a merging problem . It is this later version of the problem that is considered in this paper . The representation of 2 and 3 dimensional objects has been extensively studied -LRB- -LSB- R80 , M88 , S89 -RSB- -RRB- . One commonly used representation scheme , based on recursive subdivision , is the quadtree and its many variants . For an overview and bibliography on quadtrees and applications we refer to -LSB- S84 -RSB- . Since in this paper we will be interested in d-dimensional representations , where d may be any constant , we will use an octree variant described in -LSB- YS83 -RSB- , called hyperoctrees . Quadtrees and their higher dimensional extension are efficient spatial data structures widely used in image processing , solid modeling and many other application domains . A large number of algorithms for the construction and manipulation of these spatial data structures have been developed . Since these applications are typically data intensive , the application of parallelism to such a fundamental data structure is of both theoretical and practical interest . Recently , researchers have therefore started to consider algorithms for parallel models of computation . While some papers -LRB- -LSB- MCI86 , ML86 -RSB- -RRB- consider parallel architectures designed -LRB- or reconfigured -RRB- particularly for quadtree manipulation , others consider general purpose architectures , such as PRAMs -LRB- -LSB- BRW88 -RSB- -RRB- , mesh-connected computers -LRB- -LSB- HR89 -RSB- -RRB- and hypercubes -LRB- -LSB- DFR91 , IK92 -RSB- -RRB- . Many of the construction and manipulation algorithms given in these papers can be easily adapted to work for d-dimensional hyperoctrees . In particular the hypercube construction algorithms for pointer-based -LSB- DFR91 -RSB- and linear -LSB- IK92 -RSB- representations of quadtrees can be adapted to support the construction of hyperoctrees from multidimensional binary images . In this paper we describe an algorithm for the more complex task of constructing d-dimensional hyperoctrees from sets of -LRB- d ? 1 -RRB- - dimensional hyperoctrees -LRB- called slices -RRB- . Given n slices of width one , the basic algorithm consists of log n phases . In each phase pairs of adjacent slices are joined to form slices of twice the width . In all phases the slices are represented by \ hybrid trees '' , a data structure in between d ? 1 and d-dimensional hyperoctrees -LRB- to be defined later -RRB- . Note that both the input and output hyperoctrees may either be based on pointer or linear representations . The sequential algorithm has a running time of O -LRB- m log n -RRB- -LSB- YS83 -RSB- , where m is the maximum of input and output size . The time complexity of our parallel algorithm for a SIMD hypercube with p processors is O -LRB- m log n p log p -RRB- . Our parallel algorithm follows the basic merging strategy of the sequential algorithm given in -LSB- YS83 -RSB- . The main contribution of this paper is to solve the non trivial problem of merging \ hybrid trees '' in parallel . The remainder is organized as follows . In the next section we describe our model of computation and some basic operations . In Section 3 we recall the definition of hyperoctrees and give a formal definition of a new data structure called hybrid trees . Section 4 briefly recalls the sequential algorithm and is followed by a section describing a merging algorithm for hybrid trees . Section 6 describes in detail our parallel hypercube algorithm . 2 The Model of Computation In this section , we present two abstract models of a SIMD hypercube and some basic algorithms for this type of architecture . A SIMD hypercube of dimension d consists of p = 2d processors which are indexed through 2d ? 1 . Two processors are connected along dimension i , if and only if the binary representation of their indices differ in exactly the ith bit . The processors are synchronized and may be enabled or disabled to execute a common instruction . Each processor has some local memory . Note that we neither assume a constant amount of memory per processor -LRB- as is done by exclusively fine-grained algorithms -RRB- nor a fixed non-constant amount of memory -LRB- as is assumed by exclusively coarsegrained algorithms -RRB- . Our algorithms are suitable for implementation on either finegrained or coarse-grained SIMD hypercubes and therefore could be implemented on machines ranging from Intel 's iPSC860 -LSB- In -RSB- -LRB- using additional synchronization -RRB- to Thinking Machines Corporation 's CM2 -LSB- St87 -RSB- . In the first model , arithmetic operations on each processor and communication between processors which are adjacent along a fixed dimension are elementary instructions and take time O -LRB- 1 -RRB- . In this paper we will use many basic vector operations such as parallel prefix , monotonic routing and bitonic merge -LSB- NS81 , B68 -RSB- . The parallel prefix sum of a vector V is the vector W , with W -LSB- k -RSB- : = Pki = 0 V -LSB- i -RSB- , < = k < p. Instead of summing we can perform any binary associative operation , e.g. copying . A further generalization is the segmented parallel prefix . The vector is split up in segments and the parallel prefix starts at the beginning of each segment . In this paper we also use an operation called segmented broadcast , that is in each segment all elements are replaced by the first element in the segment . Monotonic routing refers to the following operation . Given a data vector V , a destination vector D and a Boolean vector selecting some elements of V , the selected data elements V -LSB- i -RSB- are moved to V -LSB- D -LSB- i -RSB- -RSB- under the condition that D -LSB- i -RSB- < D -LSB- j -RSB- for all selected elements < = i < j < p . That is , the selected data elements remain in the same order . The bitonic merge algorithm transforms a bitonic sequence -LRB- the keys are first increasing , then decreasing -RRB- into a sorted sequence . This operation can be used to merge two sorted sequences . All these vector operations are presented for vectors of length p and they take time O -LRB- log p -RRB- . They can easily be generalized for vectors of length n , n > = p , and take then time O -LRB- np log p -RRB- . The second model under consideration is the pipelined hypercube . Arithmetic operations again take time O -LRB- 1 -RRB- , but processors can communicate with all adjacent processors in time O -LRB- 1 -RRB- . Thus we can pipeline the above basic vector operations and get O -LRB- np + log p -RRB- , n > = p , as time bounds . The CM2 from Thinking Machines Corporation is an example of such a machine -LSB- BLM * 91 -RSB- . 3 Hyperoctrees and Hybrid Trees Hyperoctrees -LSB- YS83 -RSB- are a generalization of the well known quadtree data structure . The d-dimensional hyperoctree , or for short 2d-tree , is a hierarchical data structure for the representation of a d-dimensional discrete grid of sidelength n , where n is assumed to be a power of 2 . The total grid is split in 2d subgrids of half the sidelength . The subgrids are split recursively and recursion stops when a subgrid of uniform colour is reached . Nodes are either grey , black or white , representing nonuniform , black or white subgrids . The level of a node v is defined recursively . It is log2 n , if v is the root , and level -LRB- v -RRB- : = level -LRB- father -LRB- v -RRB- -RRB- ? 1 otherwise . For our algorithm we need a further generalization of 2d-trees , since we want to represent discrete grids where the sidelength of the side in the d-th dimension varies . To understand why this generalization is necessary consider the following naive algorithm for combining n 2d ? 1-trees to form a 2d-tree . 1 . Convert each of the 2d ? 1-trees that represents a slice into an equivalent 2d-tree . 2 . Perform a union operations on all the 2d-trees formed in the previous step . The problem with the naive algorithm is that it can result in a considerable and unnecessary \ blow up '' in the amount of data that must be processed . Consider for example the situation in which all of the -LRB- d ? 1 -RRB- - dimensional slices are completely black . In the first step of the naive algorithm each of the fully black -LRB- d ? 1 -RRB- - dimensional slices would be broken up in nd ? 1 volume elements of sidelength 1 , as the width along dimension d is only 1 . Thus we would return to a representation in image space . When in the second step of the naive algorithm the union of all n slices is computed the resulting 2d-tree is of size O -LRB- 1 -RRB- . It is exactly this unnecessary increase or \ blow up '' in data size that any efficient algorithm must seek to avoid . We need to represent not only d-dimensional cubes but also cuboids with the same sidelength k in dimensions 1 through d ? 1 and sidelength j < = k in dimension d , where j is the number of already joined slices , and k and j are powers of 2 . Definition 1 A phase i hybrid tree T i is a coloured tree with two kind of nodes . The nodes at levels l , i < = l < = log n , form a 2d ? 1-tree and represent cuboids of size -LRB- 2l -RRB- d ? 1 ? 2i , and nodes at levels through i form a forest of 2d-trees and represent cubes of size -LRB- 2l -RRB- d. Notice that phase or log n hybrid trees can be considered as 2d ? 1-trees or 2dtrees , respectively . Further note that nodes at level i are at the same time leaves of the 2d ? 1-subtree and roots of the 2d-subtrees . Figure 1 shows a phase i = 2 hybrid tree for d = 2 . The nodes at level l > 2 represent rectangles of height 2i = 4 and length 2l , nodes at levels l < = 2 represent squares of sidelength 2l . 43210level Figure 1 : A hybrid tree 4 Sequential Algorithm The above definition of hybrid trees formalizes an intermediate state of the sequential algorithm presented in -LSB- YS83 -RSB- . The basic structure of their algorithm is to consider each 2d ? 1-tree as a phase hybrid tree and perform log n pairwise merge phases . More precisely , in phase i + 1 of the merge algorithm , < = i < logn , pairs T i1 and T i2 of phase i hybrid trees are merged into a phase i + 1 hybrid tree T i +1 1 ; 2 . In the following section , we present a modified version of this merge phase , which we will use in our parallel algorithm . 5 Merging Hybrid Trees We describe an algorithm to join two hybrid trees T i1 and T i2 in phase i + 1 of the merge . For this algorithm to be efficient it must avoid performing work that will later have to be undone . In particular , the decision to break up a cuboid should be postponed as long as possible , i.e. until it is certain that the cuboid will never become part of a uniformly coloured cube . When a cuboid is broken up , it must be broken up into cuboids which are maximal and which also fit this criterion . Before we can join the trees we overlay the 2d ? 1-subtrees of T i1 and T i2 and expand them to the same shape . While expanding the trees , we consider three different cases for all corresponding nodes v1 and v2 at levels l > i in the two trees . Case 1 : If v1 is black or white and v2 is grey , then the cuboid of v1 must be broken up to the same level of resolution as the cuboid of v2 . Therefore we replace v1 with a copy of the 2d ? 1-subtree rooted at v2 , where leaf nodes get the colour of v1 . We do not have to copy nodes below level i , as nodes in level i already represent cubes . Case 2 : If v1 is black and v2 white , they must both be broken up to cubes of sidelength 2i . We thus replace each of them with the complete 2d ? 1-tree of height l ? i with leaf nodes coloured as v1 and v2 , respectively . v1v2v1ii Figure 2 : Case 1 for d = 2 Case 3 : If they are both either black or white , they represent cuboids of the same length and form together a cuboid of height 2i +1 , and thus no expansion is necessary . The 2d ? 1-subtrees of the two trees are now of the same shape and corresponding nodes on levels l > = i + 1 have the same colour . We use the overlayed trees to construct the 2d-tree nodes on level i + 1 , by joining the children of corresponding grey 2d ? 1-tree nodes at level i +1 . Keeping only one copy of the expanded 2d ? 1-trees we obtain the hybrid tree T i +1 1 ; 2 . On a sequential machine the above merge operation can be easily implemented in time O -LRB- max -LRB- jT i1 j + jT i2j ; jT i +1 1 ; 2 j -RRB- -RRB- by performing simultaneous tree traversals -LSB- YS83 -RSB- . As the overall algorithm consists of log n phases , the input set of n -LRB- d ? 1 -RRB- - dimensional hyperoctrees can be transformed into the corresponding d-dimensional hyperoctrees T in time O -LRB- m log n -RRB- , with m = max -LRB- jT j ; Pnj = 1 jTj j -RRB- . v1v2v1v2ii Figure 3 : Case 2 for d = 2 6 Parallel Algorithm In the parallel setting , an efficient implementation of hybrid tree merge is not as straightforward . Since the sequential time complexity is ? -LRB- m -RRB- , an optimal parallel algorithm , even for the PRAM model , can achieve a time not better than O -LRB- mp -RRB- . In the following , we present an O -LRB- mp log p -RRB- time hypercube algorithm . In the following we will use a linear representation instead of the pointer based representation of hybrid and 2d-trees used in the sequential setting . A linear tree is a collection of leaf nodes , ordered according to the inorder traversal of the pointer based tree . We will later show how to convert between this linear representation and the level-order pointer-based representation described in -LSB- DFR91 -RSB- . For each node v in the 2d ? 1-subtree of a hybrid tree , we define the position of v , pos -LRB- v -RRB- , to be the inorder traversal number of its corresponding node w in the complete -LRB- d ? 1 -RRB- - ary tree , ? T , of height log n . We define cover -LRB- v -RRB- to be the interval -LSB- lm -LRB- v -RRB- , rm -LRB- v -RRB- -RSB- , where lm -LRB- v -RRB- and rm -LRB- v -RRB- are the inorder traversal numbers -LRB- with respect to the complete tree ? T -RRB- of the leftmost and rightmost descendant of w. For each node in a 2d-subtree we define anci -LRB- v -RRB- to be the position of the ancestor of v in level i. Note that the size of these numbers is at most -LRB- d ? 1 -RRB- log n bits . We now show how to join two hybrid trees T i1 and T i2 to perform phase i + 1 of the algorithm . We assume w.l.o.g. that the slice represented by T i1 lies above the one represented by T i2 . The following describes the parallel implementation of cases 1 , 2 and 3 from Section 3 . In our algorithm , the expansion step and the join step are not performed separately . Case 1 : In this case each black or white node , v1 , in T i1 corresponding to a grey node , v2 , in T i2 is replaced by a tree of the shape of Tv2 , the 2d ? 1-subtree of the tree T i2 rooted at v2 . As internal nodes are not represented by the linear representation , this is equivalent to replacing v1 by the leaves of Tv2 . We perform this operation in two steps . In the first step we detect all black and white nodes in levels l > i of T i1 , which correspond to grey nodes of T i2 . These black and white nodes are called covering nodes . We merge the trees by assigning pos -LRB- v -RRB- as the key to each node in a level l > i and anci -LRB- v -RRB- as key to each node in a level l < = i , and observe the following . A node v1 in a level l > i is a covering node , if and only if one of its neighbours in the resulting sequence has a different pos value and falls in the interval cover -LRB- v1 -RRB- . Thus , every node performs a comparison with its two neighbours . We then unmerge the sequence , i.e. extract the two original sequences . In the second step we determine for each covering node v1 the set of leaves of the subtree Tv2 rooted at the corresponding node v2 . We first make a copy of each covering node and store it in an adjacent position . Every node v in T i1 or T i2 is then assigned a key , key -LRB- v -RRB- = -LRB- x ; y -RRB- , where x and y are the primary and secondary keys , respectively . We define key -LRB- v -RRB- as follows : key -LRB- v -RRB- = 8 >> > < >> > : -LRB- lm -LRB- v -RRB- ; 0 -RRB- if v is the 1st copy of a covering node at level l > i , -LRB- rm -LRB- v -RRB- ; 3 -RRB- if v is the 2nd copy of a covering node at level l > i , -LRB- pos -LRB- v -RRB- ; j -RRB- if v is a noncovering node in T ij , j = 1 ; 2 , at level l > i ; -LRB- anci +1 -LRB- v -RRB- ; j -RRB- if v is a node in T ij , j = 1,2 , at level l < = i. Lemma 1 The nodes in the linear hybrid trees form a monotonic sequence with respect to key -LRB- v -RRB- . Proof : The nodes are ordered by their pos value . As only leaf nodes are represented , all lm -LRB- v -RRB- and rm -LRB- v -RRB- values are unique and no pos value of another node falls in the interval cover -LRB- v -RRB- . Noncovering nodes at level l > i do not change their key . Let -LRB- u1 : : : uk -RRB- be a maximal subsequence of nodes of the linear tree Tj , which are at level l < = i and receive the same key . Let w be their ancestor in level i + 1 , then pos -LRB- u1 -RRB- < pos -LRB- w -RRB- < pos -LRB- uk -RRB- . 2 Thus , we can join the two trees using a stable bitonic merge . The following lemma states some observations on the resulting sequence S . We omit the proof of the statements as they are a direct consequence of the choice of key -LRB- v -RRB- . Lemma 2 The sequence S has the following properties : -LRB- a -RRB- The first copy of a covering node appears immediately to the left of the first node in the sequence of covered nodes , the second copy immediately to the right of the last node in the sequence of covered nodes . -LRB- b -RRB- The 2d-trees which become children of a node in level i +1 of the resulting hybrid tree T i +1 1 ; 2 are in the order required for T i +1 1 ; 2 . -LRB- c -RRB- Corresponding black or white 2d ? 1-tree nodes of T i1 and T i2 , respectively , are neighbours in S . We use Lemma 2 -LRB- a -RRB- to compute for all covered nodes their covering node . We do so by performing a segmented broadcast of covering nodes , where the segments are defined by the two copies of the covering nodes . As cover intervals do not overlap , any node is covered by at most one node . Then both copies of covering nodes are removed from S . We now create the copies of the leaves of Tv2 , the 2d ? 1-subtree rooted at v2 , for the covering node v1 . Each covered subsequence ^ S of 2d-tree nodes with the same key forms the set of leaves of a subtree rooted in level i + 1 . We thus insert 2d ? 1 copies of the covering node before or behind ^ S , depending on , whether the covering node stems from T i1 or T i2 . Case 2 : In this step we expand corresponding nodes v1 and v2 where one of the nodes is black the other node white . According to lemma 2 -LRB- c -RRB- corresponding nodes can be determined by a comparison with the neighbour in the sequence S. Let the two corresponding nodes be at level l. Instead of replacing them first by two 2d ? 1-trees which are then joined in a second step , we directly construct the 2d-tree . To achieve this we replace them by 2i ? l groups of 2d ? 1 nodes at level i . The groups alternate their colours as v1 and v2 do . v11u1iT ` lm -LRB- v -RRB- 1pos -LRB- v -RRB- 1rm -LRB- v -RRB- 1T1T2uT22 ' Figure 4 : Merging linear trees T1 and T2 -LRB- thick black lines -RRB- . In the first merge v1 ends up between covered nodes . In the second merge its two copies deliniate the start and end of the sequence of covered nodes . Further the trees u1 , T 1 , u2 and T 2 become neighbours and form thus a linear quadtree rooted in level i + 1 . Case 3 : The removal of one copy of corresponding black or white nodes completes the joining of two 2d ? 1-trees and yields the tree T i +1 1 ; 2 . This concludes our discussion of a phase i + 1 merge of two trees T i1 and T i2 . As we start with n hyperoctrees T1 ; : : : ; Tn , we need log n such phases to obtain the final 2d-tree , T . The time we need to perform one phase depends on the input size as well as on the output size . This can be illustrated with the following examples . If all slices are black , we start with n single node trees and end up with one node representing a black block . On the other hand , if slices are alternating black and white , we start with n single node trees and end up with one tree of size nd . As the algorithm only constructs nodes which either appear in the final output tree T or which are further refined , we can estimate the data size with m = max -LRB- jT j ; Pni = 1 jTij -RRB- . The processor load may change in each phase and the insertion and deletion of nodes is in fact a reallocation of processors . This can be performed with parallel prefix and monotonic routing operations . Since the nodes always remain in the same order it requires time O -LRB- mp log p -RRB- . In a preprocessing step we compute the keys pos with local operations in time O -LRB- mp log m -RRB- . For each node v we start with the position of the root and follow the path from the root to v . It takes time O -LRB- 1 -RRB- to compute the position of a child of node v , given the position of v . The height of the tree is O -LRB- log m -RRB- = O -LRB- d log n -RRB- = O -LRB- log n -RRB- . Given pos , the value of lm and rm can be computed in time O -LRB- 1 -RRB- using closed formulas as the tree is a complete tree . In each phase we have to compute keys for nodes which were either inserted or which changed from the 2d ? 1-subtree to a 2d-subtree . Nodes which are inserted obtain their keys from the nodes which caused their insertion . Given anci the value of anci +1 can be computed in time O -LRB- 1 -RRB- . This results in the following theorem . Theorem 1 The construction of a linear d-dimensional hyperoctree from a set of n linear -LRB- d ? 1 -RRB- - dimensional hyperoctrees on a hypercube with p processors takes time O -LRB- m log n p log p -RRB- , where m is the maximum of input and output size . We now describe how to construct a d-dimensional pointer-based hyperoctree from a set of n -LRB- d ? 1 -RRB- - dimensional pointer-based hyperoctrees . The pointer-based representation is at times an attractive alternative to the linear representation , even in the parallel setting -LSB- DFR91 -RSB- . Our approach will be to convert the given pointerbased representation into a linear representation , apply the algorithm given above to perform the merging , and then convert back to a pointer-based representation . We will assume that the input , i.e. the n pointer-based trees , are stored in level-order as described in -LSB- DFR91 -RSB- . To convert a pointer-based tree Tp into its equivalent linear representation Tl , all we need to compute is the inorder number of each node v in Tp and then sort the leaves of Tp by this value . The resulting sequence of nodes is Tl . To convert a linear tree Tl into its equivalent pointer-based representation Tp , we start by computing for each node v of Tl the values pos -LRB- v -RRB- and anci +1 -LRB- v -RRB- as previously described . The tree Tp is constructed level-by-level starting with the leaves . To form each level i of Tp we concentrate all level i nodes of Tl , and identify segments -LRB- groups -RRB- of nodes within this set having the same parents -LRB- i.e. anci +1 -LRB- v -RRB- -RRB- . The first node in each such segment then creates its parent node , togeather with their pos and anc values . Finally , the newly created parent nodes are merged with the nodes of Tl at level i + 1 -LRB- and should be considered in the construction of the next level -RRB- . Clearly , both conversion algorithms run in time O -LRB- n log n p log p -RRB- as they consist of log n phases each requiring at most O -LRB- np log p -RRB- time . We can therefore state the following corollary to Theorem 1 . Corollary 1 The construction of a pointer-based d-dimensional hyperoctree from a set of n pointer-based -LRB- d ? 1 -RRB- - dimensional hyperoctrees on a hypercube with p processors takes time O -LRB- m log n p log p -RRB- , where m is the maximum of input and output size . Given that the merging algorithm and the two converion algorithms described above use only basic hypercube operations that can be pipelined , we immediately get the following corollary for both linear and pointer-based representations . Corollary 2 The construction of a d-dimensional hyperoctree from a set of n -LRB- d ? 1 -RRB- - dimensional hyperoctrees on a pipelined hypercube with p processors takes time O -LRB- m log n p + log p log n -RRB- , where m is the maximum of input and output size . 7 Conclusion In this paper we have presented a parallel algorithm for the construction of a ddimensional hyperoctree from a set of n -LRB- d ? 1 -RRB- - dimensional hyperoctrees , representing adjacent \ slices '' . On a p-processor SIMD hypercube the time complexity of our algorithm is O -LRB- m log n p log p -RRB- , where m is the maximum of input and output size . This parallel algorithm represents , to our knowledge , the first parallel algorithm given for the construction of octree based data structures from anything , but binary images or chain-codes . References -LSB- B68 -RSB- K.E. Batcher . Sorting networks and their applications . Proc . AFIPS Spring Joint Computer Conference , pp. 307 -LCB- 314 , 1968 . -LSB- BRW88 -RSB- S. K. Bhaskar , A. Rosenfeld , and A. Y. Wu . Parallel processing of regions represented by linear quadtrees . Computer Vision , Graphics , and Image Processing , Vol . 42 , pp. 371 -LCB- 380 , 1988 . -LSB- Bo88 -RSB- J.D. Boissonnat . Shape Reconstruction from Planar Cross Sections . Computer Vision , Graphics and Image Processing 44 , pp. 1 -LCB- 29 , 1988 . -LSB- DFR91 -RSB- F. Dehne , A. Ferreira , and A. Rau-Chaplin . Parallel processing of pointer based quadtrees . Proc . International Conference on Parallel Processing , 1991 . -LSB- HR89 -RSB- Y. Hung and A. Rosenfeld . Parallel processing of linear quadtrees on a mesh-connected computer . Journal of Parallel and Distributed Computing , Vol . 7 , pp. 1 -LCB- 27 , 1989 . -LSB- IK92 -RSB- O.H. Ibbarra and M.H. Kim Quadtree Building Algorithms on an SIMD Hypercube . Proc . Int . Parallel Processing Symp . pp. 22 -LCB- 27 , March 1992 . -LSB- In -RSB- Intel Scientific Computers iPSC System Overview . -LSB- M88 -RSB- M. M?antyl?a . An Introduction to Solid Modeling . Comp . Sci . Press , 1988 . -LSB- MCI86 -RSB- M. Martin , D. M. Chiarulli , and S. S. Iyengar . Parallel processing of quadtrees on a horizontally reconfigurable architecture computing system . Proc . Int . Conf . on Parallel Processing , pp . 895 -LCB- 902 , 1986 . -LSB- ML86 -RSB- G.-G . Mei and W. Liu . Parallel processing for quadtree problems . Proc . Int . Conf . on Parallel Processing , pp. 452 -LCB- 454 , 1986 . -LSB- NS81 -RSB- D. Nassimi and S. Sahni . Data broadcasting in SIMD computers . IEEE Trans . on Computers 30:2 , pp. 101 -LCB- 106 , 1981 . -LSB- R80 -RSB- A. G. Requicha . Representation for Rigid Solids : Theory , Methods and Systems . ACM Computing Surveys , Vol . 12 , No. 4 , 1980 . -LSB- S84 -RSB- H. Samet . The quadtree and related hierarchical data structures . Computing Surveys , Vol . 16 , No. 2 , pp. 187 -LCB- 260 , 1984 . -LSB- S89 -RSB- H. Samet . Applications of Spatial Data Structures . Addison-Wesley , 1989 . -LSB- St87 -RSB- C. Stanfill . Communications Architecture in the Connection Machine System . Thinking Machines Corporation | TR HA87-3 , 1987 . -LSB- BLM * 91 -RSB- G. E. Blelloch , C. E. Leiserson , B. M. Maggs , C. G. Plaxton , S. J. Smith , M. Zagha . A Comparison of Sorting Algorithms for the Connection Machine CM-2 . ACM Symp . on parallel algorithms and architectues , 1991 . -LSB- YS83 -RSB- M. Yau and S. N. Srihari . A Hierarchical Data Structure for Multidimensional Digital Images . Comm . of the ACM , No. 1 , Vol . 26 , July 1983 .

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O

data structures
hypercube multiprocessor
parallel algorithms

computational geometry
geometric modeling


General Help Systems for Network Resource Discovery Clarisse Sieckenius de Souza Departamento de Inform?tica ? PUC-Rio Rua Marqu?s de S?o Vicente 225 Rio de Janeiro , RJ ? Brazil clarisse@inf.puc-rio.br Center for the Study of Language and Information Stanford University Stanford , Ca . ? USA desouza@csli.stanford.edu Monografias em Ci?ncia da Computa ?? o Departamento de Inform?tica ? PUC-Rio MCC 24/93 Abstract Wide area computer networks offer users a large volume and variety of resources that can help them solve many kinds of daily problems in their work environment . However , the existence , let alone the contribution , of such resources is generally ignored by networkers . This represents a gap in the usability of items available in the network . This work discusses usability issues as perceived in the INTERNET , and presents a research project underway , relative to General Help Systems -LRB- GHS 's -RRB- ? an intended means to narrow the distance between users needs and network resources . As grandes redes de computadores oferecem a seus usu?rios consider?vel variedade e volume de recursos , capazes de auxili ? - los a resolver muitos tipos de problemas cotidianos encontrados no trabalho . Contudo , a exist?ncia , e muito mais a contribui ?? o , destes recursos ? geralmente ignorada pelos participantes das redes . Isto representa uma lacuna quanto ? utilidade dos itens dispon?veis . O presente trabalho discute quest?es de utilidade observadas na INTERNET e introduz um projeto de pesquisa em andamento sobre os General Help Systems -LRB- GHS 's -RRB- ? um pretendido meio de estreitar a dist?ncia entre as necessidades dos usu?rios e os recursos da rede . Clarisse S. de Souza -LRB- 1993 -RRB- ? General Help Systems ... ? 2 Lucena , C.J.P. -LRB- ed . -RRB- MCC ? 24/93 ? Inform?tica , PUC-Rio Information Usability Empirical research about user acceptance of information technology -LSB- Davis ' 93 -RSB- has shown that actual system use is much more influenced by its perceived usefulness than by the user 's attitude towards it or the system 's perceived ease of use . Wide area computer networks such as the Internet offer a huge volume and variety of resources to users . One of the major features of Internet Resources is that they are constantly changing ? new items are added , existing items are changed or removed . Moreover , new items are not necessarily of the same kind as previous ones . Anything that can be expressed in computable form is a candidate item . Thus , the limits of item variety in the Internet are the limits of computable matter itself . One of the greatest challenges faced by Network Resource Discovery Systems -LRB- NRDS 's -RRB- designers is to make users perceive the usefulness of resources . The most popular NRDS 's ? Archie , WAIS , Gopher and WWW -LSB- LaQuey & Ryer ' 93 -RSB- ? allow users to navigate throughout an incredible wealth of resources . Their goal is to support access to and retrieval of all available items , which range from people to software , from on-line databases to publications , from music to weather reports , and much more . However , there is a major gap between the current installed technological capacity and its actual use by people in daily breakdown situation . This is the network resource usability gap . As stated in a recent introductory book to the Internet -LSB- Lane & Summerhill ' 93 -RSB- , `` what keeps many potential network users from ` plugging in ' is not necessarily a lack of opportunities , but rather a lack of knowledge of those opportunities . '' The challenge designers must face regarding these potential users is to show them how useful Internet resources are . Many networking guides have been written to bridge this detected knowledge gap -LSB- LaQuey & Ryer ' 93 , Kehoe ' 92 , Lane & Summerhill ' 93 -RSB- . However , these are `` off-line '' information . When a breakdown occurs , these guides are not likely to provide users with timely and contextualized helpful advice . This embedded information retrieval facility is of the sort commonly available in on-line help systems -LSB- Horton ' 90 -RSB- . If existing NRDS 's included an on-line contextualized help facility the resource usability gap could be more easily bridged . The Issue Text editors , programming language compilers and interpreters , hypertext authoring systems and many other types of applications currently provide on-line contextualized help facilities . They do so by matching the conditions in which users ask for help and the embedded model of the software functionality -LSB- Horton ' 90 -RSB- . It must be emphasized that help information is provided about the application program , not about data . It increases the user 's perception of the program 's usefulness . The situation is not quite the same with network resources . Here it is not only a matter of increasing NRDS 's perceived usefulness -LRB- which can be done with an on-line help facility they all include -RRB- , but rather of increasing the perceived usefulness of data ! As Lane & Summerhill put it -LSB- op.cit . -RSB- , this is a matter of increasing the user 's knowledge about resources . Can on-line contextualized help facilities handle information about information ? The issue is one of building a model of the network : not of its physical connections , paths and gateways , but of the types of items it contains in relation to the types of situations in which people are likely to need them . In short , a taxonomy of resources and a taxonomy of needs are apparently called for . Contextualized help could be derived from mapping needs onto resources , and this should help users perceive the positive impact of the available items on their daily activities . The Barriers The problem with taxonomies is that they are static ? structures freeze relevant abstractions derived from reality into a set of elements and a set of relationships between them . The dynamic aspects of reality , in computer models , are captured by rules that manipulate structures and transform them according to certain conditions and principles . A change in the way abstractions are made can not be supported from Clarisse S. de Souza -LRB- 1993 -RRB- ? General Help Systems ... ? 3 Lucena , C.J.P. -LRB- ed . -RRB- MCC ? 24/93 ? Inform?tica , PUC-Rio within a computer model . For this , a meta-model is needed , where the conditions and principles to create abstractions from reality are clearly stated . Thus , in the case of network resources , if the current state of affairs is captured by a model M , the only kind of growth supported by this model is one in which the same abstractions are used . For instance , if the structure of resources reflects abstractions having to do with computer sites , file types , email addresses and the like , all new items must be classified according to these . An item whose real life abstraction had to do with hardware , basically , like the type of terminal the user has , could not be accommodated within the existing model of the network . Since resources can be anything representable in digital form , some existing taxonomies used by NRDS 's -LRB- e.g. Archie -LSB- Emtage & Deutsch ' 92 -RSB- -RRB- choose wide abstraction levels like file names -LRB- and extensions -RRB- and FTP sites . The informativeness of such abstractions , however , is relatively low to support mapping from needs onto resources . For example , if a user needed to find a recent document about help systems for NRDS 's , how would s/he proceed ? Search for documents with the name `` help '' ? Another approach is to narrow down the width of the above schema and to represent content . There are two ways of dealing with content . One is to create a profile of items based on the rate of occurrence of certain words in its external -LRB- name and extension -RRB- and internal -LRB- text or code -RRB- form . An automatic indexing of items generates profiles that can support `` content navigation '' with relevance feedback -LSB- Kahle ' 88 -RSB- . This is the strategy adopted by WAIS -LSB- Kahle & Medlar ' 91 -RSB- . Another approach is to created semantic links between items , following the hypertext paradigm . This is the strategy followed by WWW -LSB- Berners-Lee et al. ' 92 -RSB- . Form-based taxonomies ? either external -LRB- like in Archie -RRB- or internal -LRB- like in WAIS -RRB- ? accommodate the evolutionary aspect of network resources in different ways . The Archie approach sees growth as a structurally stable process : any new item is bound to conform to certain standards of digital representation . The WAIS approach handles growth by means of a stable screening process : the identification of relevant recurring string patterns in the item 's content . Again , since all items are bound to conform to existing standards of naming -LRB- external form -RRB- and codification -LRB- internal form -RRB- , new items are likely to be successfully classified . Content-based taxonomies relying on semantic links between items face more obstacles as far as evolution is concerned . First , if any new item is to be classified according to an existing taxonomy of semantic links , these can not be but some sort of conceptual primitive link . And as the network can contain anything human intelligence is able to conceive of and put into digital form , building such a taxonomy of links amounts to building a model that approximates that of human intelligence itself . Second , if the links do not have to belong to set of conceptual primitive relationships between resource items , and can be freely assigned by users as a result of an interpretation process , then there actually is n't any taxonomy in the pure -LRB- structural -RRB- sense , but only an open set of interpretations about the potential associative links the various resources maintain with each other . Consequently , an on-line contextualized help system to support searches for information in wide computer networks would have to include a model of resources based on one -LRB- or more -RRB- of three taxonomies : -LRB- a -RRB- one based on external form only , -LRB- b -RRB- one based on internal and external form , and -LRB- c -RRB- one based on primitive conceptual relationships holding between items . However , the above taxonomies solve only part of the original problem . The entire model supporting the help system envisaged for NRDS 's still needs a taxonomy of needs , or breakdown situations , and a mapping from needs onto resources . In that which concerns a taxonomy of needs , the underlying structure is derived from social activities involved in problem-solving situations . Recent work -LSB- Rogers ' 92 -RSB- exploring the concept of distributed problem-solving for purposes of Computer Supported Collaborative Work -LRB- CSCW -RRB- reports that there are five major theoretical frameworks from which structures are drawn : activity theory , conversational analysis , distributed cognition , anthropological theories of culture , and organization/community memory . The author points out that each time a breakdown situation occurs , Clarisse S. de Souza -LRB- 1993 -RRB- ? General Help Systems ... ? 4 Lucena , C.J.P. -LRB- ed . -RRB- MCC ? 24/93 ? Inform?tica , PUC-Rio however , a very complex pattern of social interaction emerges to solve the problem at hand , which resists `` being transformed into a crystallized set of working procedures '' -LSB- Rogers ' 92 , p. 353 -RSB- . In the same line as the comments made about content-based resource structuring , what can be said here is that either some of the existing theoretical frameworks claim to have achieved a set of primitive activities performed by people in a social context , or this set is open to human interpretation and can freely incorporate new needs as new situations arise . Recent work about the usability of technological tools -LSB- Adler & Winograd ' 92 -RSB- suggests the latter to be the case . According to the authors , `` the effectiveness of a system depends on how well it supports higher-order -LSB- interpretation -RSB- cognitive activities and social interaction '' -LSB- op.cit. , p. 5 -RSB- . So , a form - or primitive-based taxonomy of needs , analogous to the one suggested for resources , seems to override an important factor having to do with the usability of the resource discovery system itself . From the moment problem situations are frozen within structural patterns , design choices concerning NRDS 's seem to fall back into a plan-based model of human activity . This , however , has been extensively rebutted by evidences from ethnomethodological studies -LSB- Suchman ' 87 -RSB- . A Solution In actual problem-solving situations , people are seen as the prime source of task-relevant information -LSB- Berlin & Jeffries ' 92 -RSB- . This is certainly due to the fact that people can interpret the global context in which problems occur and make pertinent contributions to the needed solution . Moreover , relevant contributions are made possible by people 's awareness of what the others are doing -LSB- Dourish & Bellotti ' 92 -RSB- . The perceived usefulness of resources in a wide computer network is directly related to the timeliness and context-sensitiveness of retrieval conditions . These two features are what makes people 's help preferable to on-line help facilities . However , people can not be found or interrupted whenever somebody needs their advice . Asynchronous communication is a way around physical or social barriers in getting contextualized information to solve problems . Nevertheless , timeliness is often a critical factor . The storage of collective knowledge in a community database is an alternative for accessing what people know . The complexity of this knowledge collection can vary widely , ranging from a set of annotations about items to a full fledged knowledge base . annotation to : made by : Item Use : Talk Read Interlocutor : -LRB- -RRB- human -LRB- -RRB- computer Message Coding : -LRB- -RRB- NL text -LRB- -RRB- Computer Code Communication Language : -LRB- -RRB- NL ? -LRB- -RRB- pseudo-NL -LRB- -RRB- specialized ? -LRB- -RRB- icons/menus -LRB- <site> -RRB- / path -LRB- / file.name -RRB- or email address < user 's email address > Comments : -LSB- free text -RSB- Figure 1 : The GHS Annotation Structure Clarisse S. de Souza -LRB- 1993 -RRB- ? General Help Systems ... ? 5 Lucena , C.J.P. -LRB- ed . -RRB- MCC ? 24/93 ? Inform?tica , PUC-Rio In order to get around the tension raised from the contrast between the intrinsic difficulties to accommodate novelty presented by abstract system models , on one side , and the evolving nature of the amount and kind of resources available in wide computer networks , on the other , we propose the incorporation of Generalized Help Systems -LRB- GHS 's -RRB- to what LaQuey & Ryer have named `` the Internet Toolbox '' ? email , remote login and file transfer protocol facilities -LSB- LaQuey & Ryer ' 93 , p. 23 -RSB- . A GHS is an annotations database whose records present both structured and unstructured information . The structured part of a GHS record -LRB- Figure 1 -RRB- incorporates a taxonomy of resources , reflecting both form-based and content-primitive-based structuring principles . Data , programs and people are the basic categories of available network resources . What they can do is closely related to whether they are active -LRB- agent -RRB- objects , passive -LRB- file -RRB- objects , or both . Moreover , agents are essentially message senders and interpreters -LRB- i.e. they communicate -RRB- , whereas files are essentially messages themselves -LRB- i.e. they are a codified text to be read by human or computer processors -RRB- . The way resources can be interpreted , then , is determined by the domain in computing where they belong : communication , codification , or both . -LSB- See Table 1 -RSB- The above considerations are crucial for the GHS approach , because the annotations database is organized according to the notion of communicative indexing , an indexing technique based on the collective discourse structure users can make about how resources may meet ends , in a totally contingent way -LSB- de Souza ' 93 -RSB- . The principle that operates in communicative indexing is that resources ? people , programs and data ? may be used to an open variety of purposes , according to their intrinsic ontological nature ? agents , files , or both ? and their inherent interpretive possibilities ? message senders and receivers , or messages themselves . Agents are objects one can talk to , whereas files are objects one -LRB- people or computers -RRB- can read -LRB- or view -RRB- . If one is communicating with resources , it may be important to discriminate whether resources are human or computer entities , and in which language such communication takes place . Similarly , if resources are to be read -LRB- or viewed -RRB- , it may be important to discriminate the coding of the message they represent , for interpretive purposes . Resource Class DP Ontological Nature Domain in Computing people agents comunication programs agents/files communication/codification data files codification Table 1 : A Taxonomy of Network Resources The unstructured part of a GHS database record -LRB- See `` Comments '' field in Figure 1 , against grey background -RRB- does not derive from a taxonomy , but is a statement about the conditions of need encountered or anticipated by users with respect to the resource . The mapping between resource type and conditions of need is performed by human beings , and not by systems , when they generate or retrieve annotations about resources . The retrieval process is a traditional database query as far as the structured part is concerned . In the unstructured part , queries are performed by keyword search . The combination of the two parts provides the basis for a collection of contextualized information about resources in a wide computer network -LRB- meta-information -RRB- , inaccessible to the users of most NRDS 's . An example of a possible GHS query can be seen in Figure 2 . There , a user is searching the GHS database for annotations to any file or agent -LRB- uspecified `` annotation to '' field -RRB- , made by anyone -LRB- unspecified `` made by '' field -RRB- , provided that the resource can be `` read '' and consists of `` computer code '' -LRB- i.e. a piece of software -RRB- . The most relevant part of the query as far as usability goes is that , in the `` comments '' field where users state how resources connect to need situations , the following words can be found : `` design documentation '' . Possible annotations retrieved by this search schema are what is pictured in Figures 3 and 4 . By reading the `` comments '' field , we can see the wealth of information retrieved based on communicative indexinf of a collectively built network usability model . Clarisse S. de Souza -LRB- 1993 -RRB- ? General Help Systems ... ? 6 Lucena , C.J.P. -LRB- ed . -RRB- MCC ? 24/93 ? Inform?tica , PUC-Rio annotation to : made by : Item Use : Talk Read Interlocutor : -LRB- -RRB- human -LRB- -RRB- computer Message Coding : -LRB- -RRB- NL text -LRB- * -RRB- Computer Code Communication Language : -LRB- -RRB- NL ? -LRB- -RRB- pseudo-NL -LRB- -RRB- specialized ? -LRB- -RRB- icons/menus -LRB- <site> -RRB- / path -LRB- / file.name -RRB- or email address < user 's email address > SEARCH SELECT SEARCH FOR THE FOLLOWING KEYWORDS IN COMMENTS : -LSB- DESIGN DOCUMENTATION -RSB- Figure 2 : An example of a GHS Search annotation to : made by : Item Use : Talk Read Interlocutor : -LRB- -RRB- human -LRB- -RRB- computer Message Coding : -LRB- -RRB- NL text -LRB- * -RRB- Computer Code Communication Language : -LRB- -RRB- NL ? -LRB- -RRB- pseudo-NL -LRB- -RRB- specialized ? -LRB- -RRB- icons/menus Comments : this.site / pub/design/soft / DesignDoc < user 's email address > -LSB- DesignDoc is a good design documentation tool for CAD applications . The spectrum of things you can document , though , is somewhat narrow . -RSB- Figure 3 Annotation retrieved by a search about Design Documentation Clarisse S. de Souza -LRB- 1993 -RRB- ? General Help Systems ... ? 7 Lucena , C.J.P. -LRB- ed . -RRB- MCC ? 24/93 ? Inform?tica , PUC-Rio annotation to : made by : Item Use : Talk Read Interlocutor : -LRB- -RRB- human -LRB- -RRB- computer Message Coding : -LRB- -RRB- NL text -LRB- * -RRB- Computer Code Communication Language : -LRB- -RRB- NL ? -LRB- -RRB- pseudo-NL -LRB- -RRB- specialized ? -LRB- -RRB- icons/menus Comments : other.site / pub/design/WriteDesign . hqx < user 's email address > -LSB- WriteDesign is a new documentation tool developed by a research team of Newstuff , Inc. . Developers want it to be tested by as many users as possible and welcome suggestions and bug notifications . WriteDesign works well for parametric design models , but does n't help with creative design documentation . -RSB- Figure 4 : Annotation about a another Design Documentation tool The GHS Project has its roots in CSLI 's People , Computers and Design Project , at Stanford University . There , the fundamental ideas about General Help Systems -LSB- de Souza ' 92 -RSB- and communicative indexing -LSB- de Souza ' 93 -RSB- have been discussed with participants of the PCD Project . Currently , most tasks in the GHS Project are being carried out at the Computer Science Department of PUC-Rio . At this site , the author coordinates a small team of collaborators who are building a prototype GHS environment to demonstrate the fundamental issues arising in the research project . Clearly , two types of goals are involved in the investigation . There are theoretical goals and practical goals . For purposes of instantiation , the INTERNET will be the prototypical network for the research . 3.1 . Theoretical Goals The first theoretical goal in the project is to investigate mechanisms of meaning assignment for the whole variety of resources in the INTERNET : application programs , files , database systems , discussion groups , electronic mail and others . Such mechanisms must be constrained by two relevant factors : -LRB- 1 -RRB- the fact that the INTERNET can accommodate any item in computer format , and item contents may be as varied as human imagination allows ; -LRB- 2 -RRB- meanings must support retrieval , introduction and updating of items ; and -LRB- 3 -RRB- meanings must support some sort of reference to specific items in natural language structured , semi-structured , or non-structured , text -LRB- i.e. one person must be able to refer to a particular item of the INTERNET when writing a note about it -RRB- . The second theoretical goal in the project is to investigate how collective knowledge is built and used in computer network environments . This goal explains the reason for constraint number -LRB- 3 -RRB- , above . We assume that the most common means of communicating knowledge is language . Therefore , unless items can be spoken or written about , the sharing of knowledge among individual users is not possible in our scenario . The expected outcomes of the above are : a -RRB- a structure of meaning for all INTERNET items Clarisse S. de Souza -LRB- 1993 -RRB- ? General Help Systems ... ? 8 Lucena , C.J.P. -LRB- ed . -RRB- MCC ? 24/93 ? Inform?tica , PUC-Rio b -RRB- a structure of knowledge exchanges among INTERNET users 3.2 . Practical Goals The first practical goal in the project is to build a prototype version of a GHS for a small community of users . This prototype will function as a testbed for the theoretical results concerning meaning assignment and collective knowledge . The prototype should focus on data structures and procedures of the GHS , without further commitments with the form of the interface : contents are the goal . The second entailed practical goal is to build the complete interface system , with form and content . Here , issues related to interface layout and expressiveness , communication language and the like are in focus . As for the first prototype , the complete system version will serve a small community of users . The expected outcomes of the above are : a -RRB- an adequate architecture for GHS b -RRB- a useful application system for the targeted community c -RRB- an appropriate environment to support the design of GHS 's for larger communities The GHS Project tries to find one solution for a critical problem faced by large computer network systems . The assumptions made in the project , especially those concerning the use of natural language text in notes users will write about items in order to share their knowledge with other users , have a high chance of leading to community-dependent results . Such dependence may be of a linguistic nature or of a cultural one . Only comparative work can reveal the extent of this phenomenon . Thus , one parallel project can be carried out with a different community of users , preferrably users with a different native language . There are a number of INTERNET exploration systems available at this time , like WAIS , GOPHER -LRB- McCahill ' 92 -RSB- , ARCHIE and WWW , for example . These systems do not have an embedded GHS approach and users experiment many and varied breakdown situations . Another interesting parallel project is to find out an appropriate analytical framework in which WAIS , GOPHER , ARCHIE and WWW could be compared in terms of the kinds of breakdowns users can face . The same analysis could be then made with the prototype GHS to explicit what relative merits each system has over the others . Acknowledgements : The author would like to thank CSLI , at Stanford University , for continuing support of this research initiative . Special thanks go to Terry Winograd , coordinator of the PCD Project , at CSLI , and to Noemi Rodriguez , collaborator of GHS , at PUC-Rio . 6 . References Adler , P. and Winograd , T. Usability ? Turning Technologies into Tools . New York . Oxford University Press . 1922 Benners-Lee , T. ; Cailliau , R. ; Groff , J. ; and Pollermann , B. World-Wide Web : The Information Universe . Electronic Networking : Research , Applications and Policy , 2 -LRB- 1 -RRB- , pp. 52-58 . Berlin , L.M. and Jeffries , R. Consultants and Apprentices : Observations about Learning and Collaborative Problem-Solving . Proceedings of CSCW ' 92 . New York . ACM Press . 1992 Davis , F.F. User Acceptance of Information Technology : System Characteristics , User Perceptions and Behavioral Impacts . International Journal of Man-Machine Studies -LRB- 1993 -RRB- 38 , pp. 475 - 487 de Souza , C.S. Communicative Indexing fin Network Resource Discovery Systems . To appear as a CSLI - PCD Technical Report . CSLI - Stanford University . de Souza , C.S. Augmenting Informativeness and Learnability of Items in Large Computer Networks . Report No . CSLI-92-164-PCD-4 . ISSN 1042-1173 . May 1992 . CSLI - Stanford University . Clarisse S. de Souza -LRB- 1993 -RRB- ? General Help Systems ... ? 9 Lucena , C.J.P. -LRB- ed . -RRB- MCC ? 24/93 ? Inform?tica , PUC-Rio Dourish , P. and Bellotti , V. Awareness and Coordination in Shared Workspaces . Proceedings of CSCW '92 . New York . ACM Press . 1992 Emtage , A. and Deutsch , P. Archie ? An Electronic Directory Service for the Internet . Proceeding of USENIX Winter Conference , pp. 93-110 , January 1992 . Horton , W.K. Designing and writing online documentation . New York . Jonh Wiley & Sons .1990 . Kahle , B. Wide Area Information Servers Concepts . Thinking Machines Technical Report TCM 202 . November , 1988 . Kahle , B. and Medlar , A . An Information System for Corporate Users : Wide Area Information Servers . ConneXions ? The Interoperability Report , 5 -LRB- 11 -RRB- , pp. 2-9 , Interop , Inc. . November , 1991 . Kehoe , B. Zen and the Art of the Internet : a Beginners Guide to the Internet . Chester . Widener University . January 1992 . Lane , E. and Summerhill , C. Internet Primer for Information Professionals . London . Meckler . 1993 LaQuey , T. and Ryer , J.C. . The Internet Companion . Reading , Ma . Addison-Wesley Publishing Co. 1993 McCahill , M . The Internet Gopher : A Distributed Server Information System . ConneXions ? The Interoperability Report , 6 -LRB- 7 -RRB- , pp. 10-14 , Interop , Inc. . July ,1992 . Rogers , Y. Ghosts in the Network : Distributed Troubleshooting in a Shared Working Environment . Proceedings of CSCW ' 92 . New York . ACM Press . 1992 Suchman , L.A. Plans and Situated Actions . Cambridge . Cambridge University Press . 1987

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O

collective knowledge
network resource discovery systems
resource usability