WO2001093095A2 - Browsing data - Google Patents

Browsing data Download PDF

Info

Publication number
WO2001093095A2
WO2001093095A2 PCT/GB2001/001856 GB0101856W WO0193095A2 WO 2001093095 A2 WO2001093095 A2 WO 2001093095A2 GB 0101856 W GB0101856 W GB 0101856W WO 0193095 A2 WO0193095 A2 WO 0193095A2
Authority
WO
WIPO (PCT)
Prior art keywords
data
view
image data
data items
user
Prior art date
Application number
PCT/GB2001/001856
Other languages
French (fr)
Other versions
WO2001093095A3 (en
Inventor
Michael John Boydell
Clement Hadrian Chambers
Jonathan Bruce Mullins
Alexander Peter William St Louis
Original Assignee
Advfn.Com Plc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advfn.Com Plc filed Critical Advfn.Com Plc
Priority to AU50522/01A priority Critical patent/AU5052201A/en
Publication of WO2001093095A2 publication Critical patent/WO2001093095A2/en
Publication of WO2001093095A3 publication Critical patent/WO2001093095A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/44Browsing; Visualisation therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data

Definitions

  • the present invention relates to generating image data from data items wherein said data items have a plurality of numeric fields.
  • the invention relates to generating image data by processing numerical data having a plurality of dimensions.
  • a related field is the study of fractals, which aims to predict the behaviour of chaotic systems using mathematical tools outside those of pure statistics. Although progress in chaos theory and fractals has improved the predictability of complex systems behaviour, these new mathematical tools have also revealed fundamental limitations in the degree to which the behaviour of such systems can be predicted.
  • An example of this kind of trading is arbitrage.
  • a trader may buy a first currency, for example dollars, convert the dollars to a second currency, for example yen, and then convert the yen back into the original currency, such as pounds sterling.
  • a second currency for example yen
  • a trader experienced in arbitrage can spot combinations of trends, behaviours and conditions, and quickly make a sequence of trades that results in profit.
  • This type of action requires an acute awareness of market conditions as they change in real time. While computers are not capable of generally predicting the behaviour of complex systems, in financial trading they have a central role to play in the presentation of information.
  • a method of browsing data in a data browsing system including memory means for storing instructions and data items comprising a plurality of fields, including multiple numerical fields, receiving means for receiving data over a network, and processing means for generating said image data; wherein said instructions define operations to be performed by said processing means to generate said image data from said data items in accordance with a plurality of views and said operations include steps of: identifying a user selection of said data items to browse; identifying a user selection of numerical fields in said selected data items; identifying a user selection of a view; generating three dimensional representations of data items in said user selected view by processing said numerical fields to generate co-ordinate data and at least one visual characteristic for each of said selected data items; and repeating said steps in response to a change in state.
  • Figure 1 shows the Internet, including a data service provider supplying data items to users at several connected computer terminals;
  • Figure 2 summarise the present invention, in which image data is generated from data received over the Internet;
  • Figure 3 details a terminal of the type shown in Figure 1, including a computer and a monitor;
  • Figure 4 details hardware components of the computer shown in
  • Figure 3 including a main memory
  • Figure 5 summarises steps performed at the computer terminal shown in Figure 2, including a step of generating image data
  • Figure 6 details contents of the main memory shown in Figure 4 during the step of generating image data shown in Figure 5;
  • Figure 7 concurrent steps performed during the step of generating image data shown in Figure 5, including a step of generating a view;
  • Figure 8 summarises the views that may be generated during the step of generating a view shown in Figure 7, including a grid view, a planets view, a nails view, a particles view, an a top list view;
  • Figure 9 details data of the type received from the data service provider shown in Figure 1;
  • Figure 10 details a data item resulting from combining data of the type shown in Figure 9;
  • Figure 11 details a first aspect of the grid view indicated in Figure 8, including a first numeric field and a second numeric field;
  • Figure 12 details a second aspect of the grid view shown in Figure 8, including weights for additional numeric fields;
  • Figure 13 details the planets view indicated in Figure 8
  • Figure 14 details the nails view indicated in Figure 8;
  • Figure 15 details the particles view indicated in Figure 8, at an initial condition
  • Figure 16 details the particles view indicated in Figure 8, at a final condition
  • FIG 17 details the top list view indicated in Figure 8.
  • Figure 18 illustrates the process of generating the grid view shown in Figures 11 and 12
  • Figure 19 summarises steps required to generate the grid view shown in Figures 11 and 12, including steps of sorting a grid and rendering a grid;
  • Figure 20 details the step of sorting a grid shown in Figure 18, including a step of comparing data items
  • Figure 21 details the step of comparing data items shown in Figure 20
  • Figure 22 details the step of rendering a grid shown in Figure 19, including calculating a Z value
  • Figure 23 details the step of calculating a Z value shown in Figure 22;
  • Figure 24 summarises steps for generating image data for the planets view and the nails view shown in Figure 8, including a step of drawing planets and a step of drawing nails;
  • FIG 25 details the step of drawing planets shown in Figure 24;
  • Figure 26 details the step of drawing nails shown in Figure 24;
  • Figure 27 summarises the process of generating image data for the particles view shown in Figure 8, including calculating a simulated gravitational attraction;
  • Figure 28 details the calculation of a simulated gravitational attraction shown in Figure 27, including a step of applying the law of gravitation;
  • Figure 29 details the step of applying the law of gravitation shown in Figure 28;
  • Figure 30 summarises a process for generating the top list view shown in Figure 8, including a step of generating top lists;
  • Figure 31 details the step of generating top lists shown in Figure 30, including a step of drawing each data item
  • Figure 32 details the step of drawing each data item shown in Figure 31, including a step of drawing an individual data item
  • Figure 33 details the step of drawing an individual data item shown in Figure 32.
  • a data service provider 101 supplies data in response to requests for data received from users on the Internet 102. Users are connected to the Internet via Internet service providers (ISP) 111 to 116. Additionally, certain users may connect to an Internet service provider 114, 115 via an intranet
  • ISP Internet service providers
  • Data from the data service provider 101 is supplied to computer terminals where the data is stored temporarily in the form of data items, each of which has a plurality of numerical data fields.
  • each data item represents financial information about a company or other financial entity.
  • Data items comprise a plurality of numerical data fields that define various characteristics of a company's financial condition. These numerical data fields are collectively known as a company's fundamental data, or fundamentals. The fundamentals used by financial analysts or stock market traders in order to make informed decisions about market purchases and sales.
  • the data service provider 101 supplies data in a data file standard known as comma separated values (CSV).
  • CSV comma separated values
  • a CSV file once downloaded from the Internet 102, can be imported into a spreadsheet application operating on any of the computer terminals 121 to 135. Thereafter, a user may configure the spreadsheet to perform known numerical analysis methods, and use built-in data visualisation functions to display graphs.
  • the complexity of company fundamentals comprising in the region of fifty or more parameters for each individual company, ensures that presenting the information is not, in itself, sufficient to enable a user to gain insight into hidden aspects of market behaviour.
  • Professional traders usually rely on an intimate knowledge of market behaviour gained over many years of experience in order to distinguish subtle trends and characteristics that may be of importance.
  • the invention is summarised in Figure 2.
  • the data service provider 101 supplies data to a computer terminal 121 via the Internet 102.
  • Figure 2 summarises operations performed in order to generate image data at the user's computer, for display on the user's computer monitor. However, in an alternative embodiment, these step may be carried out remotely on the world wide web, and the resulting image data can be supplied to the user in the form of a compressed image data file referenced in a page of HTML.
  • a user selection of data items is identified.
  • the data received from the data service provider 101 includes data about many companies or other financial entities. These data are combined in response to the identification at step 201 in order to define a subset of data items in received data.
  • the received data may be accumulated over a period of time, thereby providing the user with access to a broad range of data types from which to select data items.
  • the data items are companies, denoted A, B, C and so on. Each company has associated with it a large number of fields of financial data, which are the fundamentals describing financial and possibly other aspects of a company.
  • This financial data will change over time, and certain data, for example share price, may change from minute to minute, for certain companies.
  • step 204 a user selection of numerical fields is identified. Three or four company fundamentals are selected out of the large number that are available, and these are considered as the first numerical field 205, second numerical field 206, third numerical field 207, and so on. Each selected company 203 includes these fields. If a numerical field is missing, a zero or other default value may be assumed.
  • the user may select one of several methods for generating image data from the company items selected at step 201 and the numerical fields selected at step 204. In some cases it may be appropriate to define a unique user selection of numerical fields 204 for each individual view.
  • the user selection of a view is identified at step 208.
  • selected numerical fields for each selected data item are processed to generate a respective three-dimensional representation of each data item. Coordinates are generated defining the location of each said object by processing at least two of its selected numerical fields 205, 206 and 207. At least one visual characteristic of each said object is also defined by at least one of the numerical fields 205, 206 and 207.
  • the relationship between location, visual characteristic and numerical fields is defined at step 204.
  • a grid view 211 includes data items represented as vertical columns on a two-by-two horizontal grid. The height and position of each column is determined by numerical fields 205 to 207 belonging to each respective data item.
  • a planets view shows each data item as a planet whose distance from a central point, angular displacement around its orbit and size are controlled by the numerical fields 205 to 207. The planets may be coloured according to the market sector of each company. The view may be set to rotate continuously.
  • a particles view 213 represents each data item by a small coloured spherical particle, whose gravitational attraction to one of three attractors is dependent upon the respective values of the numerical fields 205 to 207.
  • a final view 214 of the examples shown in Figure 2, is similar to the planets view, except that an additional fourth numerical field is selected by the user at step 204 to define the height of a shaft of each data item. At the top of the shaft is a round cap, whose size is determined by another numerical field, as with the planets view 212. The appearance is that of a nail, and this is referred to as the nails view.
  • scaling factors are defined by the user at step 204 in order to adjust the spread and affect of view characteristics caused by the numerical fields 205 to 207.
  • Step 215 a change in state is detected, and an update is initiated by directing control to step 209.
  • Steps 201, 204, 208 and 209 are all asynchronous processes executed within a graphical interface environment running on the computer terminal. The flow of arrows in Figure 2 gives an idea of data dependency, but this is not strictly necessary, and certainly does not define a particular order in which these steps have to occur. As a result of this, execution of any of steps 201 , 204, 208 and 209 may result in a change of state of the underlying data structures from which a view has been created.
  • steps include instructions appropriate to a signalling of this condition, which is recognised by another independent step 215, from where control may be directed so that a view is updated whenever this may be necessary.
  • Other changes in state are reception of new data from the data service provider 101, or an update in elapsed time.
  • Views 212, 213 and 214 are dynamic, requiring a regular update over short time intervals of a few hundred milliseconds or less, in order to provide a convincing illusion of smooth motion.
  • step 215 may be triggered as a result in a change of time, if this is pertinent to the view that is currently selected.
  • Each view provides a different method of generating image data from the same set of data items 203.
  • the user is free to switch between views at will, and to manipulate various of their characteristics, for example by modifying scaling factors uniquely in each view. This provides the user with a unique perception of the underlying data, that could not be provided by any one view in particular.
  • the user can set up characteristics of any of the views, it is not necessary to make adjustments when new data is received from the data service provider.
  • the user may flick through several views when a company's characteristics are seen to change, and thereby gain an insight into market behaviour that would be difficult or much slower to achieve using known mathematical tools of analysis or presentation.
  • Characteristics for each view include a definition of the view point from which the three dimensional world space is seen. The user is provided with interactive control over this view point in three dimensions. Other view- specific information, such as the scaling factors and the fundamentals from which numerical fields are derived, may be combined with view information to define a configuration.
  • a session includes a definition of the companies that the user has selected 203. A configuration thereby defines the way in which the user understands the data through the several views.
  • a configuration may be stored or loaded very quickly.
  • a new configuration provides yet another way of looking at market behaviour.
  • This overall method of defining view characteristics, refining them, storing them as a configuration, retrieving other configurations and viewing the data through those, may be considered as a way of browsing the data, and thereby understanding it in a fundamentally different way than is provided with conventional mathematical or visualisation tools.
  • FIG 3 A computer terminal of the type shown at 121 , operated by the user while receiving data from the data service provider 101 , is illustrated in Figure 3.
  • a computer 301 contains processing and other circuitry required for connection to the Internet.
  • the computer 301 receives commands from the user in the form of keystrokes made on a keyboard 302, and in the form of movements and button presses made on a computer mouse 303.
  • the input devices 302 and 303 provide a general means of user command input, that may be applied also to an embodiment of the present invention.
  • image data is converted into signals supplied to a monitor 304, resulting in a display of images responsive to user operations and computer states.
  • the computer 301 shown in Figure 3 is detailed in Figure 4.
  • a central processing unit (CPU) 401 performs processing in response to instructions stored in a main memory 402.
  • the main memory comprises sixty-four megabytes of dynamic RAM.
  • the central processing unit includes primary data and program cache circuitry to minimise the transfer time of repeatedly accessed data and instructions.
  • a suitable processor is a Pentium III available from Intel Corporation.
  • a hard disk drive 403 provides non-volatile storage for CPU instructions and data, and further extends the effective capacity of main memory through the use of virtual addressing techniques.
  • a graphics card 404 receives instructions for the rendering of image data generated by the CPU 401.
  • digital to analogue converters for each of red, green and blue colour components generate electrical signals that are supplied to the monitor 304 via an electrical connection 405.
  • the graphics card 404 generates frames of image data at a resolution of 1024 by 768 pixels, where each pixel has a data depth of eight bits for each of the red, green and blue colour components.
  • the graphics card 404 includes a processor configured to render image data supplied to the graphics card in the form of OPENGL graphics commands.
  • OPENGL commands facilitate definition of shapes, objects and lighting in a virtual 3D space, that may be viewed in a conventional two dimensional window displayed on the monitor 304.
  • a three dimensional window responsive to OPENGL commands is considered as having an OPENGL context, that in combination with other types of windows and contexts, facilitates user interaction with the virtual 3D world it contains.
  • Instructions for operations performed by the CPU may be installed from a CDROM drive 406. Instructions are usually stored in compressed form on a CDROM, and installed by a smaller number of installation instructions controlling the CPU 401 , so that new instructions are stored onto the hard disk drive 403. Thereafter, a user may initiate the new instructions by an appropriate context-dependent command on the keyboard 302 or mouse 303.
  • CDROMs may also be used as a source of data, for example historical data relating to company performance. This historical data may extend to several hundred megabytes in size, if several years and several stock markets are represented.
  • An alternative source of new instructions and or data is a local area network, such as a corporate intranet 116. Connectivity to an intranet is made via a network card 407, and an ethernet connection 408.
  • I/O 409 Input output circuitry (I/O) 409 facilitates communication between the keyboard 302, mouse 303 and the CPU 401.
  • a modem 410 facilitates connectivity to ISDN or a telephone line. Internet access may be achieved either via the modem 410 or the network card 407.
  • Step 501 the computer is switched on and the processing system, comprising the CPU 401 and the main memory 402, are initialised.
  • instructions for generating image data are loaded from a local area network or CDROM 503.
  • step 504 the user initiates instructions for generating image data. Thereafter, image data is generated in response to contexts and states generated by user commands and incoming data 505 received over the Internet 102, from the data service provider 101.
  • the service provider 101 supplies data to the user terminal 121 at a rate dependent upon a previously agreed contractual arrangement. Depending on the importance of the data, updates may be received once a day, or virtually continuously, with updates being received every minute or so. Having completed generating image data, several context settings, defined by the user, are saved at step 506. These may then be recalled during a later session. At step 507 the processing system is shut down, requiring a synchronisation of main memory 402 and the hard disk drive 403, in order to ensure that all permanent data have been stored in nonvolatile media.
  • a Windows NT (TM) operating system 601 provides common instructions, such as those required for accessing the hard disk drive 403, graphics card 404 and all components of the computer.
  • the operating system 601 includes instructions for facilitating OPENGL rendering commands in co-operation with processes performed by the graphics card 404.
  • Instructions for generating image data 602 facilitate reception of data from the data service provider 101, interaction with user commands supplied from the keyboard 302 and mouse 303, and generation of graphical contexts within which windows are generated for display on the monitor 304. These contexts include an OPENGL window, within which a projection of three-dimensional world space is viewed and adjusted.
  • Other applications 603 include instructions for file management and data backup.
  • Instructions 601, 602 and 603 are permanently stored on the hard disk 403, and are loaded on demand into the main memory 402.
  • the operating system 601 is loaded automatically when the computer is switched on. Thereafter, sequences of instructions are selectively identified by the operating system for execution in short bursts of time, or time slices. This provides the illusion to the user, that the CPU 401 is executing multiple tasks concurrently. Furthermore, multi-tasking enables the computer to receive data updates 505 over the Internet while at the same time generate image data 504 on the monitor 304 without the user being aware of any interruption.
  • portions of memory 402 are allocated and de-allocated as a result of changing instruction requirements.
  • a dynamic workspace 604 is provided by the operating system 601 , in the form of a stack, to facilitate the allocation of memory in response to requests from applications 602, 603 as their instructions are executed. Other regions of memory are also allocated for specific requirements of the instructions for generating image data 602.
  • An incoming data buffer 605 temporarily stores incoming data from the data service provider 101, received over the Internet.
  • Data items 606 include data from the buffer 605 that have been formatted in such a way as to be suitable for generating image data.
  • User preferences 607 include settings relating to generating image data, including the way in which data items 606 are generated from incoming buffered data 605.
  • the step of generating image data 504 shown in Figure 5 is detailed in Figure 7.
  • the user selects a view.
  • the appropriate view is generated, resulting in the generation of a three-dimensional view in a window on the monitor 304.
  • Incoming data is received at step 703, and a database of updated stocks and shares of companies and other financial entities is stored in the incoming data buffer 605 in main memory.
  • the user defines a data requirement at step 704, resulting in data items selected from the database 605 being stored as data items 606 in main memory 402.
  • Selected data items usually include a subset of a much larger number of companies and financial entities whose fundamentals are stored in the buffer 605.
  • the selected data items 606 are supplied as additional input data to the step of generating a view 702.
  • Steps 701 to 704 each represent processing performed in a multi- tasking processing environment, as facilitated by the operating system instructions 601. These steps are not necessarily performed in any particular order, and at any time, the precise functionality implemented by any of these steps is defined by the data available to it.
  • step 705 saves user preferences to hard disk.
  • User preferences include configuration data, that includes, for example, an indication as to which companies are to be selected as data items 606 when generating a view. Other data relating to specific views is also stored in association with a particular configuration, as will be detailed subsequently.
  • step 800 The step of generating a view 702 shown in Figure 7 is detailed in Figure 8.
  • a selection is made on the basis of the view identified by the user at step 701. Thereafter the appropriate view is selected from one of the following: grid view 801, planets view 802, nails view 803, particles view 804, top list view 805 and other view 806.
  • Flow lines from decision box 800 to process boxes 801 to 806 have been omitted for the sake of clarity.
  • FIG. 9 An example of the data received from the data service provider 101 is shown in Figure 9.
  • Figure 9 details contents of a file that has been supplied in the comma separated . value (CSV) format.
  • a first column 901 defines the full names of companies, or other financial entities, such as trust funds and so on.
  • a second column 902 specifies a unique symbol for the company or financial entity, comprising a few alphabetic characters.
  • a third column 903 specifies the share price for the company. Share prices may fluctuate rapidly, and so it is common to receive a CSV file in which the only company fundamental defined is the share price. Other CSV files may include other company fundamentals, updated less frequently.
  • a data item comprises many company fundamentals, assembled from information supplied, perhaps with frequent updates from several CSV files.
  • a resulting data item is shown in Figure 10.
  • a first column 1001 shows the name of the fundamental, and a second column 1002 shows the value of the fundamental.
  • the data items 606 represent user-selected companies or financial entities, from which image data is to be generated.
  • the fundamentals used to generate image data may be defined separately for each of the possible views 801 to 806.
  • the grid view 801 indicated at 801 in Figure 8 has an appearance, when displayed on the monitor 304, as shown in Figure 11. Five separate windows are displayed, including the view window 1101.
  • a title bar 1102 includes drop-down menus for controlling various aspects of the windows that are being displayed.
  • a file menu 1103 enables loading and saving of user preferences, stored as configurations.
  • a configuration stores configurations for several windows, and for multiple views.
  • An edit menu 1104 enables the user to modify the selection of data items currently used to generate display data.
  • a views menu 1105 enables the user to switch between the available 3D views 801 to 806 for the selected data items.
  • a window menu 1106 enables the user to edit items or characteristics in any of the windows that are currently active.
  • a help menu 1107 provides context-sensitive help to enable the user to navigate the several windows and menus that are provided.
  • An edit menu 1108 enables the user to set up equations for generating parameters in addition to those provided by the company fundamentals.
  • a feed menu 1109 enables the user to configure aspects of the connection with the data service provider 101. For example, the user may wish to modify download settings so that company data is updated more frequently.
  • a data items window 1111 displays a list of currently selected data items that are being used to generate display data. Usually, more companies will be selected than can fit into the display, and the user may scroll through the list using a scroll bar or other scrolling means provided by the operating system 601.
  • a share set window 1112 provides a short list of companies for which fundamentals are to be displayed. A single company selected in this window, for example MSFT, will be highlighted in some way in the view window 1101, and its fundamentals will be displayed in a fundamentals window 1113.
  • a grid properties window 1114 enables the user to define which fundamentals are to be used for each dimension of the grid of data items that is displayed in the view window.
  • fourteen companies have been selected as data items from which display data is to be generated. These are arranged as elements within a four-by-four array.
  • Each of the two dimensions of this array is associated with a particular fundamental, or user-defined value.
  • the X dimension has its fundamental selected at 1121
  • the Z dimension has its fundamental selected at 1122. Examples shown are Market Cap and Dividend for X and Z dimensions respectively. However, any fundamental or user defined value may be used.
  • the array is sorted so that companies have Market Cap values that increase in the X dimension, and Dividend values increase in the Z dimension.
  • a third dimension, Y is also defined, for which a different properties window is used.
  • a properties window for defining the Y dimension of the grid view 1101 shown in Figure 11 is shown in Figure 12.
  • a weights properties window 1201 defines weighted fundamentals contributing to the Y dimension for each of the companies from which image data is to be generated.
  • Three value fields 1211, 1212 and 1213 are provided in which the user defines three characteristics applied to a company fundamental. These fields define the name of the fundamental 1221, whether or not to invert the fundamental 1222, and the level of weighting 1223 for the fundamental. In the simplest situation, only a single fundamental is used, in which case the weights in fields 1212 and 1213 are set to zero.
  • the fundamental in field 1211 is multiplied by its weight 1223, and this value defines the extent of a company's height in the 3D bar graph shown in the view 1101.
  • Inverting the fundamental by ticking the box at 1222, has the effect of using the reciprocal of the fundamental, with the result multiplied by its weight 1223.
  • a normalise values option 1224 causes the heights in the Y dimension, of each company on the grid, to be normalised in response to the height of the highest company, which is set to a value of one.
  • the user can modify the viewpoint in 3D space, so as to obtain a different perspective on the data items that have been rendered.
  • the viewpoint my be rotated left or right, up or down, with the grid of companies remaining at the centre. This may be achieved by moving the mouse cursor over the view window 1101, and then dragging the mouse 303 with its left button held down, left or right, up or down, with respect to the screen.
  • the user can zoom in or out of the view window by dragging the mouse, but this time with the control key held down on the keyboard 302 as well as the mouse button.
  • Commands for modifying the viewpoint of a view in 3D space are provided by OPENGL 3D graphics instructions.
  • the user's viewpoint is specified as a single set of x, y, z co- ordinates and a 2D projection of the 3D objects viewed from that point in world space is rendered.
  • the user may identify a particular company in the share set window 1112, and this company will be highlighted in the 3D view by changing its colour to a contrasting colour.
  • the planets view 802 indicated in Figure 8, is shown in Figure 13.
  • the planets view window 1301 has a circular grid 1302.
  • Each company or data item is represented as a planet orbiting the centre 1304 of the grid 1302.
  • the centre is marked by a small yellow sphere 1304.
  • the radius, or size, of a planet 1303 is controlled by a first company fundamental selected in the planet properties window 1305 in a first data entry field 1306.
  • the distance of a planet 1303 from the centre 1304 of the grid 1302 is determined by a second company fundamental selected in a second data entry field 1307.
  • a reference point 1308 on the outer circumference of the grid 1302 provides a reference for a zero degree angular displacement.
  • the reference point is also marked by a small yellow sphere.
  • the angular displacement of a planet 1303 from the reference point 1308, around the grid is controlled by a third company fundamental selected in a third data entry field 1309.
  • Each data entry field 1306, 1307 and 1309 includes a region 1310 for selecting the company fundamental and a region 1311 for a scaling factor that may be adjusted in accordance with the requirements of the company data from which image data is to be generated.
  • the circular grid, the planets and the reference point rotate smoothly about the centre 1304 at a fixed rate, typically once every two seconds.
  • the rate of rotation is set by a rotation parameter at 1312. Rotation enables the user to see the relationships and characteristics of data items from a continuously changing perspective. Because the orbit paradigm is used, the continuous rotation of perspective does not have the disconcerting effect it would have if applied to data items on non-circular grid.
  • the vertical perspective position may be adjusted by dragging with the mouse in a vertical direction in the view window 1301.
  • the nails view 803 indicated in Figure 8 is detailed in Figure 14.
  • the nails view 1400 is similar to the planets view shown in Figure 13.
  • Each data item is represented by a shaft with a cap, having an appearance like that of a nail.
  • four company fundamentals are used to generate image data.
  • the radius, distance and angle 1401 , 1402 and 1403 are defined in the same way as the radius, distance and angle in the planets view 802, except that the radius relates to the radius of the cap of each shaft.
  • An additional fourth company fundamental is used to control the height of the cap above the plane of the circular grid. This fourth fundamental is selected at data entry field 1404.
  • the rate of rotation of the circular grid, and all the objects displayed on it can be adjusted.
  • rotation may be switched on or off by a tick box 1410 in a rotation dialogue box 1411.
  • data items are shown as spherical particles having a size related to ten raised to the power of the market capitalisation. These are initially located randomly in a volume of 3D space.
  • Each particle, representing a data item has three contributing company fundamentals, defined in data entry fields 1501 , 1502 and 1503 in the particles properties window 1504. Each fundamental has an associated factor, that determines its contribution to the behaviour of each data item.
  • the particles view window 1505 shows a model in which three attractors 15 1, 1512 and 1513 exert a gravitational force of attraction upon each data item. The attractors are red, blue and green in colour.
  • the magnitude of the attraction is dependent upon the inverse square law of gravitation, and upon the mass of the data item with respect to red, blue and green dimensions of gravity, as defined at fields 1501, 1502 and 1503.
  • three gravitational forces are identified, with respect to each of the red 1511, blue 1512 and green 1513 attractors.
  • a vector addition is performed, followed by an integration with respect to time, in order to determine a movement of a company item 1521 in 3D world space.
  • the model can be restarted by activation of a run model button 1522, which causes all particles to be randomly located.
  • the rate at which time passes in the gravitational simulation is controlled by a rate dialogue box 1523. Dynamic or tertiary conditions may provide indications of market behaviour. After a period of time, some or all of the data items will have moved to a stationary position, or a condition of localised positional oscillation between two of the attractors. This is illustrated in Figure 16.
  • trajectories it is possible for trajectories to take data items outside of the bounding volume of the model. As a data item, or particle, hits the inside of the bounding 3D volume, it is reflected, and thereby returned to a region of space where it may be influenced by the pull of one or all of the three attractors.
  • the top list view 805, indicated in Figure 8 is shown in Figure 17.
  • the list view differs from the other views in that the user-defined data requirement 704, shown in Figure 7, defines the number of data items to display, but does not select them individually. Selection of individual data items is performed automatically during the process of generating image data.
  • the user may, however, at step 704, define an overall collection of data items, up to a maximum of thirty, from which data items will be automatically selected. An example of this is a user definition of a requirement to select US stocks, shares and options.
  • In the top list view window 1701 a plurality of lists is displayed. Each list is sorted in accordance with a particular company fundamental or user- defined type. The same company appears at different positions in each list.
  • a white column indicates that the position of the data item within the list has remained unchanged since the last data update.
  • a green column indicates that a data item is rising in terms of its position in the list.
  • a red column indicates that a data item is decreasing in terms of its position in the list.
  • a gold-coloured column indicates that the element has just appeared in the visible part of the list.
  • Each column has a plus (+) or minus (-) sign on its top surface. This indicates whether the absolute value of the data item is rising or falling.
  • Figure 18 shows an example in which fourteen companies, A to N, are used to generate image data. It is intended to compare the third numerical fields of all fourteen companies.
  • the companies, A to N are indexed as elements in a two dimensional array 1811. The initial location of data items A to N in the array
  • a sorting process is performed in which two-by-two areas 1812 of the array are selected and analysed. In each step of analysis, elements of the selected two-by-two area are compared to see if a swap is necessary.
  • the analysis procedure is illustrated at 1821 to 1824.
  • trie horizontal dimension of the array is considered.
  • the lower two elements of the two-by-two area 1812 are examined. Their first numerical fields 1831 are compared. If the first numerical field 1831 is larger in the rightmost element, then this is considered as being the correct order, as it increases from left to right. Otherwise, a swap is performed between the elements, so that correct left right ordering is achieved. Correct left right ordering is considered with respect to the first numerical field 1831.
  • the two leftmost elements are examined. Their second numerical fields 1832 are compared. In this case, appropriate ordering is considered as being an increase from the bottom to the top of the array 1811, and a swap between these elements is performed, if necessary, to achieve correct ordering in this dimension.
  • the horizontal dimension of the array is considered again.
  • the upper two elements of the two-by-two area 1812 are examined. Their first numerical fields 1831 are compared, and if the first numerical field 1831 is smaller in the rightmost element, then a swap is performed between the elements.
  • the two rightmost elements are examined.
  • Their second numerical fields 1832 are compared. In this case, a swap is performed to ensure that ordering increases from bottom to top of the array 1811 with respect to the second numerical field 1832.
  • Each two-by-two area 1812 selected from the array 1811 overlaps the previous selected area.
  • the first area is ABEF, the second BCFG and so on.
  • the first is ABEF, the second EFIJ, and so on.
  • the array is fully scanned a row at a time, with each row beginning ABEF, EFIJ and so on. If, at any point in scanning the array, a swap is necessary, this enforces the condition that another complete scan must be done, once the present one is finished. Several scans will usually be completed before the array becomes stable, and no more swaps occur. Eventually, the result is an array 1813 that has been sorted in both its dimensions, with respect to first and second numerical fields of its elements.
  • the third numerical fields 1833 are used to define an extension in a third dimension for each data item, as shown at 1814.
  • a plurality of contributing numerical fields is combined in a weighted sum in order to define this third dimension for each data item.
  • the array may then be rendered using standard 3D rendering instructions provided by the OPENGL 3D graphical environment.
  • companies A to N are in the closest possible proximity, while but are ordered with respect to two numerical fields. Additional numerical values from each company's data, are used to define the third dimension for the view of the resulting sorted array.
  • the first, second and third numerical fields may be defined as any of the company fundamentals, or a plurality of company fundamentals may be combined to define the third dimension for each element in the array. Companies may be displayed in this way at the centre of a regular two-dimensional grid projected into a three dimensional view. Their proximity and spatial relationships provide immediate and valuable information to the user.
  • a variable W is defined as being the integer portion of the square root of N.
  • a variable H is defined as being the integer portion of one plus the square root of N, which is the same as W + 1.
  • a two dimensional grid array G is defined having a width of W elements and a height of H elements. W and H only differ by one, and this arrangement guarantees that all data items will fit into a roughly square grid array.
  • the grid array G is populated with data item pointers. Superfluous grid elements are supplied with pointers to a data item having zero in each of its numerical fields.
  • the grid is sorted, as illustrated in Figure 18.
  • the grid is rendered in a 3D projection, as shown in Figures 11, 12 and 18.
  • FIG. 19 The step 1906 of sorting the grid, shown in Figure 19, is detailed in
  • a variable F is set to zero.
  • the first or next value for X is selected.
  • X is a variable that is used to scan the width of the grid array G. It takes possible values from 1 to W - 1.
  • the first or next value for Y is selected.
  • Y is a variable that is used to scan the height of the grid array G, and takes possible values from 1 to H - 1.
  • a two-by-two sub-array of elements is selected in the grid using X and Z as the base value. Comparisons are made between these elements, with swapping performed if necessary.
  • a question is asked as to whether a swap occurred at step 2004. If so, F is set to the value one.
  • a question is asked as to whether another Z value is required. If so, control is directed back to step 2003. Alternatively control is directed to step 2008, where a question is asked as to whether any X values remain for selection. If so, control is directed to step 2002. Alternatively, all the grid G will have been scanned.
  • a question is asked as to whether F has the value zero.
  • the step 2004 of comparing elements of a two-by-two grid, shown in Figure 20, is detailed in Figure 21.
  • the steps of Figure 21 are also summarised visually in Figure 18 at 1821, 1822, 1823 and 1824.
  • a comparison is made between the first numerical fields of data items referenced by grid elements at G[X,Z] and G[X+1 ,Y]. It is intended to sort elements by their first numerical fields in the X dimension of the array, increasing with increasing values of X.
  • steps 2102 are swapped at step 2103. If a swap occurs, this completes the steps of Figure 21.
  • step 2104 a comparison is made between second numerical fields of data items referenced by grid elements at G[X,Z] and G[X,Z+1]. It is intended to sort elements by their second numerical fields with increasing values of Y. If incorrect ordering is detected at step 2105, then a swap is made at step 2106. The same tests are performed in steps 2107 to 2112 with respect to a comparison between elements horizontally at G[X,Z+1] and G[X+1 ,Z+1], and finally vertically again between elements at G[X+1 ,Z] and G[X+1 ,Z+1].
  • Swapping of elements in the grid is performed in response to a comparison of data that are indexed by grid elements, but not actually stored in an area of physical memory 402 that is used to store a grid.
  • data is sorted via pointers stored as elements in the grid, and those pointers themselves may point to other pointers, and so on, eventually leading to the actual numerical value. In this way, the amount of data movement within physical memory is kept to a minimum. It will be understood, however, that in many instances it is convenient to talk of swapping or moving data in memory or in an array, when in fact this is referring to a swap or move of pointers.
  • the step 1907 of rendering the grid in a 3D projection, shown in Figure 19, is detailed in Figure 22.
  • the first or next W value for the grid G is selected.
  • W values are integers that correspond to each of the columns of elements across the width of the array.
  • the first or next H value is selected.
  • H values are integers that correspond to each of the rows of elements in the grid array G.
  • the data item indexed by a pointer stored at element G[W,H] in the grid is identified.
  • the values for W and H set at steps 2201 and 2202 are used to define X and Z positions of a vertical column in the 3D grid view 1101.
  • the height of the vertical column is calculated as a Y value.
  • This value, Y is determined by combining a plurality of weighted numerical fields, fundamentals, from the data item indexed at G[X,Z].
  • a column is drawn representing the data item, using values for X, Y and Z determined at steps 2204 and 2205. OPENGL drawing commands are used.
  • steps 2207 and 2208 remaining values for H and W are selected. Steps 2201 to 2208 select and draw each company selected by the user in response to a sorted grid of companies, and weighted fundamentals that define the height of columns above this grid, in a 3D projected view 1101.
  • the step 2205 of calculating a Z value from weighted numerical fields, shown in Figure 22, is detailed in Figure 22.
  • the steps of Figure 23 will be understood with reference also to Figure 12.
  • variables Q, R and S are assigned to fundamentals defined as values 1 , 2 and 3 in fields 1211, 1212 and 1213 in Figure 12.
  • variables A, B and C are assigned to respective weights for values one to three, also defined in fields 1211 , 1212 and 1213.
  • a question is asked as to whether it is necessary to invert value one. This is answered with respect to a tick box 1222 for the respective field 1211, 1212 or 1213. If the box 1222 is ticked, then the value for Q is inverted at step 2304.
  • step 2309 an equation combines variables A, B, C, Q, R and S to generate a value for the variable Z, that is used in the rendering of a column for a data item at step 2206.
  • FIG. 25 The planets view 802 and the nails view 803 are perceived by the user as being distinct and separate views. However, both largely share a common underlying set of instructions when image data is generated for them.
  • steps are summarised in Figure 24.
  • the planets or nails view has just been selected.
  • a variable TIME is set to zero. Throughout subsequent steps, and their repeats, the TIME variable is continuously updated by a timer interrupt generated from instructions in the operating system 601.
  • step 2402 therefore, it is possible to determine an angle of rotation for the view by multiplying the TIME variable by a rate of rotation.
  • the rate of rotation is defined by the user in the rotation dialogue box 1312 or 1411.
  • the circular grid 1302 is drawn. This may be switched off by the user if preferred.
  • a question is asked as to whether planets or nails view has been selected. If planets has been selected, then control is directed to step 2405. Alternatively control is directed to step 2406.
  • the planets are drawn, and at step 2406 the nails are drawn.
  • any associated text is drawn, for example text relating to a particular company highlighted by the user.
  • the view window is updated with the new objects that have been drawn. This instantly replaces the previously seen view, thereby minimising flicker due to the continuous updates that result from rotation.
  • FIG. 26 The step 2405 for drawing planets, shown in Figure 24, is detailed in
  • FIG. 25 At step 2501 the first or next data item is selected.
  • a planet radius R is defined by the first numerical field multiplied by its scaling constant S1.
  • the planet's distance from a first ring 1315 from the grid centre 1304 is defined by the second numerical field multiplied by its scaling factor S2.
  • the planet's angle around the centre 1304 relative to the grid reference 1308 is defined by the third numerical field multiplied by its scaling factor S3.
  • the numerical fields and their respective scaling factors are defined in the planets properties window 1305 at 1306, 1307 and 1308 respectively.
  • the planet's colour is defined according to its market sector, as described previously.
  • step 2506 the planet is drawn.
  • step 2507 a question is asked as to whether any other data items remain to be drawn as planets. If so, control is directed to step 2502, and the next data item is selected. Alternatively, this completes the drawing of planets in the planets view.
  • the step 2406 for drawing nails, shown in Figure 24, is detailed in
  • FIG. 26 At step 2601 the first or next data item is selected.
  • a nail head or radius R is defined by the first numerical field multiplied by its scaling constant S1.
  • the nail's distance from the first ring 1315 of the grid centre is defined by the second numerical field multiplied by its scaling factor S2.
  • the nail's angle relative to the grid reference is defined by the third numerical field multiplied by its scaling factor S3.
  • the nail's height above the grid plane is defined by the fourth numerical field multiplied by its scaling factor S4.
  • the numerical fields and their respective scaling factors are defined in the nails properties window at 1401 , 1402, 1403 and 1404 respectively.
  • the nail's colour is defined according to its market sector.
  • step 2607 the nail is drawn.
  • step 2608 a question is asked as to whether any other data items remain to be considered. If so, control is directed to step 2602, and the next data item is selected. Alternatively, this completes the drawing of nails in the nails view window 1400.
  • Step 2701 all the particles are given random X, Y and Z positions within a bounded volume of three-dimensional world space. Their velocities, VX, VY and VZ are all set to zero.
  • preparation is made for the next update. This includes evaluating elapsed time since the previous update, DT, and initialising the next data item for selection as being the first of the data items.
  • the first or next data item is selected. Each data item is represented by a particle, whose movements are governed by red, blue and green gravitational attraction towards the red, blue and green attractors in the three dimensional world, respectively.
  • Steps 2704, 2705 and 2706 result in the velocities VX, VY and VZ for the particle being modified.
  • steps 2707 these velocities are each multiplied by DT to identify an incremental change in position for each of these dimensions, which are then added to the base X, Y and Z co-ordinates for the particle.
  • boundaries are checked. As a result of accelerations applied to a particle, it is possible for a trajectory to result in a particle being lost from the gravitational pull of the red, blue and green attractors. Since this would prevent any further useful interactions with the particle being observed, this condition is avoided by the boundary checking at step 2708.
  • Each of the X, Y and Z values for the particle are checked against minimum and maximum values. This defines a bounding box in the three-dimensional world. If the position in any dimension is found to be outside this box, the corresponding velocity, in that dimension, is reversed and divided by ten.
  • step 2709 friction is applied. This is achieved by multiplying the velocities VX, VY and VZ each by 0.999.
  • the colour of the particle is defined by a financial characteristic. In the preferred embodiment this is the market sector that the data item belongs to, colour coded in accordance with the associations described previously.
  • the particle is drawn at its new position.
  • step 2712 a question is asked as to whether any more data items remain to be drawn as particles in the present update cycle. If so, control is directed back to step 2703, and the next data item is selected. Alternatively, if all particles have been drawn, control is directed to step 2713, where all other objects are drawn. This includes the red, blue and green attractors 1511 , 1512 and 1513, the optional grid markings, in blue, and any associated text or other symbols that have been requested by the user.
  • step 2714 the particles view window 1505 is updated with the redrawn objects. Thereafter, control is directed to step 2702, and the next iteration of the gravitational model is performed. The steps 2702 to 2714 are repeated until an interrupt is generated from another parallel process selected by the operating system 601.
  • step 2801 the mass M of the currently selected data item is determined with respect to the red, green or blue attractor. The mass is given by the nth numerical field multiplied by its respective scaling factor. Thus, when calculating red attraction, M is given by the value of the first numerical field and its respective user-defined scaling factor. These are defined in data entry field
  • Numerical data entry fields 1502 and 1503 effectively define the mass M in the case of the blue and green attractors respectively.
  • the co-ordinates, X, Y and Z of the particle have the co-ordinates of the attractor subtracted from them, thereby resulting in coordinates AX, AY, AZ that define the position of the particle with respect to the currently considered attractor.
  • Co-ordinates for the attractors, given that they lie in a plane at Y 0, are:
  • a radius R from the centre of the attractor to the centre of the particle is calculated as the square root of the sum of the squares of
  • the step 2804 of applying the law of gravitation is detailed in Figure 29.
  • a question is asked as to whether the value R, calculated at step 2803, is greater than 0.7. If so, this indicates that the particle and the attractor are sufficiently far apart for the ordinary laws of gravitation to apply. If they are close, then this is considered as resulting in reflection.
  • the equations used to simulate gravity are applied at step 2902.
  • the velocities VX, VY and VZ of the particle are updated in accordance with the inverse square law.
  • these same velocities are updated using equations resulting in reflection from the attractor.
  • a summary of the data required to generate the top list view shown in Figure 17 is shown in Figure 30.
  • a set of data items 3001 comprises a predefined set, that is typically larger than the selected data items 606 used by the other views.
  • a list of user-selected fundamentals 3002 defines the lists that are to be generated for the view. This is defined at 1706 in the top list properties window 1705. The number of items to display in each list is defined at 1704 in the top list properties window 1705.
  • FIG. 31 The process 3004 of generating top lists, shown in Figure 30, is detailed in Figure 31.
  • an initialisation process is performed.
  • the first or next company fundamental from the user selected fundamentals 3002 is selected.
  • Each user-selected fundamental is considered as a numerical field, upon which sorting and other procedures will be based.
  • a list structure for the numerical field is populated with the set of data items 3001. In practice the list stores pointers to data items, rather than copies of the data items themselves, although it is convenient to talk of the list as if it does actually contain the data itself.
  • the list is sorted based upon the value of the numerical field for each data item.
  • step 3105 the least significant data items, based upon the sort, are removed from the resulting list structure, leaving a list containing the correct number of data items as defined by the user at 3003. These data items are the highest in the list, with respect to the numerical field upon which the sort was based.
  • each data in the list is drawn.
  • a question is asked as to whether there is another fundamental value for which a top list is to be generated. If so, control is directed to step 3102. Alternatively all top lists will have been created and drawn.
  • other objects for example text objects, are drawn.
  • the top list view window 1701 is updated, swapping the previous window contents for the newly drawn objects.
  • new data is awaited. This may be new incoming data received from the data service provider 101, or a change in user requirements. When a change in data occurs, control is directed back to step 3101, and new image data is generated.
  • Steps 3101 to 3110 constitute a loop, which may be broken as a result of a software interrupt from another process running in parallel under control of the operating system 601. For example, the user may request a switch to the grid view 801 by interaction with the views menu 1105.
  • the step 3106 of drawing each data item, shown in Figure 31, is detailed in Figure 32.
  • the maximum value in the list is identified as a variable MAX. For example, if the numerical field upon which the list is sorted is a fundamental called TRADE_RATE, then the maximum value of trade rate for all the items in this list is identified.
  • the first or next data item in the list is selected.
  • a question is asked as to whether the value of the item, for example the value of the TRADE_RATE fundamental, is rising or falling as a result of data updates received from the data service provider 101. If the value is rising, a plus (+) symbol is defined for the data item at step 3204. If the value is falling, a minus (-) symbol is defined at step 3205.
  • a colour is identified for the item.
  • the height of the column that will be drawn to represent the data item is defined as being equal to its value divided by MAX, defined at step 3201. This has the effect of normalising the heights of the data items in the list with respect to the highest, and the highest always has a height of one.
  • the data item is drawn.
  • a question is asked as to whether any other data items remain for consideration in the list. If so, control is directed to step 3202. Alternatively this concludes the step required to draw all the data items in a list.
  • the step 3206 of colour coding a data item is detailed in Figure 33.
  • a question is asked as to whether the data item is currently highlighted. If so, its colour is set to blue at step 3302.
  • control is directed to step 3303 where a question is asked as to whether the data item is new in the visible part of the list. If so, its colour is set to gold at step 3304.
  • a question is asked as to whether the position of the data item in the list is higher, lower, or the same is it was previously. If higher, its colour is set to green at step 3306. If lower, its colour is set to red at step 3307. If in the same position, its colour is set to white at step 3308.
  • Consideration of the position in a list may be considered as a way of measuring whether the data item's value is changing with respect to the average value of the list, but quantified in terms of ranking rather than using an absolute numerical function.

Abstract

Data browsing is disclosed in which a user selection of data items to browse is identified (203). A user selection of numerical fields (204) is also identified from the selected data items (203) a user selected view is identified and a three dimensional representation of data items is generated in said user selected view by processing the numerical fields to generate co-ordinate data and at least one visual characteristic for each of the selected data items. The process is then repeated in response to the change of state.

Description

Browsing Data
Field of the Invention
The present invention relates to generating image data from data items wherein said data items have a plurality of numeric fields. In particular the invention relates to generating image data by processing numerical data having a plurality of dimensions.
Introduction to the Invention An abundance of numerical data is available for analysis using a wide variety of mathematical methods. The abundance of data has arisen from the implementation of systems capable of digitally sampling real world events, and of storing an unlimited amount of this data. Many systems yield useful information as a result of the mathematical analysis that may be performed upon data of this kind. For example, several types of statistical analysis may be performed on numerical data created when measuring performance of critical machinery such as jet engines, new materials for constructing buildings, or the modelling of complex systems such as telecommunications networks. Historically, computers have been successfully used in numerous scientific and mathematical applications. However, certain natural systems have been found to be largely resistant to numerical analysis. The study of weather systems and financial markets has led to the development of chaos theory and the study of the behaviour of unpredictable systems. A related field is the study of fractals, which aims to predict the behaviour of chaotic systems using mathematical tools outside those of pure statistics. Although progress in chaos theory and fractals has improved the predictability of complex systems behaviour, these new mathematical tools have also revealed fundamental limitations in the degree to which the behaviour of such systems can be predicted.
Although complex systems analysis has benefited immensely from the introduction of computers, a significant human input is still found to be necessary. In financial markets, an experience of stock market fluctuations over many years enables an individual trader to make quick intuitive decisions that are considerably better judged than any formal analysis could provide. The ability to perform in this way requires considerable awareness of many aspects of financial markets, as well as experience and familiarity with mathematical procedures, in order to anticipate trends.
An example of this kind of trading is arbitrage. In arbitrage, a trader may buy a first currency, for example dollars, convert the dollars to a second currency, for example yen, and then convert the yen back into the original currency, such as pounds sterling. Depending upon market conditions, it is possible to finish with more pounds sterling than the trader originally started with. A trader experienced in arbitrage can spot combinations of trends, behaviours and conditions, and quickly make a sequence of trades that results in profit. This type of action requires an acute awareness of market conditions as they change in real time. While computers are not capable of generally predicting the behaviour of complex systems, in financial trading they have a central role to play in the presentation of information. With a large high definition monitor and a fast network connection, today's analysts and traders have instant access to whatever financial information they require. Due to the diversity of data, information of this type is usually supplied in the form of numbers. A particular sequence of numbers, for example share prices in a particular company or stock exchange index, can be converted into a graph using readily available spreadsheet graphing facilities. Complex numerical analysis tools may be applied to such data, including the fractal analysis methods developed by Benoit Mandelbrot and others. The results of analysis can also be graphed without difficulty.
These methods are widely applied in stock markets. However, due to the complexity of data that is available, there is no known way of providing a unified view of diverse data, beyond that of the simple graph. This is a problem inherent in the data itself, resulting from its origination in a complex dynamic system.
Summary of the Invention
According to a first aspect of the invention there is provided a method of browsing data, in a data browsing system including memory means for storing instructions and data items comprising a plurality of fields, including multiple numerical fields, receiving means for receiving data over a network, and processing means for generating said image data; wherein said instructions define operations to be performed by said processing means to generate said image data from said data items in accordance with a plurality of views and said operations include steps of: identifying a user selection of said data items to browse; identifying a user selection of numerical fields in said selected data items; identifying a user selection of a view; generating three dimensional representations of data items in said user selected view by processing said numerical fields to generate co-ordinate data and at least one visual characteristic for each of said selected data items; and repeating said steps in response to a change in state.
Brief Description of the Drawings
Figure 1 shows the Internet, including a data service provider supplying data items to users at several connected computer terminals; Figure 2 summarise the present invention, in which image data is generated from data received over the Internet;
Figure 3 details a terminal of the type shown in Figure 1, including a computer and a monitor; Figure 4 details hardware components of the computer shown in
Figure 3, including a main memory;
Figure 5 summarises steps performed at the computer terminal shown in Figure 2, including a step of generating image data;
Figure 6 details contents of the main memory shown in Figure 4 during the step of generating image data shown in Figure 5;
Figure 7 concurrent steps performed during the step of generating image data shown in Figure 5, including a step of generating a view;
Figure 8 summarises the views that may be generated during the step of generating a view shown in Figure 7, including a grid view, a planets view, a nails view, a particles view, an a top list view;
Figure 9 details data of the type received from the data service provider shown in Figure 1;
Figure 10 details a data item resulting from combining data of the type shown in Figure 9; Figure 11 details a first aspect of the grid view indicated in Figure 8, including a first numeric field and a second numeric field;
Figure 12 details a second aspect of the grid view shown in Figure 8, including weights for additional numeric fields;
Figure 13 details the planets view indicated in Figure 8; Figure 14 details the nails view indicated in Figure 8;
Figure 15 details the particles view indicated in Figure 8, at an initial condition;
Figure 16 details the particles view indicated in Figure 8, at a final condition;
Figure 17 details the top list view indicated in Figure 8;
Figure 18 illustrates the process of generating the grid view shown in Figures 11 and 12; Figure 19 summarises steps required to generate the grid view shown in Figures 11 and 12, including steps of sorting a grid and rendering a grid;
Figure 20 details the step of sorting a grid shown in Figure 18, including a step of comparing data items;
Figure 21 details the step of comparing data items shown in Figure 20; Figure 22 details the step of rendering a grid shown in Figure 19, including calculating a Z value;
Figure 23 details the step of calculating a Z value shown in Figure 22;
Figure 24 summarises steps for generating image data for the planets view and the nails view shown in Figure 8, including a step of drawing planets and a step of drawing nails;
Figure 25 details the step of drawing planets shown in Figure 24;
Figure 26 details the step of drawing nails shown in Figure 24;
Figure 27 summarises the process of generating image data for the particles view shown in Figure 8, including calculating a simulated gravitational attraction;
Figure 28 details the calculation of a simulated gravitational attraction shown in Figure 27, including a step of applying the law of gravitation;
Figure 29 details the step of applying the law of gravitation shown in Figure 28; Figure 30 summarises a process for generating the top list view shown in Figure 8, including a step of generating top lists;
Figure 31 details the step of generating top lists shown in Figure 30, including a step of drawing each data item; Figure 32 details the step of drawing each data item shown in Figure 31, including a step of drawing an individual data item; and
Figure 33 details the step of drawing an individual data item shown in Figure 32.
Detailed Description of The Preferred Embodiment
The invention will now be described by way of example only with reference to the accompanying drawings.
Figure 1
An environment for distributing data is shown in Figure 1. A data service provider 101 supplies data in response to requests for data received from users on the Internet 102. Users are connected to the Internet via Internet service providers (ISP) 111 to 116. Additionally, certain users may connect to an Internet service provider 114, 115 via an intranet
116 or 117, that is provided by a company or organisation for internal data communications. Users have computer terminals 121 to 135 that receive data from the data service provider 101.
Data from the data service provider 101 is supplied to computer terminals where the data is stored temporarily in the form of data items, each of which has a plurality of numerical data fields. In the present embodiment, each data item represents financial information about a company or other financial entity.
Data items comprise a plurality of numerical data fields that define various characteristics of a company's financial condition. These numerical data fields are collectively known as a company's fundamental data, or fundamentals. The fundamentals used by financial analysts or stock market traders in order to make informed decisions about market purchases and sales.
The data service provider 101 supplies data in a data file standard known as comma separated values (CSV). A CSV file, once downloaded from the Internet 102, can be imported into a spreadsheet application operating on any of the computer terminals 121 to 135. Thereafter, a user may configure the spreadsheet to perform known numerical analysis methods, and use built-in data visualisation functions to display graphs. However, the complexity of company fundamentals, comprising in the region of fifty or more parameters for each individual company, ensures that presenting the information is not, in itself, sufficient to enable a user to gain insight into hidden aspects of market behaviour. Professional traders usually rely on an intimate knowledge of market behaviour gained over many years of experience in order to distinguish subtle trends and characteristics that may be of importance.
Figure 2
The invention is summarised in Figure 2. The data service provider 101 supplies data to a computer terminal 121 via the Internet 102. Figure 2 summarises operations performed in order to generate image data at the user's computer, for display on the user's computer monitor. However, in an alternative embodiment, these step may be carried out remotely on the world wide web, and the resulting image data can be supplied to the user in the form of a compressed image data file referenced in a page of HTML.
At step 201 a user selection of data items is identified. The data received from the data service provider 101 includes data about many companies or other financial entities. These data are combined in response to the identification at step 201 in order to define a subset of data items in received data. The received data may be accumulated over a period of time, thereby providing the user with access to a broad range of data types from which to select data items. In the example shown in Figure 2, the data items are companies, denoted A, B, C and so on. Each company has associated with it a large number of fields of financial data, which are the fundamentals describing financial and possibly other aspects of a company.
This financial data will change over time, and certain data, for example share price, may change from minute to minute, for certain companies.
There are usually many dozens of company fundamentals, most of which will not be of immediate interest to the user. At step 204 a user selection of numerical fields is identified. Three or four company fundamentals are selected out of the large number that are available, and these are considered as the first numerical field 205, second numerical field 206, third numerical field 207, and so on. Each selected company 203 includes these fields. If a numerical field is missing, a zero or other default value may be assumed.
The user may select one of several methods for generating image data from the company items selected at step 201 and the numerical fields selected at step 204. In some cases it may be appropriate to define a unique user selection of numerical fields 204 for each individual view. The user selection of a view is identified at step 208. At step 209 selected numerical fields for each selected data item are processed to generate a respective three-dimensional representation of each data item. Coordinates are generated defining the location of each said object by processing at least two of its selected numerical fields 205, 206 and 207. At least one visual characteristic of each said object is also defined by at least one of the numerical fields 205, 206 and 207. The relationship between location, visual characteristic and numerical fields is defined at step 204.
The user may switch between any of several available views 211 to 214, of the same set of selected data items 203. A grid view 211 includes data items represented as vertical columns on a two-by-two horizontal grid. The height and position of each column is determined by numerical fields 205 to 207 belonging to each respective data item. A planets view shows each data item as a planet whose distance from a central point, angular displacement around its orbit and size are controlled by the numerical fields 205 to 207. The planets may be coloured according to the market sector of each company. The view may be set to rotate continuously. A particles view 213 represents each data item by a small coloured spherical particle, whose gravitational attraction to one of three attractors is dependent upon the respective values of the numerical fields 205 to 207. As time passes, the particles accelerate towards the attractors, and complex interactions result. The particles are coloured according to their market sector. A final view 214, of the examples shown in Figure 2, is similar to the planets view, except that an additional fourth numerical field is selected by the user at step 204 to define the height of a shaft of each data item. At the top of the shaft is a round cap, whose size is determined by another numerical field, as with the planets view 212. The appearance is that of a nail, and this is referred to as the nails view. In each of these views, scaling factors are defined by the user at step 204 in order to adjust the spread and affect of view characteristics caused by the numerical fields 205 to 207. These scaling factors may be changed extremely quickly by the user, thereby facilitating a level of interaction with the view that facilitates a quickly convergence to the most informative display of image data. At step 215 a change in state is detected, and an update is initiated by directing control to step 209. Steps 201, 204, 208 and 209 are all asynchronous processes executed within a graphical interface environment running on the computer terminal. The flow of arrows in Figure 2 gives an idea of data dependency, but this is not strictly necessary, and certainly does not define a particular order in which these steps have to occur. As a result of this, execution of any of steps 201 , 204, 208 and 209 may result in a change of state of the underlying data structures from which a view has been created. These steps include instructions appropriate to a signalling of this condition, which is recognised by another independent step 215, from where control may be directed so that a view is updated whenever this may be necessary. Other changes in state are reception of new data from the data service provider 101, or an update in elapsed time. Views 212, 213 and 214 are dynamic, requiring a regular update over short time intervals of a few hundred milliseconds or less, in order to provide a convincing illusion of smooth motion. Thus, step 215 may be triggered as a result in a change of time, if this is pertinent to the view that is currently selected.
Each view provides a different method of generating image data from the same set of data items 203. The user is free to switch between views at will, and to manipulate various of their characteristics, for example by modifying scaling factors uniquely in each view. This provides the user with a unique perception of the underlying data, that could not be provided by any one view in particular. Although the user can set up characteristics of any of the views, it is not necessary to make adjustments when new data is received from the data service provider. The user may flick through several views when a company's characteristics are seen to change, and thereby gain an insight into market behaviour that would be difficult or much slower to achieve using known mathematical tools of analysis or presentation.
Characteristics for each view include a definition of the view point from which the three dimensional world space is seen. The user is provided with interactive control over this view point in three dimensions. Other view- specific information, such as the scaling factors and the fundamentals from which numerical fields are derived, may be combined with view information to define a configuration. In addition, a session includes a definition of the companies that the user has selected 203. A configuration thereby defines the way in which the user understands the data through the several views.
A configuration may be stored or loaded very quickly. A new configuration provides yet another way of looking at market behaviour. This overall method of defining view characteristics, refining them, storing them as a configuration, retrieving other configurations and viewing the data through those, may be considered as a way of browsing the data, and thereby understanding it in a fundamentally different way than is provided with conventional mathematical or visualisation tools.
Figure 3 A computer terminal of the type shown at 121 , operated by the user while receiving data from the data service provider 101 , is illustrated in Figure 3. A computer 301 contains processing and other circuitry required for connection to the Internet. The computer 301 receives commands from the user in the form of keystrokes made on a keyboard 302, and in the form of movements and button presses made on a computer mouse 303.
Various forms of processing are performed by the computer 301 in order to interpret these commands, and this interpretation is dependent upon the context or state of the computer at the time the command is given. In this way, the input devices 302 and 303 provide a general means of user command input, that may be applied also to an embodiment of the present invention. In response to user commands, and the internal state of the computer 301 , image data is converted into signals supplied to a monitor 304, resulting in a display of images responsive to user operations and computer states.
Figure 4
The computer 301 shown in Figure 3 is detailed in Figure 4. A central processing unit (CPU) 401 performs processing in response to instructions stored in a main memory 402. The main memory comprises sixty-four megabytes of dynamic RAM. The central processing unit includes primary data and program cache circuitry to minimise the transfer time of repeatedly accessed data and instructions. A suitable processor is a Pentium III available from Intel Corporation. Secondary cache circuitry, also provided in the CPU 401, operates at a lower speed, but at a larger memory capacity, thereby minimising transfer of data over a bus 403 electrically shared by several other components of the computer.
A hard disk drive 403 provides non-volatile storage for CPU instructions and data, and further extends the effective capacity of main memory through the use of virtual addressing techniques. A graphics card 404 receives instructions for the rendering of image data generated by the CPU 401. In the graphics card 404, digital to analogue converters for each of red, green and blue colour components generate electrical signals that are supplied to the monitor 304 via an electrical connection 405. The graphics card 404 generates frames of image data at a resolution of 1024 by 768 pixels, where each pixel has a data depth of eight bits for each of the red, green and blue colour components. In the preferred embodiment, the graphics card 404 includes a processor configured to render image data supplied to the graphics card in the form of OPENGL graphics commands.
However, in alternative embodiments it is possible for the CPU 401 to perform at least some of the processing required in order to implement OPENGL functionality. OPENGL commands facilitate definition of shapes, objects and lighting in a virtual 3D space, that may be viewed in a conventional two dimensional window displayed on the monitor 304. A three dimensional window responsive to OPENGL commands is considered as having an OPENGL context, that in combination with other types of windows and contexts, facilitates user interaction with the virtual 3D world it contains.
Instructions for operations performed by the CPU may be installed from a CDROM drive 406. Instructions are usually stored in compressed form on a CDROM, and installed by a smaller number of installation instructions controlling the CPU 401 , so that new instructions are stored onto the hard disk drive 403. Thereafter, a user may initiate the new instructions by an appropriate context-dependent command on the keyboard 302 or mouse 303. CDROMs may also be used as a source of data, for example historical data relating to company performance. This historical data may extend to several hundred megabytes in size, if several years and several stock markets are represented. An alternative source of new instructions and or data is a local area network, such as a corporate intranet 116. Connectivity to an intranet is made via a network card 407, and an ethernet connection 408. Input output circuitry (I/O) 409 facilitates communication between the keyboard 302, mouse 303 and the CPU 401. A modem 410 facilitates connectivity to ISDN or a telephone line. Internet access may be achieved either via the modem 410 or the network card 407.
Figure 5
Operations performed by the user of the computer terminal 121 are summarised in Figure 5. At step 501 the computer is switched on and the processing system, comprising the CPU 401 and the main memory 402, are initialised. At step 592, if necessary, instructions for generating image data are loaded from a local area network or CDROM 503. At step 504 the user initiates instructions for generating image data. Thereafter, image data is generated in response to contexts and states generated by user commands and incoming data 505 received over the Internet 102, from the data service provider 101.
The service provider 101 supplies data to the user terminal 121 at a rate dependent upon a previously agreed contractual arrangement. Depending on the importance of the data, updates may be received once a day, or virtually continuously, with updates being received every minute or so. Having completed generating image data, several context settings, defined by the user, are saved at step 506. These may then be recalled during a later session. At step 507 the processing system is shut down, requiring a synchronisation of main memory 402 and the hard disk drive 403, in order to ensure that all permanent data have been stored in nonvolatile media.
Figure 6
Contents of the main memory 402 while generating image data 504 are detailed in Figure 6. A Windows NT (TM) operating system 601 provides common instructions, such as those required for accessing the hard disk drive 403, graphics card 404 and all components of the computer. The operating system 601 includes instructions for facilitating OPENGL rendering commands in co-operation with processes performed by the graphics card 404. Instructions for generating image data 602 facilitate reception of data from the data service provider 101, interaction with user commands supplied from the keyboard 302 and mouse 303, and generation of graphical contexts within which windows are generated for display on the monitor 304. These contexts include an OPENGL window, within which a projection of three-dimensional world space is viewed and adjusted. Other applications 603 include instructions for file management and data backup. Instructions 601, 602 and 603 are permanently stored on the hard disk 403, and are loaded on demand into the main memory 402. The operating system 601 is loaded automatically when the computer is switched on. Thereafter, sequences of instructions are selectively identified by the operating system for execution in short bursts of time, or time slices. This provides the illusion to the user, that the CPU 401 is executing multiple tasks concurrently. Furthermore, multi-tasking enables the computer to receive data updates 505 over the Internet while at the same time generate image data 504 on the monitor 304 without the user being aware of any interruption. During execution of instructions 601 to 603, portions of memory 402 are allocated and de-allocated as a result of changing instruction requirements. A dynamic workspace 604 is provided by the operating system 601 , in the form of a stack, to facilitate the allocation of memory in response to requests from applications 602, 603 as their instructions are executed. Other regions of memory are also allocated for specific requirements of the instructions for generating image data 602. An incoming data buffer 605 temporarily stores incoming data from the data service provider 101, received over the Internet. Data items 606 include data from the buffer 605 that have been formatted in such a way as to be suitable for generating image data. User preferences 607 include settings relating to generating image data, including the way in which data items 606 are generated from incoming buffered data 605. Figure 7
The step of generating image data 504 shown in Figure 5 is detailed in Figure 7. At step 701 the user selects a view. At step 702 the appropriate view is generated, resulting in the generation of a three-dimensional view in a window on the monitor 304. Incoming data is received at step 703, and a database of updated stocks and shares of companies and other financial entities is stored in the incoming data buffer 605 in main memory. The user defines a data requirement at step 704, resulting in data items selected from the database 605 being stored as data items 606 in main memory 402. Selected data items usually include a subset of a much larger number of companies and financial entities whose fundamentals are stored in the buffer 605. The selected data items 606 are supplied as additional input data to the step of generating a view 702.
Steps 701 to 704 each represent processing performed in a multi- tasking processing environment, as facilitated by the operating system instructions 601. These steps are not necessarily performed in any particular order, and at any time, the precise functionality implemented by any of these steps is defined by the data available to it. As an additional parallel process, step 705 saves user preferences to hard disk. User preferences include configuration data, that includes, for example, an indication as to which companies are to be selected as data items 606 when generating a view. Other data relating to specific views is also stored in association with a particular configuration, as will be detailed subsequently.
Figure 8
The step of generating a view 702 shown in Figure 7 is detailed in Figure 8. At step 800 a selection is made on the basis of the view identified by the user at step 701. Thereafter the appropriate view is selected from one of the following: grid view 801, planets view 802, nails view 803, particles view 804, top list view 805 and other view 806. Flow lines from decision box 800 to process boxes 801 to 806 have been omitted for the sake of clarity.
Figure 9
An example of the data received from the data service provider 101 is shown in Figure 9. Figure 9 details contents of a file that has been supplied in the comma separated . value (CSV) format. A first column 901 defines the full names of companies, or other financial entities, such as trust funds and so on. A second column 902 specifies a unique symbol for the company or financial entity, comprising a few alphabetic characters. A third column 903 specifies the share price for the company. Share prices may fluctuate rapidly, and so it is common to receive a CSV file in which the only company fundamental defined is the share price. Other CSV files may include other company fundamentals, updated less frequently. Several data service providers supply data of this kind, varying in the cost and frequency of updates. A suitable source of such data is quote.com, and information relating to CSV formats and other implementation details is available at http://www.quote.com/quotecom/qcharts/qfeed.asp?=qfeed.
Figure 10
A data item comprises many company fundamentals, assembled from information supplied, perhaps with frequent updates from several CSV files. A resulting data item is shown in Figure 10. A first column 1001 shows the name of the fundamental, and a second column 1002 shows the value of the fundamental. Typically, many thousands of companies will be represented in this way, not all of which will be of primary interest to the user. Also, only a few of the fundamentals will be of interest. Thus, the totality of company data is largely redundant, and decisions are most easily made by monitoring key companies or entities, and within these, only certain fundamentals. The data items 606 represent user-selected companies or financial entities, from which image data is to be generated. The fundamentals used to generate image data may be defined separately for each of the possible views 801 to 806.
Figure 11
The grid view 801 indicated at 801 in Figure 8 has an appearance, when displayed on the monitor 304, as shown in Figure 11. Five separate windows are displayed, including the view window 1101. A title bar 1102 includes drop-down menus for controlling various aspects of the windows that are being displayed.
A file menu 1103 enables loading and saving of user preferences, stored as configurations. A configuration stores configurations for several windows, and for multiple views. An edit menu 1104 enables the user to modify the selection of data items currently used to generate display data. A views menu 1105 enables the user to switch between the available 3D views 801 to 806 for the selected data items. A window menu 1106 enables the user to edit items or characteristics in any of the windows that are currently active. A help menu 1107 provides context-sensitive help to enable the user to navigate the several windows and menus that are provided. An edit menu 1108 enables the user to set up equations for generating parameters in addition to those provided by the company fundamentals. Any of the fundamentals may be supplied as a variable to an equation defined by the user, the result of which may then be applied in the same way as a company variable when generating display data. A feed menu 1109 enables the user to configure aspects of the connection with the data service provider 101. For example, the user may wish to modify download settings so that company data is updated more frequently. A data items window 1111 displays a list of currently selected data items that are being used to generate display data. Usually, more companies will be selected than can fit into the display, and the user may scroll through the list using a scroll bar or other scrolling means provided by the operating system 601. A share set window 1112 provides a short list of companies for which fundamentals are to be displayed. A single company selected in this window, for example MSFT, will be highlighted in some way in the view window 1101, and its fundamentals will be displayed in a fundamentals window 1113.
A grid properties window 1114 enables the user to define which fundamentals are to be used for each dimension of the grid of data items that is displayed in the view window. In the present example, fourteen companies have been selected as data items from which display data is to be generated. These are arranged as elements within a four-by-four array. Each of the two dimensions of this array is associated with a particular fundamental, or user-defined value. The X dimension has its fundamental selected at 1121 , and the Z dimension has its fundamental selected at 1122. Examples shown are Market Cap and Dividend for X and Z dimensions respectively. However, any fundamental or user defined value may be used. The array is sorted so that companies have Market Cap values that increase in the X dimension, and Dividend values increase in the Z dimension. A third dimension, Y, is also defined, for which a different properties window is used. Figure 12
A properties window for defining the Y dimension of the grid view 1101 shown in Figure 11 is shown in Figure 12. A weights properties window 1201 defines weighted fundamentals contributing to the Y dimension for each of the companies from which image data is to be generated. Three value fields 1211, 1212 and 1213 are provided in which the user defines three characteristics applied to a company fundamental. These fields define the name of the fundamental 1221, whether or not to invert the fundamental 1222, and the level of weighting 1223 for the fundamental. In the simplest situation, only a single fundamental is used, in which case the weights in fields 1212 and 1213 are set to zero. The fundamental in field 1211 is multiplied by its weight 1223, and this value defines the extent of a company's height in the 3D bar graph shown in the view 1101. Inverting the fundamental, by ticking the box at 1222, has the effect of using the reciprocal of the fundamental, with the result multiplied by its weight 1223. A normalise values option 1224 causes the heights in the Y dimension, of each company on the grid, to be normalised in response to the height of the highest company, which is set to a value of one. When multiple fundamentals are configured to contribute to the Y dimension of a company in the grid view 1101 , this enables the user to set up sophisticated interrelations between fundamentals, that may be quickly and easily adjusted for maximum effectiveness when visualising company performance. Reconfiguration of the weights properties window 1201 and the grid properties window 1114 shown in Figure 11, enables the user to easily adapt and try out various methods for generating image data from company fundamentals.
In the grid view 1101 , or any of the 3D views, the user can modify the viewpoint in 3D space, so as to obtain a different perspective on the data items that have been rendered. For example, the viewpoint my be rotated left or right, up or down, with the grid of companies remaining at the centre. This may be achieved by moving the mouse cursor over the view window 1101, and then dragging the mouse 303 with its left button held down, left or right, up or down, with respect to the screen. The user can zoom in or out of the view window by dragging the mouse, but this time with the control key held down on the keyboard 302 as well as the mouse button. In this way the user may quickly and easily view the data that is being displayed from a number of different 3D perspectives, without the complexity of having to navigate the 3D environment with a special 3D input device such as a 3D mouse or a dataglove. Commands for modifying the viewpoint of a view in 3D space are provided by OPENGL 3D graphics instructions. The user's viewpoint is specified as a single set of x, y, z co- ordinates and a 2D projection of the 3D objects viewed from that point in world space is rendered.
In any of the views, the user may identify a particular company in the share set window 1112, and this company will be highlighted in the 3D view by changing its colour to a contrasting colour.
Figure 13
The planets view 802 indicated in Figure 8, is shown in Figure 13. The planets view window 1301 has a circular grid 1302. Each company or data item is represented as a planet orbiting the centre 1304 of the grid 1302. The centre is marked by a small yellow sphere 1304. The radius, or size, of a planet 1303 is controlled by a first company fundamental selected in the planet properties window 1305 in a first data entry field 1306. The distance of a planet 1303 from the centre 1304 of the grid 1302 is determined by a second company fundamental selected in a second data entry field 1307. A reference point 1308 on the outer circumference of the grid 1302 provides a reference for a zero degree angular displacement. The reference point is also marked by a small yellow sphere. The angular displacement of a planet 1303 from the reference point 1308, around the grid, is controlled by a third company fundamental selected in a third data entry field 1309.
Each data entry field 1306, 1307 and 1309 includes a region 1310 for selecting the company fundamental and a region 1311 for a scaling factor that may be adjusted in accordance with the requirements of the company data from which image data is to be generated. The circular grid, the planets and the reference point rotate smoothly about the centre 1304 at a fixed rate, typically once every two seconds. The rate of rotation is set by a rotation parameter at 1312. Rotation enables the user to see the relationships and characteristics of data items from a continuously changing perspective. Because the orbit paradigm is used, the continuous rotation of perspective does not have the disconcerting effect it would have if applied to data items on non-circular grid. The vertical perspective position may be adjusted by dragging with the mouse in a vertical direction in the view window 1301.
Figure 14
The nails view 803 indicated in Figure 8 is detailed in Figure 14. The nails view 1400 is similar to the planets view shown in Figure 13. Each data item is represented by a shaft with a cap, having an appearance like that of a nail. In this view four company fundamentals are used to generate image data. The radius, distance and angle 1401 , 1402 and 1403 are defined in the same way as the radius, distance and angle in the planets view 802, except that the radius relates to the radius of the cap of each shaft. An additional fourth company fundamental is used to control the height of the cap above the plane of the circular grid. This fourth fundamental is selected at data entry field 1404. As with the planets view, the rate of rotation of the circular grid, and all the objects displayed on it, can be adjusted. In both the planets view and the nails view, rotation may be switched on or off by a tick box 1410 in a rotation dialogue box 1411.
Figures 15 and 16 The particles view 804, indicated in Figure 8, is illustrated in Figure
15. In the particles view, data items are shown as spherical particles having a size related to ten raised to the power of the market capitalisation. These are initially located randomly in a volume of 3D space. Each particle, representing a data item, has three contributing company fundamentals, defined in data entry fields 1501 , 1502 and 1503 in the particles properties window 1504. Each fundamental has an associated factor, that determines its contribution to the behaviour of each data item. The particles view window 1505 shows a model in which three attractors 15 1, 1512 and 1513 exert a gravitational force of attraction upon each data item. The attractors are red, blue and green in colour. The magnitude of the attraction is dependent upon the inverse square law of gravitation, and upon the mass of the data item with respect to red, blue and green dimensions of gravity, as defined at fields 1501, 1502 and 1503. Thus, for each company item, three gravitational forces are identified, with respect to each of the red 1511, blue 1512 and green 1513 attractors. A vector addition is performed, followed by an integration with respect to time, in order to determine a movement of a company item 1521 in 3D world space.
The model can be restarted by activation of a run model button 1522, which causes all particles to be randomly located. The rate at which time passes in the gravitational simulation is controlled by a rate dialogue box 1523. Dynamic or tertiary conditions may provide indications of market behaviour. After a period of time, some or all of the data items will have moved to a stationary position, or a condition of localised positional oscillation between two of the attractors. This is illustrated in Figure 16. During the simulation, it is possible for trajectories to take data items outside of the bounding volume of the model. As a data item, or particle, hits the inside of the bounding 3D volume, it is reflected, and thereby returned to a region of space where it may be influenced by the pull of one or all of the three attractors.
In the planets, nails and particles view the objects used to represent companies in 3D space may be colour coded in accordance with their market sector. A typical colour scheme is as follows:
Basic Materials - Red
Capital Goods - Olive Green
Conglomerates - Light Green
Consumer Cyclical - Dull Yellow Consumer Non-Cyclical - Light Purple
Energy - Cyan
Financial - Dark Grey
Healthcare - Light Grey
Services - Dark Purple Technology - Gold
Transportation - Dark Cyan
Utilities - Orange The provision of this uniform colour scheme across several switchable views enhances the coherency, quality and quantity of information created by browsing the data.
Figure 17
The top list view 805, indicated in Figure 8 is shown in Figure 17. The list view differs from the other views in that the user-defined data requirement 704, shown in Figure 7, defines the number of data items to display, but does not select them individually. Selection of individual data items is performed automatically during the process of generating image data. The user may, however, at step 704, define an overall collection of data items, up to a maximum of thirty, from which data items will be automatically selected. An example of this is a user definition of a requirement to select US stocks, shares and options. In the top list view window 1701 a plurality of lists is displayed. Each list is sorted in accordance with a particular company fundamental or user- defined type. The same company appears at different positions in each list. By clicking on a data item 1702 in a particular list, the data item turns blue in colour. The same data item is highlighted by a blue colour 1703 in its position in other lists. However, because the user defines and thereby restricts the number of items in the lists, it is possible that the company will not appear in all of the lists that are shown in the window 1701. When a company is highlighted in this way, its details are displayed in the fundamentals window 1707. The user defines the number of items that appear in each list in the items dialogue 1704 in the top list properties window 1705. The user adds or deletes fundamentals from a list of lists at 1706. Any number of lists from 1 to 34 can be displayed in the top list window 1701, and this number is limited only by the clarity and resolution of the monitor 304. Similarly the limit on the number of list items 1704 is limited by clarity.
Each data item, represented by a column in each list in the top list view 1701 , is colour coded. A white column indicates that the position of the data item within the list has remained unchanged since the last data update. A green column indicates that a data item is rising in terms of its position in the list. A red column indicates that a data item is decreasing in terms of its position in the list. A gold-coloured column indicates that the element has just appeared in the visible part of the list. Each column has a plus (+) or minus (-) sign on its top surface. This indicates whether the absolute value of the data item is rising or falling.
Figure 18
The process of generating the grid view shown in Figures 11 and 12 is summarised in Figure 18. A company and its fundamentals are considered as individual data items 1801, 1802, 1803. The company is illustrated by a name followed by numerical fields. At least the three numerical fields are required. Figure 18 shows an example in which fourteen companies, A to N, are used to generate image data. It is intended to compare the third numerical fields of all fourteen companies. The companies, A to N, are indexed as elements in a two dimensional array 1811. The initial location of data items A to N in the array
1811 is not important. A sorting process is performed in which two-by-two areas 1812 of the array are selected and analysed. In each step of analysis, elements of the selected two-by-two area are compared to see if a swap is necessary.
The analysis procedure is illustrated at 1821 to 1824. At 1821, trie horizontal dimension of the array is considered. The lower two elements of the two-by-two area 1812 are examined. Their first numerical fields 1831 are compared. If the first numerical field 1831 is larger in the rightmost element, then this is considered as being the correct order, as it increases from left to right. Otherwise, a swap is performed between the elements, so that correct left right ordering is achieved. Correct left right ordering is considered with respect to the first numerical field 1831. At 1822, the two leftmost elements are examined. Their second numerical fields 1832 are compared. In this case, appropriate ordering is considered as being an increase from the bottom to the top of the array 1811, and a swap between these elements is performed, if necessary, to achieve correct ordering in this dimension.
At 1823, the horizontal dimension of the array is considered again. The upper two elements of the two-by-two area 1812 are examined. Their first numerical fields 1831 are compared, and if the first numerical field 1831 is smaller in the rightmost element, then a swap is performed between the elements. At 1824, the two rightmost elements are examined. Their second numerical fields 1832 are compared. In this case, a swap is performed to ensure that ordering increases from bottom to top of the array 1811 with respect to the second numerical field 1832. Each two-by-two area 1812 selected from the array 1811 overlaps the previous selected area. Thus, proceeding horizontally, the first area is ABEF, the second BCFG and so on. When proceeding vertically, the first is ABEF, the second EFIJ, and so on. The array is fully scanned a row at a time, with each row beginning ABEF, EFIJ and so on. If, at any point in scanning the array, a swap is necessary, this enforces the condition that another complete scan must be done, once the present one is finished. Several scans will usually be completed before the array becomes stable, and no more swaps occur. Eventually, the result is an array 1813 that has been sorted in both its dimensions, with respect to first and second numerical fields of its elements.
Having performed this sorting procedure, the third numerical fields 1833 are used to define an extension in a third dimension for each data item, as shown at 1814. Preferably a plurality of contributing numerical fields is combined in a weighted sum in order to define this third dimension for each data item. The array may then be rendered using standard 3D rendering instructions provided by the OPENGL 3D graphical environment. As a result of this process, companies A to N are in the closest possible proximity, while but are ordered with respect to two numerical fields. Additional numerical values from each company's data, are used to define the third dimension for the view of the resulting sorted array. By generating image data in this way, valuable information is created. The first, second and third numerical fields may be defined as any of the company fundamentals, or a plurality of company fundamentals may be combined to define the third dimension for each element in the array. Companies may be displayed in this way at the centre of a regular two-dimensional grid projected into a three dimensional view. Their proximity and spatial relationships provide immediate and valuable information to the user.
Figure 19
The steps required to implement the grid view are summarised in Figure 19. At step 1901 the number of data items selected by the user at 702 is counted, and assigned to a variable N. At step 1902 a variable W is defined as being the integer portion of the square root of N. At step 1903 a variable H is defined as being the integer portion of one plus the square root of N, which is the same as W + 1. At step 1904 a two dimensional grid array G is defined having a width of W elements and a height of H elements. W and H only differ by one, and this arrangement guarantees that all data items will fit into a roughly square grid array. At step 1905 the grid array G is populated with data item pointers. Superfluous grid elements are supplied with pointers to a data item having zero in each of its numerical fields. At step 1906 the grid is sorted, as illustrated in Figure 18.
At step 1907 the grid is rendered in a 3D projection, as shown in Figures 11, 12 and 18.
Figure 20 The step 1906 of sorting the grid, shown in Figure 19, is detailed in
Figure 20. At step 2001 a variable F is set to zero. At step 2002 the first or next value for X is selected. X is a variable that is used to scan the width of the grid array G. It takes possible values from 1 to W - 1. At step 2003 the first or next value for Y is selected. Y is a variable that is used to scan the height of the grid array G, and takes possible values from 1 to H - 1.
At step 2004 a two-by-two sub-array of elements is selected in the grid using X and Z as the base value. Comparisons are made between these elements, with swapping performed if necessary. At step 2005 a question is asked as to whether a swap occurred at step 2004. If so, F is set to the value one. At step 2007 a question is asked as to whether another Z value is required. If so, control is directed back to step 2003. Alternatively control is directed to step 2008, where a question is asked as to whether any X values remain for selection. If so, control is directed to step 2002. Alternatively, all the grid G will have been scanned. At step 2009 a question is asked as to whether F has the value zero. If so, this indicates that an entire scan of all the elements in the array has been performed without a swap occurring. This condition indicates that the array G has been entirely sorted in both its X and Z dimensions, and therefore the sort is complete. Alternatively, if the value of F is one, as set at step 2006, the grid is scanned again, swapping as necessary, until no more swapping occurs. Eventually, at step 2009, the value of F will be zero, and this completes the grid sort.
Figure 21
The step 2004 of comparing elements of a two-by-two grid, shown in Figure 20, is detailed in Figure 21. The steps of Figure 21 are also summarised visually in Figure 18 at 1821, 1822, 1823 and 1824. At step 2101 a comparison is made between the first numerical fields of data items referenced by grid elements at G[X,Z] and G[X+1 ,Y]. It is intended to sort elements by their first numerical fields in the X dimension of the array, increasing with increasing values of X. Thus, if elements are found to be in the wrong order in this respect, at step 2102, then they are swapped at step 2103. If a swap occurs, this completes the steps of Figure 21. At step 2104 a comparison is made between second numerical fields of data items referenced by grid elements at G[X,Z] and G[X,Z+1]. It is intended to sort elements by their second numerical fields with increasing values of Y. If incorrect ordering is detected at step 2105, then a swap is made at step 2106. The same tests are performed in steps 2107 to 2112 with respect to a comparison between elements horizontally at G[X,Z+1] and G[X+1 ,Z+1], and finally vertically again between elements at G[X+1 ,Z] and G[X+1 ,Z+1].
Swapping of elements in the grid is performed in response to a comparison of data that are indexed by grid elements, but not actually stored in an area of physical memory 402 that is used to store a grid. In most instances, data is sorted via pointers stored as elements in the grid, and those pointers themselves may point to other pointers, and so on, eventually leading to the actual numerical value. In this way, the amount of data movement within physical memory is kept to a minimum. It will be understood, however, that in many instances it is convenient to talk of swapping or moving data in memory or in an array, when in fact this is referring to a swap or move of pointers.
Figure 22
The step 1907 of rendering the grid in a 3D projection, shown in Figure 19, is detailed in Figure 22. At step 2201 the first or next W value for the grid G is selected. W values are integers that correspond to each of the columns of elements across the width of the array. At step 2202 the first or next H value is selected. H values are integers that correspond to each of the rows of elements in the grid array G. At step 2203 the data item indexed by a pointer stored at element G[W,H] in the grid is identified. At step 2204 the values for W and H set at steps 2201 and 2202 are used to define X and Z positions of a vertical column in the 3D grid view 1101. At step 2205 the height of the vertical column is calculated as a Y value. This value, Y, is determined by combining a plurality of weighted numerical fields, fundamentals, from the data item indexed at G[X,Z]. At step 2206 a column is drawn representing the data item, using values for X, Y and Z determined at steps 2204 and 2205. OPENGL drawing commands are used. At steps 2207 and 2208 remaining values for H and W are selected. Steps 2201 to 2208 select and draw each company selected by the user in response to a sorted grid of companies, and weighted fundamentals that define the height of columns above this grid, in a 3D projected view 1101.
Figure 23
The step 2205 of calculating a Z value from weighted numerical fields, shown in Figure 22, is detailed in Figure 22. The steps of Figure 23 will be understood with reference also to Figure 12. At step 2301 variables Q, R and S are assigned to fundamentals defined as values 1 , 2 and 3 in fields 1211, 1212 and 1213 in Figure 12. At step 2302 variables A, B and C are assigned to respective weights for values one to three, also defined in fields 1211 , 1212 and 1213. At step 2303 a question is asked as to whether it is necessary to invert value one. This is answered with respect to a tick box 1222 for the respective field 1211, 1212 or 1213. If the box 1222 is ticked, then the value for Q is inverted at step 2304. A similar check is made at steps 2305 to 2308 for the remaining respective fields. Finally, at step 2309, an equation combines variables A, B, C, Q, R and S to generate a value for the variable Z, that is used in the rendering of a column for a data item at step 2206.
Figure 25 The planets view 802 and the nails view 803 are perceived by the user as being distinct and separate views. However, both largely share a common underlying set of instructions when image data is generated for them. These steps are summarised in Figure 24. At step 2401 , the planets or nails view has just been selected. A variable TIME is set to zero. Throughout subsequent steps, and their repeats, the TIME variable is continuously updated by a timer interrupt generated from instructions in the operating system 601. At step 2402, therefore, it is possible to determine an angle of rotation for the view by multiplying the TIME variable by a rate of rotation. The rate of rotation is defined by the user in the rotation dialogue box 1312 or 1411.
At step 2403 the circular grid 1302 is drawn. This may be switched off by the user if preferred. At step 2404 a question is asked as to whether planets or nails view has been selected. If planets has been selected, then control is directed to step 2405. Alternatively control is directed to step 2406. At step 2405 the planets are drawn, and at step 2406 the nails are drawn. At step 2407 any associated text is drawn, for example text relating to a particular company highlighted by the user. At step 2408 the view window is updated with the new objects that have been drawn. This instantly replaces the previously seen view, thereby minimising flicker due to the continuous updates that result from rotation.
Figure 26 The step 2405 for drawing planets, shown in Figure 24, is detailed in
Figure 25. At step 2501 the first or next data item is selected. At step 2502 a planet radius R is defined by the first numerical field multiplied by its scaling constant S1. At step 2503 the planet's distance from a first ring 1315 from the grid centre 1304 is defined by the second numerical field multiplied by its scaling factor S2. At step 2504 the planet's angle around the centre 1304 relative to the grid reference 1308 is defined by the third numerical field multiplied by its scaling factor S3. The numerical fields and their respective scaling factors are defined in the planets properties window 1305 at 1306, 1307 and 1308 respectively. At step 2505 the planet's colour is defined according to its market sector, as described previously. At step
2506 the planet is drawn. At step 2507 a question is asked as to whether any other data items remain to be drawn as planets. If so, control is directed to step 2502, and the next data item is selected. Alternatively, this completes the drawing of planets in the planets view. The step 2406 for drawing nails, shown in Figure 24, is detailed in
Figure 26. At step 2601 the first or next data item is selected. At step 2602 a nail head or radius R is defined by the first numerical field multiplied by its scaling constant S1. At step 2603 the nail's distance from the first ring 1315 of the grid centre is defined by the second numerical field multiplied by its scaling factor S2. At step 2604 the nail's angle relative to the grid reference is defined by the third numerical field multiplied by its scaling factor S3. At step 2605 the nail's height above the grid plane is defined by the fourth numerical field multiplied by its scaling factor S4. The numerical fields and their respective scaling factors are defined in the nails properties window at 1401 , 1402, 1403 and 1404 respectively. At step 2606 the nail's colour is defined according to its market sector. At step 2607 the nail is drawn. At step 2608 a question is asked as to whether any other data items remain to be considered. If so, control is directed to step 2602, and the next data item is selected. Alternatively, this completes the drawing of nails in the nails view window 1400.
Figure 27 The process 804 of generating the particles view shown in Figures
15 and 16 is detailed in Figure 27. At step 2701 all the particles are given random X, Y and Z positions within a bounded volume of three-dimensional world space. Their velocities, VX, VY and VZ are all set to zero. At step 2702 preparation is made for the next update. This includes evaluating elapsed time since the previous update, DT, and initialising the next data item for selection as being the first of the data items. At step 2703 the first or next data item is selected. Each data item is represented by a particle, whose movements are governed by red, blue and green gravitational attraction towards the red, blue and green attractors in the three dimensional world, respectively. These interactions are calculated at steps
2704, 2705 and 2706, respectively. Steps 2704, 2705 and 2706 result in the velocities VX, VY and VZ for the particle being modified. At step 2707 these velocities are each multiplied by DT to identify an incremental change in position for each of these dimensions, which are then added to the base X, Y and Z co-ordinates for the particle.
At step 2708 boundaries are checked. As a result of accelerations applied to a particle, it is possible for a trajectory to result in a particle being lost from the gravitational pull of the red, blue and green attractors. Since this would prevent any further useful interactions with the particle being observed, this condition is avoided by the boundary checking at step 2708. Each of the X, Y and Z values for the particle are checked against minimum and maximum values. This defines a bounding box in the three-dimensional world. If the position in any dimension is found to be outside this box, the corresponding velocity, in that dimension, is reversed and divided by ten.
At step 2709 friction is applied. This is achieved by multiplying the velocities VX, VY and VZ each by 0.999. At step 2710 the colour of the particle is defined by a financial characteristic. In the preferred embodiment this is the market sector that the data item belongs to, colour coded in accordance with the associations described previously. At step 2711 the particle is drawn at its new position.
At step 2712 a question is asked as to whether any more data items remain to be drawn as particles in the present update cycle. If so, control is directed back to step 2703, and the next data item is selected. Alternatively, if all particles have been drawn, control is directed to step 2713, where all other objects are drawn. This includes the red, blue and green attractors 1511 , 1512 and 1513, the optional grid markings, in blue, and any associated text or other symbols that have been requested by the user. At step 2714 the particles view window 1505 is updated with the redrawn objects. Thereafter, control is directed to step 2702, and the next iteration of the gravitational model is performed. The steps 2702 to 2714 are repeated until an interrupt is generated from another parallel process selected by the operating system 601.
Figure 28
The steps for calculating red, blue or green attraction 2704, 2705 or 2706 are the same, and are summarised in Figure 28. At step 2801 the mass M of the currently selected data item is determined with respect to the red, green or blue attractor. The mass is given by the nth numerical field multiplied by its respective scaling factor. Thus, when calculating red attraction, M is given by the value of the first numerical field and its respective user-defined scaling factor. These are defined in data entry field
1501 shown in Figure 15. Numerical data entry fields 1502 and 1503 effectively define the mass M in the case of the blue and green attractors respectively.
At step 2802 the co-ordinates, X, Y and Z of the particle have the co- ordinates of the attractor subtracted from them, thereby resulting in coordinates AX, AY, AZ that define the position of the particle with respect to the currently considered attractor. Co-ordinates for the attractors, given that they lie in a plane at Y=0, are:
RED X = _5, Z = -4
BLUE X = 0, Z = 4.66
GREEN X = 5, Z = -4
At step 2803 a radius R from the centre of the attractor to the centre of the particle is calculated as the square root of the sum of the squares of
AX, AY and AZ. At step 2804 the law of gravitation is applied using mass M and radius R. Figure 29
The step 2804 of applying the law of gravitation is detailed in Figure 29. At step 2901 a question is asked as to whether the value R, calculated at step 2803, is greater than 0.7. If so, this indicates that the particle and the attractor are sufficiently far apart for the ordinary laws of gravitation to apply. If they are close, then this is considered as resulting in reflection. The equations used to simulate gravity are applied at step 2902. The velocities VX, VY and VZ of the particle are updated in accordance with the inverse square law. At step 2903, these same velocities are updated using equations resulting in reflection from the attractor.
Figure 30
A summary of the data required to generate the top list view shown in Figure 17 is shown in Figure 30. A set of data items 3001 comprises a predefined set, that is typically larger than the selected data items 606 used by the other views. A list of user-selected fundamentals 3002 defines the lists that are to be generated for the view. This is defined at 1706 in the top list properties window 1705. The number of items to display in each list is defined at 1704 in the top list properties window 1705. These three data inputs 3001, 3002 and 3003 are supplied to a process 3004 in which the top lists are generated and converted into image data for display on the monitor 304.
Figure 31 The process 3004 of generating top lists, shown in Figure 30, is detailed in Figure 31. At step 3101 an initialisation process is performed. At step 3102 the first or next company fundamental from the user selected fundamentals 3002 is selected. Each user-selected fundamental is considered as a numerical field, upon which sorting and other procedures will be based. At step 3103 a list structure for the numerical field is populated with the set of data items 3001. In practice the list stores pointers to data items, rather than copies of the data items themselves, although it is convenient to talk of the list as if it does actually contain the data itself. At step 3104 the list is sorted based upon the value of the numerical field for each data item. At step 3105 the least significant data items, based upon the sort, are removed from the resulting list structure, leaving a list containing the correct number of data items as defined by the user at 3003. These data items are the highest in the list, with respect to the numerical field upon which the sort was based.
At step 3106 each data in the list is drawn. At step 3107 a question is asked as to whether there is another fundamental value for which a top list is to be generated. If so, control is directed to step 3102. Alternatively all top lists will have been created and drawn. At step 3108 other objects, for example text objects, are drawn. At step 1909 the top list view window 1701 is updated, swapping the previous window contents for the newly drawn objects. At step 3110 new data is awaited. This may be new incoming data received from the data service provider 101, or a change in user requirements. When a change in data occurs, control is directed back to step 3101, and new image data is generated. Steps 3101 to 3110 constitute a loop, which may be broken as a result of a software interrupt from another process running in parallel under control of the operating system 601. For example, the user may request a switch to the grid view 801 by interaction with the views menu 1105.
Figure 32
The step 3106 of drawing each data item, shown in Figure 31, is detailed in Figure 32. At step 3201 the maximum value in the list is identified as a variable MAX. For example, if the numerical field upon which the list is sorted is a fundamental called TRADE_RATE, then the maximum value of trade rate for all the items in this list is identified. At step 3202 the first or next data item in the list is selected. At step 3203 a question is asked as to whether the value of the item, for example the value of the TRADE_RATE fundamental, is rising or falling as a result of data updates received from the data service provider 101. If the value is rising, a plus (+) symbol is defined for the data item at step 3204. If the value is falling, a minus (-) symbol is defined at step 3205. At step 3206 a colour is identified for the item. At step 3207 the height of the column that will be drawn to represent the data item is defined as being equal to its value divided by MAX, defined at step 3201. This has the effect of normalising the heights of the data items in the list with respect to the highest, and the highest always has a height of one. At step 3208 the data item is drawn. At step 3209 a question is asked as to whether any other data items remain for consideration in the list. If so, control is directed to step 3202. Alternatively this concludes the step required to draw all the data items in a list.
Figure 33
The step 3206 of colour coding a data item, shown in Figure 32, is detailed in Figure 33. At step 3301 a question is asked as to whether the data item is currently highlighted. If so, its colour is set to blue at step 3302. Alternatively control is directed to step 3303 where a question is asked as to whether the data item is new in the visible part of the list. If so, its colour is set to gold at step 3304. Otherwise, at step 3305, a question is asked as to whether the position of the data item in the list is higher, lower, or the same is it was previously. If higher, its colour is set to green at step 3306. If lower, its colour is set to red at step 3307. If in the same position, its colour is set to white at step 3308. Consideration of the position in a list may be considered as a way of measuring whether the data item's value is changing with respect to the average value of the list, but quantified in terms of ranking rather than using an absolute numerical function.

Claims

Claims
1. Data browsing apparatus, including memory means for storing instructions and data items comprising a plurality of fields wherein said fields include multiple numerical fields; receiving means for receiving data over a network and processing means for generating said image data, wherein said processing means is configured to receive instructions to generate said image data from said data items in accordance with a plurality of views and configured to perform the steps of: identifying a user selection of said data items to browse; identifying a user selection of numerical fields in said selected data items; identifying a user selection of a view; generating three dimensional representation of data items in said user selected view by processing said numerical fields to generate coordinate data and at least one visual characteristic for each of said selected data item; and repeating said steps in response to a change in state.
2. Apparatus according to claim 1 , wherein at least one of said numerical fields is processed with reference to a respective user defined scaling factor.
3. Apparatus according to claim 1 , wherein one of said visual characteristics is colour.
4. Apparatus according to claim 1 , wherein said change of state is a change view angle, resulting from a user intention to modify a projection of said three dimensional representations.
5. A data processing system for generating image data from a plurality of data items, including memory means for storing instructions and said data items; and processing means for generating said image data, wherein said instructions define operations to be performed by said processing means to generate said image data from said data item; said data items include a plurality of data fields of which preferred numerical fields have been selected by a user for generating image data; and said operations include repeated steps of; processing said preferred numerical fields with reference to scaling values for said fields; generating three dimensional view representations of said data items, in response to a result of said processing; receiving a user update to a said scaling value; and repeating these steps in response to receiving said user update.
6. Apparatus according to claim 5, including non-volatile storage means wherein said scaling factors are stored in said non-volatile storage means.
7. Apparatus according to claim 5, wherein said data items are identified as a sub-set of data items received from a data service provider.
8. A data processing system including memory means for storing instructions and for storing data items, wherein image data is generated from a plurality of said data items, including processing means for generating said image data, wherein said instructions define operations to be performed by said processing means to generate said image data from said data items; said data items include a plurality of data fields of which preferred numerical fields have been selected for generating image data; wherein said operations include steps for switching between a plurality of view, in which each view is generated by executing steps for processing said preferred numerical fields to generate three dimensional representations of said data items in response to a method of generating image data for the selected view.
9. Apparatus according to claim 8, wherein the generation of image data for the selected view results in a grid view.
10. Apparatus according to claim 8, wherein the said generation of image data for the selected view results in a planets view.
11. Apparatus according to claim 8, wherein the generation of image data for the selected view results in a mails view.
12. Apparatus according to claim 8, wherein the generation of image data for the selected view results in a particles view.
13. Apparatus according to claim 8, wherein the generation of image data for the selected view results in a top list view.
14. Apparatus according to any of claims 1 to 13, wherein a user update to a scaling factor is received and the correctly selected view is updated in response to said received user update.
15. Apparatus according to claim 8, including a web server, wherein image data is converted into an image data file references from an HTML page served from said web server in response to a user web page request.
16. Apparatus according to claim 8, wherein said instructions are encoded in Java and downloaded to a user's computer in response to a user request for data browsing.
17. Apparatus according to claim 8, wherein user defined characteristics for each of said view type are stored as a configuration.
18. Apparatus according to claim 17, wherein user defined characteristics of each of said view types are loaded from a configuration file.
19. Apparatus according to claim 18, wherein said view types are defined by respective sets of view instructions, wherein a first set of instructions defines operations for generating a view in which said data items are static; and a second view of instructions defines operations for generating a view in which said data items are continually moving.
20. A data processing system including memory means for storing instructions and data items, wherein image data is generated from a plurality of said data items in response to said operations performed by said processing means, wherein said instructions define operations to be performed by said processing means to generate said image data from said data items; said data items include a plurality of data fields of which preferred numerical fields have been selected for generating image; and said operations include the steps of: selecting a first view in which said preferred numerical fields are processed to generate three dimensional representations of said data items in accordance with a first method of generating image data; and selecting a second view in which said preferred numerical fields are processed to generate co-ordinate data for second representations of said data items in accordance with a second method of generating image data.
21. A method of browsing data, in a data browsing system including memory means for storing instructions and data items comprising a plurality of fields, including multiple numerical fields, receiving means for receiving data over a network, and processing means for generating said image data; wherein said instructions define operations to be performed by said processing means to generate said image data from said data items in accordance with a plurality of views; and said operations include steps of: identifying a user selection of said data items to browse; identifying a user selection of numerical fields in said selected data items; identifying a user selection of a view; generating three-dimensional representations of data items in said user-selected view by processing said numerical fields to generate coordinate data and at least one visual characteristic for each of said selected data items; and repeating said steps in response to a change in state.
22. A method according to claim 21, wherein at least one of said numerical fields is processed with reference to a respective user defined scaling factor.
23. A method according to claim 21, wherein one of said visual characteristics is colour.
24. A method according to claim 21, wherein said change of state is a change in information defining a view angle, resulting from a user intention to modify a projection of said three-dimensional representations.
25. A method of generating image data from a plurality of data items, in a data processing system including memory means for storing instructions and said data items, and processing means for generating said image data; said instructions defining operations to be performed by said processing means to generate said image data from said data items; said data items including a plurality of data fields of which preferred numerical fields have been selected by a user for generating image data; wherein said operations include repeated steps of: processing said preferred numerical fields with reference to scaling values for said fields; generating three-dimensional view representations of said data items, in response to a result of said processing; receiving a user update to a said scaling value; and repeating these steps in response to receiving said user update.
26. A method according to claim 25, wherein said scaling factors are stored in non-volatile storage means.
27. X method according to claim 25, wherein said data items are identified as a subset of data items received from a data service provider.
28. A method of generating image data from a plurality of data, items, in a data processing system including memory means for storing instructions and said data items, and processing means for generating said image data; said instructions defining operations to be performed by said processing means to generate said image data from said data items; said data items including a plurality of data fields of which preferred numerical fields have been selected for generating image data; wherein said operations include steps for switching between a plurality of views; in which each view is generated by executing steps for processing said preferred numerical fields to generate three-dimensional representations of said data items in response to a method of generating image data for the selected view.
29. A method according to claim 28, wherein said method of generating image data for the selected view results in a grid view.
30. A method according to claim 28, wherein said method of generating image data for the selected view results in a planets view.
31. A method according to claim 28, wherein said method of generating image data for the selected view results in a nails view.
32. A method according to claim 28, wherein said method of generating image data for the selected view results in a particles view.
33. A method according to claim 28, wherein said method of generating image data for the selected view results in a top list view.
34. A method according to any of claims 29 to 33, including steps of: receiving a user update to a scaling factor; and updating the currently selected view in response to said received user update.
35. A method according to claim 28, wherein said image data is converted into an image data file referenced from an HTML page served by a webserver in response to a user web page request.
36. A method according to claim 28, wherein said instructions are encoded in Java and downloaded to a user's computer in response to a user request for data browsing.
37. A method according to claim 28, wherein user defined characteristics of each said view method are stored as a configuration.
38. A method according to claim 37, wherein user defined characteristics of each said view method are loaded from a configuration file.
39. A method according to claim 28, wherein said methods for generating a view are defined by respective sets of view instructions; a first set of instructions defines operations for generating a view in which said data items are static; and a second set of instructions defines operations for generating a view in which said data items are constantly moving.
40. A method of generating image data from a plurality of data items, in a data processing system including memory means for storing instructions and said data items, and processing means for generating said image data; said instructions defining operations to be performed by said processing means to generate said image data from said data items; said data items including a plurality of data fields of which preferred numerical fields have been selected for generating image data; wherein said operations include steps of: selecting a first view in which said preferred numerical fields are processed to generate three-dimensional representations of said data items in accordance with a first method of generating image data; and selecting a second view in which said preferred numerical fields are processed to generate co-ordinate data for second representations of said data items in accordance with a second method of generating image data.
PCT/GB2001/001856 2000-05-26 2001-04-27 Browsing data WO2001093095A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU50522/01A AU5052201A (en) 2000-05-26 2001-04-27 Browsing data

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB0012903.1A GB0012903D0 (en) 2000-05-26 2000-05-26 Browsing data
GB0012903.1 2000-05-26

Publications (2)

Publication Number Publication Date
WO2001093095A2 true WO2001093095A2 (en) 2001-12-06
WO2001093095A3 WO2001093095A3 (en) 2003-12-31

Family

ID=9892478

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB2001/001856 WO2001093095A2 (en) 2000-05-26 2001-04-27 Browsing data

Country Status (3)

Country Link
AU (1) AU5052201A (en)
GB (1) GB0012903D0 (en)
WO (1) WO2001093095A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8606774B1 (en) * 2009-05-18 2013-12-10 Google Inc. Methods and systems for 3D shape retrieval

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5555354A (en) * 1993-03-23 1996-09-10 Silicon Graphics Inc. Method and apparatus for navigation within three-dimensional information landscape
US5864871A (en) * 1996-06-04 1999-01-26 Multex Systems Information delivery system and method including on-line entitlements

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5555354A (en) * 1993-03-23 1996-09-10 Silicon Graphics Inc. Method and apparatus for navigation within three-dimensional information landscape
US5864871A (en) * 1996-06-04 1999-01-26 Multex Systems Information delivery system and method including on-line entitlements

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FAIRCHILD K M ET AL: "SEMNET: THREE-DIMENSIONAL GRAPHIC REPRESENTATIONS OF LARGE KNOWLEGDE BASES" , COGNITIVE SCIENCE AND ITS APPLICATION FOR HUMAN COMPUTER INTERACTION, XX, XX, PAGE(S) 201-233 XP000570051 the whole document *
MOHR A ET AL: "NON-INVASIVE, INTERACTIVE, STYLIZED RENDERING" , PROCEEDINGS OF THE 2001 SYMPOSIUM ON INTERACTIVE 3D GRAPHICS. RESEARCH TRIANGLE PARK, NC, MARCH 19 - 21, 2001, PROCEEDINGS OF THE SYMPOSIUM ON INTERACTIVE 3D GRAPHICS, NEW YORK, NY: ACM, US, PAGE(S) 175-178 XP001113643 ISBN: 1-58113-292-1 the whole document *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8606774B1 (en) * 2009-05-18 2013-12-10 Google Inc. Methods and systems for 3D shape retrieval

Also Published As

Publication number Publication date
WO2001093095A3 (en) 2003-12-31
AU5052201A (en) 2001-12-11
GB0012903D0 (en) 2000-07-19

Similar Documents

Publication Publication Date Title
EP0694878B1 (en) A method and apparatus for increasing the displayed detail of a tree structure
US6400366B1 (en) Method and system for the interactive visualization and examination of data
Swayne et al. XGobi: Interactive dynamic data visualization in the X Window System
US5339390A (en) Operating a processor to display stretched continuation of a workspace
US6104398A (en) Fast and efficient means for grouped object selection and deselection
US8972295B2 (en) Dynamic visual statistical data display and method for limited display device
US6232968B1 (en) Data processor controlled display system with a plurality of switchable customized basic function interfaces for the control of varying types of operations
US5973699A (en) System and method for increasing the performance for real-time rendering of three-dimensional polygonal data
EP0663089B1 (en) Virtual reality generator for use with financial information
EP0967541B1 (en) Method and apparatus for graphical selection of data
JP2587894B2 (en) Computer display systems
EP0529121A1 (en) Graphics display tool
EP1198779A1 (en) System and method for providing zooming video
US20010040571A1 (en) Method and apparatus for presenting two and three-dimensional computer applications within a 3d meta-visualization
US20050122325A1 (en) Computer display system for dynamically modifying stacked area line graphs to change the order or presence of a set of stacked areas in the graph respectively representative of the proportions contributed to a total by each of a set of time dependent variables
Schirski et al. Vista flowlib-framework for interactive visualization and exploration of unsteady flows in virtual environments
Schönhage et al. 3D gadgets for business process visualization—a case study
EP0405496B1 (en) A method of manipulating images larger than a viewport
WO2001093095A2 (en) Browsing data
Ulgen et al. Simulation modeling in an object-oriented environment using Smalltalk-80
WO2001093124A2 (en) Generating image data
WO2001093204A1 (en) Generating image data
WO2001093123A2 (en) Generating image data
WO2001093203A2 (en) Generating image data
US20030043213A1 (en) Computer controlled user interactive display interface implementation for modifying the scope of selectivity of an on-screen pointer

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP