Title:
Method and apparatus for organizing hierarchical screens in virtual space
Document Type and Number:
Kind Code:
A1

Abstract:
The invention provides method and apparatus for viewing information. In one embodiment, the system of the invention enables the user to view displayed information in a way that is comparable to a selected physical paradigm. Example physical paradigms include, but are not limited to, financial, educational, governmental, sports, media, retail, travel, geographic, real estate, medical, physiological, mechanical, surveillance, agricultural, industrial, infrastructure, scientific and other like paradigms. By presenting information to the user in a way that more closely mimics physical paradigms, the system provides an intuitive mechanism for the user to view, search through and interact with displayed information in an unrestricted manner. In another embodiment, the appearance is a graphical representation of one or more data objects, related to other data objects through hierarchical relationships defined by one or more templates. As the user adjusts the viewing perspective, the appearance changes in a seemingly continuous, non-discrete manner.
Inventors:
Orbanes, Julian (Cambridge, MA, US)
Guzman, Adriana (Cambridge, MA, US)
      Plaque It!

Sponsored by:
Flash of Genius
Application Number:
09/782964
Publication Date:
07/11/2002
Filing Date:
02/14/2001
View Patent Images:
Images are available in PDF form when logged in. To view PDFs, Login  or  Create Account (Free!)
Primary Class:
Other Classes:
707/E17.111, 707/E17.141
International Classes:
(IPC1-7): G09G005/00
Attorney, Agent or Firm:
TESTA, HURWITZ & THIBEAULT, LLP (HIGH STREET TOWER, BOSTON, MA, 02110, US)
Claims:

What is claimed is:



1. A method of organizing information, said method comprising, employing a plurality of data objects contained within a data source, employing a spatial paradigm for defining hierarchical relationships between said data objects, generating a plurality of display screens, each containing a virtual representation of one or more of said data objects arranged, at least in part, in dependence on said spatial paradigm, and enabling said user to navigate said display screens in a substantially unrestricted fashion.

2. The method of claim 1 wherein the step of generating a plurality of display screens further comprises optimizing said appearance of each of said display screens for a rectangular display of a client.

3. The method of claim 1 further comprising, defining within a first of said screens a travel region, said travel region corresponding to a second of said display screens according to said hierarchical relationship, and displaying said second one of said display screens to said user in response to said user selecting said travel region.

4. The method of claim 1 further comprising employing vector graphics in defining said virtual representation.

5. The method of claim 1 further comprising employing raster graphics in defining said virtual representation.

6. A method of viewing information, said method comprising, employing a plurality of display screens, each of said display screens containing a graphical representation of one or more data objects received from a data source, employing a spatial paradigm for defining hierarchical relationships between said data objects, displaying, from an adjustable viewing perspective of a user, a first display screen corresponding to a current virtual location of said user, and enabling said user to navigate said display screens in a substantially unrestricted fashion.

7. The method of claim 6 further comprising changing said virtual location to a second user location in response to said user.

8. The method of claim 7 further comprising displaying a second display screen corresponding to said second location.

9. The method of claim 8 wherein said step of displaying said second display screen further comprises transitioning from said first display screen to said second display screen in a substantially continuous manner.

10. The method of claim 8 wherein said step of displaying said second display screen further comprises, expanding said first display screen, and displaying, during said expansion of said first display screen, said second display screen.

11. The method of claim 10 wherein said step of expanding comprises scaling said first display screen over time.

12. The method of claim 11 wherein said step of scaling comprises at least one of linearly, sinusoidally and exponentially scaling said first display screen.

13. The method of claim 8 wherein said step of displaying said second display screen further comprises, contracting said first display screen, and displaying, during said contraction of said first display screen, said second display screen.

14. The method of claim 13 wherein said step of contracting comprises scaling said first display screen over time.

15. The method of claim 14 wherein said step of scaling comprises at least one of linearly, sinusoidally and exponentially scaling said first display screen.

16. A system for organizing information, said system comprising, a computing device adapted to employ a plurality of data objects contained within a data source, and a spatial paradigm for defining hierarchical relationships between said data objects, to generate a plurality of display screens, each containing a virtual representation of one or more of said data objects arranged, at least in part, in dependence on said spatial paradigm, and to enable said user to navigate said display screens in a substantially unrestricted fashion.

17. The system of claim 16 further adapted to optimize said appearance of each of said display screens for a rectangular display of a client.

18. The system of claim 16 further adapted to define within a first of said screens a travel region, said travel region corresponding to a second of said display screens according to said hierarchical relationship, and to display said second one of said display screens to said user in response to said user selecting said travel region.

19. The system of claim 16 further adapted to employ vector graphics in defining said virtual representation.

20. The system of claim 16 further adapted to employ raster graphics in defining said virtual representation.

21. A system for viewing information, said system comprising, a computing device adapted to employ a plurality of display screens, each of said display screens containing a graphical representation of one or more data objects received from a data source, and a spatial paradigm for defining hierarchical relationships between said data objects, to display, from an adjustable viewing perspective of a user, a first display screen corresponding to a current virtual location of said user, and to enable said user to navigate said display screens in a substantially unrestricted fashion.

22. The system of claim 21 further adapted to change said virtual location to a second user location in response to said user.

23. The system of claim 22 further adapted to display a second display screen corresponding to said second location.

24. The system of claim 23 further adapted to transition from said first display screen to said second display screen in a substantially continuous manner.

25. The system of claim 23 further adapted to expand said first display screen, and to display, during said expansion of said first display screen, said second display screen.

26. The system of claim 25 further adapted to scale said first display screen over time.

27. The method of claim 26 wherein said scaling comprises at least one of linearly, sinusoidally and exponentially scaling.

28. The system of claim 23 further adapted to contract said first display screen, and to display, during said contraction of said first display screen, said second display screen.

29. The system of claim 28 further adapted to scale said first display screen over time.

30. The method of claim 29 wherein step of scaling comprises at least one of linearly, sinusoidally and exponentially scaling.

Description:

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims priority to U.S. provisional applications Ser. No. 60/182,326, filed Feb. 14, 2000, Ser. No. 60/182,368, filed Feb. 14, 2000, Ser. No. 60/240,287, filed Oct. 13, 2000 and Ser. No., not yet assigned, our attorney docket number GPH-003PR2, filed Nov. 16, 2000, entitled “System for Viewing Information.” These co-pending applications are hereby incorporated by reference in their entirety.

FIELD OF THE INVENTION

[0002] The invention generally relates to methods and apparatus for viewing information. More particularly, in one embodiment, the invention is directed to a system for enabling the user to view, search through and interact with information through a virtual environment, which is related to a selected physical paradigm, in an unrestricted manner.

BACKGROUND OF THE INVENTION

[0003] As computing technology has evolved, users have been able to access increased amounts of information from an ever-expanding universe of data sources. One example of this is the World Wide Web (hereafter, “the Web” or “Web”). Information from a myriad of sources is available to virtually anyone with a device that is connected to a network and capable of “browsing” the latter. A computer connected to the Internet and executing a browser program, such as Microsoft Internet Explorer™ or Netscape Navigator™, is one typical implementation of this.

[0004] Computing devices have become smaller and more powerful, thereby providing the user with unprecedented access to desired information when mobile. For example, wireless telephones and personal digital assistants (“PDAs”) equipped with wireless modems, when provided with the appropriate software, also permit the user to browse a network and look for information of interest.

[0005] Despite these advances in hardware and software, the sheer volume of information available can overwhelm the user. Graphical user interfaces that provide multiple views of related information (such as frames, panes, or screens) are prevalent in commercially available software products. These interfaces tend to facilitate user interaction with information presented. Unfortunately, current multi-view interfaces are severely limited by the lack of intuitive, hierarchical relationships between views, view placement and layout, and view presentation. These related views are typically ad hoc in their interaction and functionality. That is, there is little user level control over the relationships between views, view placement and layout, and view presentation.

[0006] The default behavior in a Web browser is to follow a link by replacing the current browser context. The Web page author can change this default behavior on a link-by-link basis. For example, HTML-based frames can be created and targeted programmatically by writing HTML or JAVA™ Script code. However, the user has no way to change the preprogrammed targeting. This statically defined “one-size-fits-all” behavior may be frustrating and problematic in some common browsing scenarios.

[0007] An example of the foregoing involves browsing the set of results returned by a search engine. Users typically want to explore several promising sites listed in the page of search results. The typical interaction is to follow a link, look at the page, and then actuate the back button to redisplay the search results. There are disadvantages to this ping-pong approach. First, the user loses context because the search results and followed link are not visible at the same time. Second, the constant switching of contexts requires extra navigation steps.

[0008] Another common interaction technique is to use a mouse to right-click on the link, and to choose open in new frame from the context menu. This causes the link to expand in a new frame. One deficiency in this spawning approach is that a large number of temporary frames are explicitly opened and used only briefly before being closed. This problem can be significant when small displays are used, such as those found on wireless telephones and PDAs. In addition, a cumbersome pop-up menu is typically used for each link traversal.

[0009] From the foregoing, it is apparent that there is still a need for a way to view large amounts of information in an efficient manner. The information should be arranged using a hierarchy that is intuitive to the user. It should be presented in an interface that is easy to navigate, but does not overwhelm the display device or frustrate the user due to loss of context or an excessive number of navigational steps.

SUMMARY OF THE INVENTION

[0010] In addressing the deficiencies of prior systems, the invention provides improved methods and apparatus for viewing information. In one embodiment, the invention provides, from two-dimensional display, a user's viewing perspective of a three-dimensional virtual space in which discrete data objects are located. In a further embodiment, the invention creates an array of vector elements or two-dimensional matrix of pixels for a camera viewing perspective in a three- or more dimensional space of objects. The objects are assigned to coordinates in the virtual space and the visual representation of each data object is a function of the user's viewing perspective in the virtual space. According to one feature, the user controls a virtual camera, and this viewing perspective point has coordinates. According to another feature, the user dynamically controls the viewing perspective with variable velocity and acceleration. The appearance of data objects within the viewing perspective is rendered in the user interface. In one embodiment, the data objects are obtained from crawling data sources. According to one feature, the invention breaks down boundaries between sets of data objects by dividing the sets into smaller subsets and displaying those smaller subsets. According to a further aspect, the invention displays and delivers data as function of space and time. According to one feature, the closer the data is to the user's viewing perspective in virtual space, the sooner it is downloaded for display to the user.

[0011] The system relates data objects hierarchically using a spatial paradigm. A spatial paradigm can include abstract, mathematical and physical paradigms. In one embodiment, the invention provides a system that enables the user to view displayed information in a way that is comparable to a selected physical paradigm. Example categories of physical paradigms can include information paradigms, entertainment paradigms, service paradigms and/or transaction paradigms. Example physical paradigms include, but are not limited to, finance, education, government, sports, media, retail, travel, geographic, real estate, medicine, physiology, automotive, mechanical, database, e-commerce, news, engineering, fashioned-based, art-based, music-based, surveillance, agriculture, industry, infrastructure, scientific, anatomy, petroleum industry, inventory, search engines and other like physical paradigms. By presenting information to the user in a way that more closely mimics a physical paradigm, the system provides an intuitive mechanism for the user to view, interact with and operate on displayed information.

[0012] According to one embodiment, the system provides a template for a database. The template relates to a physical paradigm, and defines hierarchical relationships between data objects stored in the database. The system profiles data sources and extracts data objects associated with the physical paradigm from at least one of those data sources. Data sources can include, for example, legacy databases, Internet Web servers, substantially real-time data sources, file systems, files, storage devices, simulations, models or the like. Data sources can also include, for example, live information feeds from any source, such as those relating to news, scientific or financial information. A data source can also be an edge server or a distributed cache server for distributing Web content closer to the user. In another embodiment, the system provides a plurality of templates. In a further embodiment, results from a search engine are arranged for the user according to a selected template.

[0013] In one embodiment, the system organizes and stores the data objects associated with the physical paradigm in the database according to hierarchical relationships defined by the template. The system displays an appearance of a subset of the data objects associated with the physical paradigm in a virtual representation. To display the appearance, the system employs the selected data objects and the template. According to another feature, the system defines a viewing perspective of the user viewing the virtual representation. In one embodiment, the appearance of the subset of data objects is dependent at least in part, on the hierarchical relationships between the subset of data objects, and also on the viewing perspective of the user. When the user changes the viewing perspective, the system changes the appearance in a seemingly continuous, non-discrete manner.

[0014] According to another feature, the system profiles and re-profiles the data sources to update the data objects stored in the database. Re-profiling can be done, for example, periodically or on command. One advantage of the viewing system is that it deconstructs prior existing hierarchical relationships between the data objects before storing the data objects in the database. According to one feature, third parties can define how their associated data objects will be organized in the hierarchical relationships and can also define the physical paradigm(s) to be employed. According to another feature, the system enables a particular data source to reserve a portion of the virtual space for data objects from the particular data source.

[0015] In another feature of the invention, the user can modify the appearance of and/or the hierarchical relationship between data objects. In one embodiment, this is done using a graphical interface, to eliminate the need for the user to understand the underlying code implementation. In some embodiments the user can modify a position, height, width and depth of a plate, a parent-child relationship, a zoom-to relationship and/or a link-to relationship.

[0016] As mentioned above, in one embodiment, the system of the invention displays information to the user in a way that more closely tracks a selected physical paradigm. One way that the system does this is by employing a successive revelation of detail with regard to the displayed data objects. Successive revelation of detail approximates a physical appearance that the subset of data objects would have to the user having the viewing perspective of the user. In one embodiment, this entails providing the virtual appearance for each of the subset of data objects by rendering selected details of the subset of data objects. According to one feature, the system defines a virtual distance between the user and each of the data objects, and provides a visual appearance of each of the data objects that is at least in part dependent on the virtual distance. More particularly, the system displays more detail for data objects in response to a decreasing virtual distance, and less detail in response to an increasing virtual distance.

[0017] According to another feature, the system takes into account a virtual viewing direction of the user when rendering data objects for display. More particularly, the system defines a viewing direction for the user and an angle between the viewing direction and the data objects. The system then alters the visual appearance of the data objects based, at least in part, on this angle. Thus, the system can provide a three dimensional feel to a viewing user.

[0018] In a further embodiment, the system enables the user to control the viewing perspective. This feature provides the user with a feeling of virtually traveling through the data objects. By way of example, the data objects can be related to a grocery store and controlling the perspective can provide the user with a virtual experience comparable to walking through a grocery store. Further, in another embodiment, the user, unlike with physical barriers, can pan and zoom through the grocery store in any direction without regard for the “aisles” that may exist.

[0019] In a processing time saving feature, the system determines a projected virtual trajectory of the user by monitoring the user control of the viewing perspective. In this way, the system predicts the data objects that the user is most likely to next view. Using this prediction, the system caches graphical information for one or more data objects located along the projected virtual trajectory. The system then uses the cached graphical information to provide the virtual appearance for the one or more data objects, should the user continue along the projected virtual trajectory. According to one feature, the trajectory can be based on the virtual distance (e.g., x, y, z and time coordinates) between data items or based on the hierarchical relationship (e.g., parent—grandparent—brother) of the data objects.

[0020] According to another feature, the system enables the user to increase and decrease the virtual distance with respect to each of the subset of data objects, and provides the visual appearance of the subset of data objects, at least in part, in dependence on the changing virtual distance. In a related feature, the system defines a rate of change of the virtual distance, enables the user to control the rate of change, and provides the visual appearance of the subset of data objects at least in part in dependence on the rate of change. In this way, the system provides the user with a virtual experience comparable to accelerating or decelerating. In another related feature, the system defines a translational position of the user with respect to the subset of data objects, and enables the user to change the translational position with respect to the subset of the data objects. The system provides the visual appearance of the subset of data objects, at least in part, depending on the translational position. According to a further feature, the system defines a rate of change of the translational position of the user with respect to the subset of data objects, and enables the user to change this rate. In yet another feature, the user can also change viewing angle, along with the rate of change of the viewing angle.

[0021] According to another feature, the system of the invention provides for displaying information in the displays of a variety of platforms such as, televisions, personal computers, laptop computers, wearable computers, personal digital assistants, wireless telephones, kiosks, key chain displays, watch displays, touch screens, aircraft, watercraft, automotive displays, vending machines, machines that play music, and/or any other devices with a display screen. In one embodiment, when information is displayed, it is displayed with discrete options. In another embodiment, the options are ergonomically arranged to fit the hand of the user (e.g., having five selections in an arched presentation). The system also envisions employing a variety of user controls to provide the above discussed user controlled viewer experience. By way of example, the user may employ standard mouse and/or joystick controls. The user may also employ, for example, keystrokes, touch screen controls, electromechanical buttons, voice control, and/or a PDA pointer/touch screen/button combination. A new type of handheld wireless control is also envisioned as being applicable to the above-discussed system. Such a handheld wireless control is ergonomic in design and incorporates both electromechanical push buttons and a joystick. In one embodiment, the joystick can be manipulated in any direction, including up and down.

[0022] According to one implementation, the system organizes the data objects in a series of hierarchical plates for display. In one embodiment, each of the hierarchical plates includes hierarchically equivalent ones of the data objects. In another embodiment, each data object is organized on its own plate. According to one embodiment, the system defines a virtual distance from each of the hierarchical plates to the user, and displays to the user a least a subset of the hierarchically equivalent ones of the data objects included in a closest one of the hierarchical plates. The closest one of the hierarchical plates is defined as having the smallest virtual distance to the user. As the smallest virtual distance decreases, the system displays a reduced number of the hierarchically equivalent data objects included in the closest one of the hierarchical plates, but displays more detail with respect to the reduced number of data objects. As the smallest virtual distance increases, the system displays an increased number of the hierarchically equivalent data objects included in the closest one of the hierarchical plates, but displays less detail with respect to the increased number.

[0023] In another embodiment, each hierarchical plate has an associated virtual thickness and defines, at least in part, the virtual distance from the user to one or more of the data objects. As the user navigates through the hierarchical plate, the system displays more detail with respect to the one or more data objects. In other embodiments, some or all of the hierarchical plates are transparent, and thus the user can also view data objects on hierarchical plates that are located virtually behind the closest hierarchical plate.

[0024] According to a further embodiment, the system enables the user to pan the data objects on one or more hierarchical plates, such as the closest hierarchical plate, by defining a virtual translational position of the user with respect to the subset of objects on those hierarchical plates, and enabling the user to change the translational position with respect to the subset of data objects on those hierarchical plates. According to another feature, the system provides the visual appearance of the subset of the data objects, at least in part, in dependence on the translational position. In a related feature, the system enables the user to pan through vast numbers of data objects contained on one or more hierarchical plates by determining the subset of hierarchically equivalent data objects to be displayed, at least in part, in dependence on the translational position of the user.

[0025] According to yet a further embodiment, the system provides the user with a virtual viewing experience comparable to zooming through the information contained on the hierarchical plates. According to one feature, the thresholds between hierarchical plates are set such that the experience to the user is comparable to a continuous transition through a virtual experience that is comparable to an actual experience associated with the selected physical paradigm. In one aspect of the zooming feature, the system defines a threshold smallest virtual distance at which the closest hierarchical plate is determined to be located virtually behind the user. In response to the user navigating the viewing perspective to the threshold smallest virtual distance, the system ceases to display the closest one of the hierarchical plates, and defines a hierarchical plate having a next smallest virtual distance to be the closest one of the hierarchical plates.

[0026] According to another feature, the system provides an on-screen hierarchical positional indication to the user. In one embodiment, the system employs a series of concentric graphical screens to indicate position. By way of example, a hierarchical plate being viewed may be contained in a center-most screen, with hierarchical plates or objects that are located virtually behind the viewer being displayed in concentrically outer screens. In an alternative implementation, the system provides an on-screen “bread crumb,” text or graphical indication of the user's virtual hierarchical position.

[0027] In a related embodiment, the system defines a three-dimensional coordinate system in virtual space and locates the data objects in the virtual space according to a template for a selected physical paradigm. In other embodiments, the system uses other multi-dimensional coordinate systems, such as spherical and/or cylindrical coordinate systems. The system displays a graphical representation of the subset of data objects and defines a viewing perspective of the user viewing the graphical representation. According to another feature, the system provides the graphical representation for the subset of data objects, at least in part, in dependence on the viewing perspective of the user.

[0028] In another aspect of the invention, the zoom technology can be distributed to users through various channels. In one embodiment, the zoom technology can be integrated into the operating systems of possible clients, such as those mentioned above. The manufacturer of a client licenses the invention for the rights to incorporate the zoom technology into its operating system. In another embodiment, the manufacturer of a client can license and provide the Zoom Browser™ as part of software resident on the client at the time of purchase. In another embodiment, the Zoom Browser™ can be sold as a separate software product to be purchased by the consumer and installed on the client by the consumer. In another embodiment, content providers can purchase/license a Zoom Enabling Kit™ to convert existing databases to Zoom Enabled™ databases. In another embodiment, application creators can purchase/license the zoom technology and incorporate it directly into applications sold to client manufacturers or consumers.

BRIEF DESCRIPTION OF THE DRAWINGS

[0029] The foregoing and other objects, features, and advantages of the invention, as well as the invention itself, will be more fully understood from the following illustrative description, when read together with the accompanying drawings, in which:

[0030] FIG. 1 is a conceptual diagram illustrating generation of a virtual display space in accord with an embodiment of the invention;

[0031] FIG. 2 is a schematic view depicting multiple viewing perspectives in accordance with an embodiment of the invention;

[0032] FIG. 3 depicts illustrative display images associated with corresponding user viewing perspectives shown in FIG. 2 and in accordance with an embodiment of the invention;

[0033] FIGS. 4 A- 4 C are schematic views depicting data objects modeled as a node tree;

[0034] FIG. 5 depicts illustrative display images in accordance with an embodiment of the invention;

[0035] FIG. 6 is a conceptual diagram illustrating use of a plurality of templates in accordance with the invention;

[0036] FIG. 7 is a flowchart depicting a method of rendering detail in accordance with an embodiment of the invention;

[0037] FIG. 8 is an illustrative example of rendering detail in accordance with an embodiment of the invention;

[0038] FIG. 9 depicts illustrative embodiments of breadcrumb trails in accordance with the invention;

[0039] FIG. 10A illustrates use of search terms in accordance with an embodiment of the invention;

[0040] FIG. 10B illustrates operation of a visual wormhole in accordance with an embodiment of the invention;

[0041] FIG. 11 is a schematic view depicting a system architecture in accordance with an embodiment of the invention;

[0042] FIG. 12 is a schematic view depicting the conversion of a file system directory tree into a hierarchical structure of data objects in accordance with an embodiment of the invention;

[0043] FIG. 13 is a schematic view depicting the conversion of a Web page to a hierarchical structure of data objects in accordance with an embodiment of the invention;

[0044] FIG. 14 is a schematic view depicting the conversion of a Web page to a hierarchical structure of data objects in accordance with an embodiment of the invention;

[0045] FIG. 15 is a schematic diagram depicting the conversion of an XML hierarchical structure of data objects to the ZML™ format in accordance with an embodiment of the invention;

[0046] FIG. 16 depicts a method of downloading data from/to a server to/from a PDA client, respectively, in accordance with an embodiment of the invention;

[0047] FIG. 17 depicts illustrative display images of user viewing perspectives as rendered by a PDA in accordance with an embodiment of the invention;

[0048] FIG. 18 depicts illustrative display images of user viewing perspectives as rendered by a wireless telephone in accordance with an embodiment of the invention;

[0049] FIG. 19 depicts illustrative display images of the user viewing perspective as rendered on a kiosk; and

[0050] FIG. 20 depicts a hand-held device enabling the user to control the viewing perspective in accordance with an embodiment of the invention.

DESCRIPTION OF AN ILLUSTRATIVE EMBODIMENT

[0051] FIG. 1 is a schematic diagram depicting an exemplary embodiment of a viewing a system 100 in accord with the invention. The viewing system 100 includes an extractor module 102 , a stylizer module 104 , a template 105 , a protocolizer 106 , user controls 107 , and a display 108 , which present data objects to the user in a virtual three dimensional space 110 . The data source or sources 112 may be external to the system 100 , or in some embodiments may be internal to the system 100 . The extractor 102 , stylizer 104 and protocolizer 106 operate in conjunction to organize data objects from the data source 112 and to locate for display those data objects in the virtual three-dimensional space 110 . Exemplary displayed data objects are shown at 114 a - 114 h . Described first below is an illustrative embodiment of the invention from the point of view of the user viewing the data objects 114 a - 114 h from an adjustable viewing perspective. Following that description, and beginning with FIG. 11 , is an illustrative description of the operation of the extractor module 102 , the stylizer module 104 , the protocolizer 106 , the user controls 107 , and the display 108 .

[0052] In the virtual space 110 , the adjustable user viewing perspective is represented by the position of a camera 116 . The user manipulates the controls 107 to change the viewing perspective, and thus the position of the camera 116 . Through such manipulations, the user can travel throughout the virtual space 110 , and view, search through, and interact with, the data objects 114 a - 114 g . According to the illustrative embodiment, the system 100 enables the user to change the viewing perspective of the camera 116 in an unrestricted fashion to provide the user with the feeling of traveling anywhere within the virtual space 110 . In the embodiment of FIG. 1 , the virtual space 110 is modeled as a Cartesian, three-dimensional coordinate system. However, other embodiments may include more dimensions. Additionally, the system 100 may employ other three dimensional coordinate systems, such as cylindrical and spherical coordinate systems. Further, as discussed below, such as with respect to FIG. 2 , the data objects 114 a - 114 h may be organized in the virtual space 110 in a variety of manners. In one embodiment, the camera 116 does not rotate, but moves freely along any of the three axes (i.e., i, j, k). By disabling rotation, it becomes easier for the user to remain oriented, and simpler to display the data objects 114 a - 114 g . Disabling rotation also reduces the necessary computations and required display information details, which reduces data transfer bandwidths, processor and/or memory performance requirements. In other embodiments the camera 116 can move rotationally.

[0053] As the user adjusts the viewing perspective of the camera 116 , the system 100 changes the appearance of the data objects 114 a - 114 g accordingly. For example, as the user moves the camera 116 closer to a data object (e.g., 114 a ), the system 100 expands the appearance of the displayed image of the data object (e.g., 114 a ). Similarly, as the user moves the camera 116 farther away from a data object (e.g., 114 a ), the system 100 contracts the image of the data object 114 a . Also, the system 100 displays the data object closest to the camera 116 as the largest data object and with the most detail. Alternatively, the system 100 displays data objects that are relatively farther away from the camera 116 as smaller and with less detail, with size and detail being a function of the virtual distance from the camera 116 . The camera has a viewing direction 124 . A data object may not be directly in the path of the viewing direction 124 (e.g., 114 b ), but at an angle 128 from the viewing direction. The system 100 also uses the viewing angle 128 to determine the size of the data object. In this way, the system 100 provides the user with an impression of depth of the fields. In the Cartesian, three-dimensional coordinate system model of the virtual space 110 , the system 100 calculates the virtual distance from the camera to each data object using conventional mathematical approaches. In a further embodiment discussed in more detail below, the system 100 defines the smallest threshold virtual distance, less than which the system 100 defines as being behind the position of the camera 116 . The system 100 removes from view those data objects determined to be virtually behind the camera 116 . According to another feature, data objects can be hidden from view by other data objects determined to be virtually closer to the camera 116 .

[0054] FIG. 2 provides a diagram that illustrates one way the system 100 can conceptually organize data objects, such as the data objects 114 a - 114 h , depicted in FIG. 1 . As depicted in FIG. 2 , the system 100 conceptually organizes the data objects 202 a - 202 e on virtual plates 204 a - 204 c in the virtual space 110 . As in FIG. 1 , the virtual space 110 is modeled as a three axis (i.e., i, j, k) coordinate system. Again, the position 206 of a virtual camera 116 represents the user's viewing perspective. Although not required, to simplify the example, the camera 116 is fixed rotationally and free to move translationally. The data objects 202 a - 202 e are organized on the virtual plates 204 a - 204 c in a hierarchical fashion, based on a simplified template for a women's clothing store. As the user views information in the virtual space, as indicated by position “a” 206 a of the camera 116 , the system 100 illustratively presents an icon or graphical representation for “women's clothes” (data object 202 a ). However, as the user visually zooms into the displayed clothing store, as represented by positions “b-d” 206 b - 206 d of the camera 116 , the system 100 presents the user increasing detail with regard to specific items sold at the store. As the user virtually navigates closer to a particular plate, the system 100 displays less of the information contained on the particular plate to the user, but displays that portion within view of the user in greater detail. As the user virtually navigates farther away, the system 100 displays more of the information contained on the plate, but with less detail.

[0055] As described below, and as shown on the plate 204 c , same plates may contain multiple data objects, thus enabling the user to pan across data objects on the same plate and zoom in and out to view data objects on other plates. In other embodiments, plates can be various sizes and shapes. Conceptually, each plate 204 a - 204 c has a coordinate along the k-axis, and as the user's virtual position, represented by the position 206 of the camera 116 , moves past the k-axis coordinate for a particular plate, the system 100 determines that the particular plate is located virtually behind the user, and removes the data objects on that plate from the user's view. Another way to model this is to represent the closest plate, for example the plate 204 a , as a lid and as the user's viewing position 206 moves past the plate 204 a , the system 100 “removes the lid” (i.e. plate 204 a ) to reveal the underlying plates 204 b and 204 c . For example, the closest plate may contain the continent of Europe. At first, when the user's viewing perspective is high along the k-axis, the user may view a map showing Europe displayed as a single entity. Then, as the user visually zooms through that plate and that plate is no longer in view, the system 100 may display to the user a plurality of European countries organized on a plurality of smaller plates. Alternatively, the system 100 may display a plurality of European countries organized on a single plate.

[0056] FIG. 3 provides a more detailed view of the data objects 202 a - 202 c of FIG. 2 . FIG. 3 also indicates at camera 116 positions a-d 206 a - 206 d , the various appearances of displayed data objects at each of the viewing perspectives of the user. In some embodiments, the system 100 renders the plates 204 a - 204 c as being opaque. Such an embodiment is illustrated by the appearances 300 a - 300 d of the data objects 202 a - 202 e in FIG. 3 . As shown with opaque plates, the appearance 300 displayed to the user does not reveal data objects located initially behind other data objects. For example, with the user viewing perspective at position “a” 206 a the system 100 only displays the appearance 300 a of the data object 202 a on the opaque plate 204 a . Similarly, with the user having a virtual viewing perspective at position “b” 206 b , the system 100 only displays the appearance 300 b the data object 202 b located on the opaque plate 204 b .

[0057] In other embodiments, the system 100 models the plates 204 a - 204 c as being transparent. With transparent plates, the system 100 reveals to the user both the data objects on the closest plate, such as the plate 204 a , and the data objects on the plate or plates virtually located hierarchically behind the closest plate, such as the data objects on the plate 204 b . Such an embodiment is depicted at appearances 302 and 304 in FIG. 3 . In the illustrative embodiment, the system 100 depicts the data objects on those plates that are virtually located further from the user as being smaller in the appearance, and with less detail. For example, referring to appearance 302 , with the user viewing from the virtual position “a” 206 a , the system 100 displays the data object 202 a on the virtually closet plate 204 a as being larger than the data object 202 b on the virtually farther away plate 204 b . Similarly, referring to appearance 304 , with the user viewing from the virtual position “b” 206 b , the system 100 displays the data object 202 b on the virtually closest plate 204 b as being larger and with more detail than the data objects 202 c - 202 e on the plate 204 c.

[0058] As mentioned briefly above, and as discussed further below, one advantage of the system 100 is that it can deconstruct prior existing hierarchical relationships between data objects, such as the data objects 202 a - 202 e , and then reconstruct new hierarchical relationships based on a spatial paradigm. The spatial paradigm can include abstract, mathematical and physical paradigms. For example, the system can define a hierarchical relationship using a template related to a physical paradigm. As discussed above with respect to FIGS. 2 and 3 , one illustrative physical paradigm is a retail store, such as a women's clothing store. Once the system 100 reorganizes the hierarchical relationships based on a template related to a physical paradigm, it can display the data objects to the user in such a way that relates to the hierarchical organization of the data objects in the physical paradigm, and thus enables the user to intuitively search through and interact with the data objects. By the way of example, in FIGS. 2 and 3 , the user can easily shop for high heel shoes by viewing the virtual clothing store modeled in the virtual space 110 , employing the user controls 107 to pan to women's clothing (data object 202 a ), to zoom and pan to women's shoes such as contained on the plate 204 b , and then to pan and zoom to the high heels (data object 202 b ). As shown on the plate 204 c , the user can zoom further to view the data objects 202 c - 202 e to find additional information about a particular pair of shoes, such as sales history (data object 202 c ), where the shoes are made (data object 202 d ) and customer testaments (object 202 e ).

[0059] As an alternative to the Cartesian coordinate system of FIGS. 1 and 2 , the virtual space 110 , in which the system 100 hierarchically organizes the data objects to spatially relate to each other based on a physical paradigm, can also be conceptualized as a node tree. FIGS. 4 A- 4 C illustrate such a conceptualization. More particularly, FIG. 4A depicts a node tree 400 that defines hierarchical relationships between the data nodes 402 a - 402 h . FIG. 4B depicts a tree structure 404 that provides potential visual display representations 406 a - 406 h for each of the data objects 402 a - 402 h . FIG. 4C provides a tree structure 408 illustrative of how the user may navigate a displayed virtual representation 406 a - 406 h of the data objects 402 a - 402 h . The nodes of the node tree are representative of data objects and/or the appearance of those data objects.

[0060] FIG. 4C also illustrates one method by which the system 100 enables the user to navigate the data objects 402 a - 402 h in an unrestricted manner. As indicated by the dashed connections 410 a - 410 d , the system 100 enables the user to virtually pan across any data object on a common hierarchical level. By the way of example, the user may virtually navigate into a clothing store, graphically represented by the graphic appearance 406 a and then navigate to women's clothing represented by the graphic appearance 406 b . However, the system 100 , based on a template related to a clothing store, has hierarchically organized men's clothing, represented by the graphic appearance 406 c , to be at an equivalent hierarchical location to women's clothing 406 b . Thus, the system 100 enables the user to pan visually from the women's clothing graphic appearance 406 b to the men's clothing graphic appearance 406 c , via the controls 107 , to view men's clothing.

[0061] FIG. 4C also illustrates how the system 100 enables the user to virtually travel through hierarchical levels. By way of example, and as indicated by the links 412 a - 412 b , the user can virtually navigate from any data object, such as the object 402 a , assigned to a parent node in the tree structures 400 , 404 and 408 , to any data object, such as objects 402 b and 402 c assigned to a child node in those tree structures. The system 100 also enables the user to navigate visually for example, from a hierarchically superior data object, such as the object 402 a , through data objects, such as the data object 402 c along the paths 412 b and 412 d to a hierarchically inferior data object, such as the data object 402 e . However, the motion displayed to the user is seemingly continuous, so that while virtually traveling through for example, the data object 402 c , the system 100 displays the graphic appearance 406 c as being larger with more detail and then as disappearing from view as it moves to a virtual position behind the user's viewing position.

[0062] FIG. 4C also illustrates how the system 100 enables the user to navigate between data objects, without regard for hierarchical connections between the data objects 402 a - 402 h . More particularly, as indicated by the illustrative paths 414 a and 414 b , the user can navigate directly between the data object 402 a and the data object 402 g. As described in detail below with respect to FIGS. 10A and 10B , the system 100 also provides such unrestricted navigation using a variety of methods including by use of “wormholing,” “warping,” and search terms. In the node tree model of FIGS. 4 A- 4 C, the system 100 displays a graphical representation of data objects to the user in a similar fashion to the coordinate-based system of FIGS. 1 - 3 . More specifically, data objects located at nodes that are hierarchically closer to the user's virtual viewing position are displayed as being larger and with more detail than data objects located at nodes that are hierarchically farther away from the user's virtual viewing position. By way of example, in response to the user having a virtual viewing position indicated by the camera 416 b , the system 100 displays the graphic appearance 406 a to the user with greater detail and at a larger size than, for example, the graphic appearances 406 b - 406 h. Similarly, the system 100 displays the graphic appearances 406 b and 406 c to the user with greater detail and at a larger size than it displays the graphic appearances 406 d - 406 h. The system 100 employs a variety of methods for determining virtual distance for the purpose of providing a display to the user that is comparable to a physical paradigm, such as for example, the clothing store of FIGS. 4 A- 4 C.

[0063] In the embodiment of FIG. 4 A, the system 100 determines the user's virtual viewing position, indicated at 416 a . Then, the system 100 determines which data object 402 a - 402 h is closest to the user's virtual position and defines a plurality of equidistant concentric radii 418 a - 418 c extending from the closest data object, 402 c in the example of FIG. 4A . Since the data node 402 c is closest to the user's virtual position, the system 100 displays the data object 402 c with the most prominence (e.g., largest and most detailed). Alternatively, the data objects 402 a , 402 b , 402 d and 402 e , which are located equidistant from the data node 402 c are displayed similarly with respect to each other, but smaller and with less detail than the closest data node 402 c.

[0064] In another embodiment, the virtual distance calculation between nodes is also based on the hierarchical level of the data node that is closest to the user's virtual position. The nodes on the same hierarchical level are displayed as being the same size and with the same detail. Those nodes that are organized, hierarchically lower than the node closest to the user are displayed smaller and with less detail. Even though some nodes may be an equal radial distance with respect to the closest node, they may yet be assigned a greater virtual distance based on their hierarchical position in the tree 400 .

[0065] In a physical paradigm, such as the retail clothing store of FIGS. 4 A- 4 C, the user is less likely to be interested in data objects located at nodes on the same hierarchical level. By way of example, the user browsing men's clothing at the node 406 c is more likely to navigate to men's pants at the node 406 e than to navigate to women's clothing at the node 412 a . Thus, in another embodiment, the system 100 includes the number of hierarchical links 412 a - 412 g between nodes in the virtual distance calculation. For example, if the user's virtual location is at node 406 e (e.g., pants), the radial distance for nodes 406 d (e.g., shirts), 406 g (e.g., type of shirt) and 406 h (e.g., type of pants) may be equal. However, the calculated virtual distance to node 406 h (e.g., type of pants) is less then than the calculated virtual distance to nodes 406 d (e.g., shirts) and 406 g (e.g., type of shirt), since the node 406 h (e.g., type of pants) is only one link 412 g from the node 406 e (e.g., pants). Nodes separated by a single hierarchical link, such as the nodes 406 e and 406 h , are said to be directly related. The user is still able to freely travel to the less related nodes 406 d and 406 g in a straight line, so they are displayed. However the system 100 displays those nodes as being smaller and with less detail. When discussed in terms of the physical paradigm, the user is more likely to want to know about a type of pants 406 h when at the pants node 406 e than a type of shirt 406 g.

[0066] In another embodiment, the system 100 gives equal weight to the direct relationship basis and the same hierarchical level basis in the virtual distance calculation. With this method, the system 100 considers the nodes 406 d and 406 h to be an equal virtual distance from the node 406 e , and the node 406 g to be farther away from the node 406 e . Other embodiments may weight variables such as directness of relationship and hierarchical level differently when calculating virtual distance. Again, discussing in terms of the physical paradigm, the user may be equally interested in shirts 406 d or a type of pants 406 h when at the pants node 406 e . The system 100 assumes that the user is less likely to want to know about a type of shirt 406 g and thus, the system 100 sets the virtual distance greater for that node 406 g than the other two nodes 406 d , 406 h , even though the radial distance is equal for all three nodes 406 d , 406 g , 406 h.

[0067] FIG. 5 depicts a plurality of display images 500 (i.e., graphic appearances) for the user having particular viewing perspectives, as rendered by a browser. As depicted, the user can navigate from a hierarchically macro level of broad categories (e.g., graphic appearance 508 ) to a hierarchically micro level of individual products (e.g., graphic appearance 502 ) using a template 105 related to a retail physical paradigm. To create the navigable environment, the system 100 organizes the data objects according to the template 105 . As discussed in further detail below with regard to FIG. 11 , the extractor module 102 collects data objects that relate to the physical paradigm. These data objects (e.g., leaf nodes), which may be products, services, transactions, actions and/or data, are spread out on a metaphorical field. Conceptually, according to the field metaphor, the system 100 initially does not stack the data objects vertically, but instead spreads them out on a base plane of the field. Then the system 100 drapes sheets of labels over the data objects, grouping them in to functional categories. For example, the system 100 groups the coffees and teas depicted at 502 a - 502 h under the sheet “coffee and tea” and provides a graphic appearance 504 a representative of coffee and tea. Similarly, the system 100 provides overlaying grouping sheets “sodas and beverages” 504 b , “ingredients” 504 c , “snacks and sweets” 504 d , and “meals and sides” 504 e. In effect, the overlaying grouping sheets label groups of items and summarize their purpose much in the same way as do the aisles in a store. These sheets can be modeled as ‘lids’ that the user can open to see the contents or detail within.

[0068] The system 100 then conceptually drapes larger grouping sheets over the first grouping sheets, thus grouping the data objects into greater categories. Such groupings are also evident in the hierarchical node structures of FIGS. 4 A- 4 C. In the present illustrative example, the system 100 further groups the “coffee and tea” 504 a , the “sodas and beverages” 504 b and the “ingredients” 504 c groups under the “shopping” category 506 a. The system 100 continues this process until there is only a top-level grouping sheet that provides a home or start graphic appearance to the user. For example, the system 100 further groups the “shopping” grouping 506 a, the “food forum” grouping 506 b and the “recipes” grouping 506 c under the “food” grouping sheet 508 a of the home graphic appearance 508 . In one embodiment, the grouping sheets are the conceptual plates, such as the plates 204 a - 204 c discussed with respect to FIG. 2 .

[0069] As discussed in further detail with respect to FIG. 10 , the stylizer module 104 organizes data objects using the template 105 . The template 105 relates to a physical paradigm. The user has experience with the physical world and how to interact with it. However, data in a database or scattered throughout the Web is typically not stored by hierarchical relationships that resemble any physical paradigm and thus lack intuitive feel. Physical paradigms cover a plurality of disciplines and industries. For example, physical paradigms can represent finance, education, government, sports, media, retail, travel, geographic, real estate, medicine, physiology, automotive, mechanical, database, e-commerce, news, infrastructure, engineering, scientific, fashion-based, art-based, music-based, anatomy, surveillance, agriculture, petroleum industry, inventory, search engines and internal personal digital assistant structure.

[0070] By relating a template to a physical paradigm, the system 100 enables the user to view and navigate through data from broad concepts, such as food (shown at 508 a ) to details, such as ground coffee beans (shown at 502 d ) and through everything in between. Table 1 below lists some examples of physical paradigms, along with illustrative broad (macro) concepts and related detailed (micro) elements. 1

TABLE 1
Physical Paradigm Macro Micro
Manufacturing Supply and Demand Unit Performance
Ecology Global Biology Local Chemistry
Information Systems Network Capacity Device Analysis
Economics Many Markets Many or One
Product(s)
Organizational Charts Company-Wide diagram Personal/Unit
Inspection
Computer Programs Functional Diagrams/Flows Function Code
Electronics Broad Functions Detailed Circuitry
Retail Shopping Broad Categories Individual Products

[0071] As mentioned above, one example conceptual layout of a template employs a field metaphor. According to a field template, the system 100 organizes the leaf nodes representing data objects on the field, without covering them with labels. Such an embodiment enables the user to pan over the laid-out data objects and to zoom visually into data objects of interest. Such a template can be considered analogous to spreading out all of the pages of a document on a table, instead of stacking the pages into a pile. Such a template enables the user to easily preview and print large data sets, such as Web sites.

[0072] Another example template 105 relates to a card catalog paradigm. In this embodiment, the extractor module 102 extracts information describing elements of a data source, such as author, date, brief description, number of pages, title, size, key words, images and/or logos. The system 100 then organizes the extracted information much like a library card catalog system, thus enabling the user to browse visually many data sources, such as Web sites, for their essential information.

[0073] Another example template relates to organizing a graphical representation of data objects for use in a kiosk. In one embodiment, a kiosk is a remote computer in a public place with which the user can communicate by using, for example, a wireless link, between the user's handheld computer and the kiosk. In another embodiment, the kiosk is a computing device wherein the user communicates directly with the kiosk, for example, by way of a keypad or a touch screen to navigate through and interact with the displayed data objects. According to one embodiment, the system 100 arranges graphical representations of the data objects ergonomically in an arched pattern to fit a person's hand. In one preferred embodiment, the system 100 displays five or less options per hierarchical abstraction level so that the user can swiftly touch choices using one hand on the touch screen to navigate through the available data objects. Illustrative kiosk displays are depicted in FIG. 19 and discussed in further detail with respect to that Figure. In one embodiment, in response to the user navigating to the leaf nodes, the system 100 may display more than five graphical representations of data objects to the user. By way of example, in response to the user navigating to the men's pants node 406 e of FIG. 4 , the system 100 may display to the user more than five selections of men's pants.

[0074] Another example template 105 relates to a geographical physical paradigm. The geographic appearance template 105 is similar to the retail template illustrated in FIG. 5 . The system 100 extracts data objects to be the leaf nodes and conceptually spreads them out on a base plane or field. Next, the system 100 hierarchically groups, labels and generates graphic appearances for the leaf nodes until ultimately the system 100 provides a home display. However, with a geographical template, data nodes have spatial relevance. Hotels, restaurants, and stadiums all have a place in the world and therefore have a specific i, j, k coordinate location in the virtual space 110 associated with their actual position in the physical world. Hierarchical abstraction levels or groupings include, for example, World, Continent, Country, City, Street, Buildings, and IntraBuilding.

[0075] Another example template is a Body Zoom™ template. This is a template to store, display, retrieve all the physiological, anatomic, medical, aesthetic and information about each and all body parts as related to medical, biotechnological, chemical, biologic, psychologic conditions. For example, the system 100 displays a human body, and the user chooses to zoom into a specific body part. The system 100 changes the viewing perspective to display information of/about and related to the body part chosen by the user. In one embodiment, the body template is a zoomable map of a clothing store where data objects corresponding to clothing products are located in virtual space in accordance with the body part they are intended for. Shoes are in the foot region, hats are in the head region, shirts in the torso region, and gloves in the hand region. A similar methodology can be used for supermarkets, using supermarket aisles as the template. Another example is a desktop financial template. Using this template, the system 100 displays a picture of a desk with a calendar, phone, stock ticker, a newspaper and the like. Each item displayed generates a function when the user navigates to that item. For example, when the user navigates to the phone, the system 100 performs calling functions (e.g., dialing a user entered number), and when the user navigates to the newspaper, the system 100 zooms the viewing perspective through the news, allowing the user to navigate in an unrestricted fashion.

[0076] FIG. 6 depicts a block diagram 601 illustrating the use of multiple templates in combination. In this illustration, four templates 603 , 605 , 607 and 609 represent four different transportation services; car rentals 603 , buses 605 , taxies 607 , and subways 609 . Illustratively, the bus 605 and subway 609 templates contain map and schedule information, and fares are based on the number of stops between which a rider travels. The taxi template 607 has fare information based on mileage and can contain map information for calculating mileage and/or fares. The car rental template 603 contains model/size information for various vehicles available for rent, and fares are based on time/duration of rental. The hierarchical layout for each template 603 , 605 , 607 , and 609 is organized in accord with the invention to provide an intuitive virtual experience to the user navigating the information. As depicted in FIG. 6 , the templates 603 , 605 , 607 , and 609 can themselves be hierarchically organized (i.e. a top-level hierarchical relationship) through the use of the super templates 611 , 613 and 615 . More specifically, in one example, the system 100 organizes the templates 603 , 605 , 607 , and 609 using a menu super template 611 . The menu super template 611 relates the templates 603 , 605 , 607 , and 609 on a common hierarchical level, showing that all four transportation services 603 , 605 , 607 , and 609 are available. Illustratively, the super template 611 organizes the templates 603 , 605 , 607 , and 609 alphabetically.

[0077] In another example, the system 100 organizes the templates 603 , 605 , 607 , and 609 using a map super template 613 . The map super template 613 relates to a geographical location physical paradigm. The map super template 613 relates the four templates 603 , 605 , 607 , and 609 in accordance with the geographical relationship between the represented transportation services (i.e. car rental, bus, taxi and subway). The map super template 613 can be used, for example, when the user wants to know which transportation services are available at a particular geographical location. For example, the user may be trying to decide into which airport to fly in a certain state 614 , and wants to locate information about transportation services available at the different airports within the state.

[0078] In a further example, the system 100 organizes the templates 603 , 605 , 607 and 609 using a street super template 615 . The street super template 615 relates to a street layout physical paradigm. The street super template 615 spatially relates the templates 603 , 605 , 607 and 609 to each other in terms of their street location. The super template 615 can be used, for example, when the user has a street address and wants to know which transportation services are available nearby. In a further embodiment, the user can begin with the map super template 613 to find a general location and then pan and zoom to the street level using the street super template 615 .

[0079] As skilled artisans will appreciate, the system 100 may also employ any number of templates 105 in combination. By way of example, with regard to the kiosk of FIG. 19 , in one embodiment, the system 100 may first employ the ergonomic display discussed above, but then at some point switch to employing a display corresponding to a geographical template. Illustratively, such may be the case when a kiosk user is navigating to hotel accommodations. The system 100 may employ a geographic appearance template to display hotel locations to the user.

[0080] Additionally, the system 100 may employ irregular display shapes for advanced visual recognition. For example, the graphic appearance associated with each data node can be defined to have a unique shape such as star, pentagon, square, triangle, or the like. With a conventional desktop metaphor, display area availability is at a premium, thus rendering it impractical to employ irregular shapes. However, the panning and zooming features of the system 100 render display space essentially infinite. Thus, the display of virtually any client can be configured in favor of readability and an overall user experience. An aspect of the illustrative viewing system 100 provides the user with the sense of real-time control of the displayed data objects. Rather than a stop and go display/interactive experience, the system 100 provides an information flow, a revealing and folding away of information, as the user requires information. Accordingly, the state of the system 100 is a function of time. The user adjusts the virtual viewing position over time to go from one data object to the next. Therefore, a command for the virtual viewing position of the user, represented in FIGS. 1 and 2 by the position of the camera 116 , is of the form f(x, y, z), where (x, y, z)=f(t). The appearance of data objects that the system 100 displays to the user is a function of time as well as position.

[0081] According to the illustrative embodiment, as the user changes viewing perspective, the system 100 changes the appearance of a graphical representation of the data objects in a smooth, continuous, physics-based motion. According to one embodiment, all motion between viewing perspective positions, whether panning (e.g., translational motion along the i, j and k axes of FIGS. 1 and 2 ) or zooming (e.g., increasing detail of closest data objects), is performed smoothly. Preferably, the system 100 avoids generating discrete movements between locations. This helps ensure that the user experiences smooth, organic transitions of data object graphical appearances and maintains context of the relationship between proximal data objects in the virtual space, and between the displayed data objects and a particular physical paradigm being mimicked by the system 100 .

[0082] In one embodiment, the system 100 applies a sine transformation to determine the appropriate display. For example, the virtual motion of the user can be described as linear change from t=0 to t=1. The system 100 applies a sine transform function to the discrete change, for example t_smooth=sin(t*pi/2) where t changes from 0 to 1. The discrete change is changed to a smoother, rounded transition.

[0083] One way to model the motion for adjustments of the user viewing perspective is to analogize the user to a driver of a car. The car and driver have mass, so that any changes in motion are continuous, as the laws of physics dictate. The car can be accelerated with a gas pedal or decelerated with brakes. Shock absorbers keep the ride smooth. In terms of this model, the user controls 107 of system 100 are analogously equipped with these parts of the car, such as a virtual mass, virtual shocks, virtual pedals and a virtual steering wheel. The user's actions can be analogized to the driving of the car. When the user is actuating a control, such as key, joystick, touch-screen button, voice command or mouse button, this is analogous to actuating the car's accelerator. When the user deactuates the control and/or actuates an alternative control, this is analogous to releasing the accelerator and/or actuating the car's brakes. Thus, the illustrative system 100 models adjusting of the user viewing perspective as movement of the camera 116 . The system assigns a mass, a position, a velocity and an acceleration to the camera 116 .

[0084] In another embodiment, the system 100 models the user's virtual position logarithmically, that is, for every virtual step the user takes closer to a data object (e.g., zooms in), the system 100 displays to the user a power more detail of that data object. Similarly, for every virtual step the user takes farther away from a data object (e.g., zooms out), the system 100 displays to the user a power less detail for that data object. For example, the following illustrative code shows how exemplary exp( ) and log( ) functions are used: 2

// returns the conversion factor of world width to screen width
static double world_screen_cfactor(double camera_z)
{
return exp(camera_z);
}
static double world_width_and_screen_width_to_camera_z(double
world_dx, int screen_dx)
{
if(world_dx==0) return 1;
return log(((double)screen_dx)/world_dx);
}

[0085] FIG. 7 provides a simplified flow diagram 600 depicting operation of the system 100 when determining how much detail of a particular data object to render for the user. This decision process can be performed by a client, such as the client 114 depicted in FIG. 11 or by the stylizer module 104 . As the decision block 602 illustrates, the system 100 determines the virtual velocity of the change in the user's virtual position, and employs the virtual velocity as a factor in determining how much detail to render for the data objects. The system 100 also considers the display area available on the client to render the appearance of the data objects (e.g., screen size of client 114 ). As indicated in steps 602 and 604 , in response to determining that the virtual velocity is above one or more threshold levels, the system 100 renders successively less detail. Similarly, as also indicated by steps 602 and 604 , the system 100 also renders less detail as the available display area at the client 114 decreases. Alternatively, as indicated by steps 602 and 606 , as the virtual velocity decreases and/or as the available display area at the client 114 increases, the system 100 renders more detail. Thus, the system 100 makes efficient use of display area and avoids wasting time rendering unnecessary details for fast-moving data objects that appear to pass by the user quickly.

[0086] FIG. 8 illustrates various potential appearances 702 a - 702 c for a textual data object 702 , along with various potential appearances 704 a - 704 c for an image data object 704 . The axis 706 indicates that as virtual velocity increases and/or as client display area decreases, the system 100 decreases the amount of detail in the appearance. At the “full” end of the axis 706 , the virtual velocity is the slowest and/or the client display area is the largest, and thus, the system 100 renders the textual data object 702 and the image data object 704 with relatively more detail, shown at 702 a and 704 a . At the “box outline” end of the axis 706 , the velocity is the greatest and/or the client display area is the smallest, and thus the system 100 renders the appearance of the same data objects 702 and 704 with no detail 702 c and 704 c respectively. Instead, the system 100 renders the data objects 702 and 704 simply as boxes to represent to the user that a data object does exist at that point in the virtual space 100 , even though because of velocity or display area, the user cannot see the details. In the middle of the axis 706 is the “line art” portion. In response to the virtual velocity and/or the available client display area being within particular parameters, the system 100 renders the data objects 702 and 704 as line drawings, such as that depicted at 702 b and 704 b respectively.

[0087] In the illustrative embodiment, the system 100 transmits and stores images in two formats. The two formats are raster graphic appearances and vector graphic appearances. The trade-off between the two is that raster graphic appearances provide more detail while vector graphic appearances require less information. In one embodiment, raster graphic appearances are used to define the appearance of data objects. Raster graphic appearances define graphic appearances by the bit. Since every bit is definable, raster graphic appearances enable the system 100 to display increased detail for each data object. However, since every bit is definable, a large amount of information is needed to define data objects that are rendered in a large client display area.

[0088] In another embodiment, the raster graphic appearances, which require large size data words even when compressed, are omitted and instead the system 100 employs vector graphic appearances and text, which require a smaller size data word than raster graphic appearances, to define the appearance of data objects. Vector graphic appearances define the appearance of data objects as coordinates of lines and shapes, using x, y coordinates. A rectangle can be defined with four x, y coordinates, instead of the x times y bits necessary to define the rectangle in a raster format. For example, the raster graphic appearance of the country of England, which is in .gif form, highly compressed, is over three thousand bytes. However, the equivalent vector version is roughly seventy x, y points, where each x, y double is eight bytes for a total of five hundred sixty bytes. A delivery of text and vector images creates a real-time experience for users, even on a 14.4 kilobyte per second modem connection.

[0089] FIG. 9 illustrates various embodiments of visual indicators employed by the system 100 . In addition to displaying data objects to the user, the system 100 also displays visual indicators to provide the user an indication of the hierarchical path the user has virtually navigated through in the virtual space 110 . This is sometimes referred to as a breadcrumb trail. In one embodiment, the system 100 provides a text breadcrumb bar 802 . The illustrative text breadcrumb bar 802 is a line of text that concatenates each hierarchical level visited by the user. For example, referring back to FIG. 5 , the graphic appearance 508 a is the “home” level, the graphic appearance 506 b is level 1, the graphic appearance 504 a is level 2 and the graphic appearance 502 is the “leaves” level. The associated text breadcrumb trail is thus, “food.shopping.coffee&tea.” This represents the selections (e.g., plates, data nodes) that the user virtually traveled through (e.g., by way of zooming and panning) to arrive at the display of products in the graphic appearance 502 .