GENERATING IMAGE DATA

Abstract: Image data is generated on a computer having a processing device, storage and a display. A plurality of numerical data units (301, 302, 303) (that may relate to a specific company) are supplied to the processing device. Each of the data units includes a plurality of numerical data items (311, 312) (such as company fundamentals). Data units are selected (321) to identify sets of data items. A three-dimensional world-space (331) is constructed (322) including a two-dimensional plane (332) defined therein. Locations are positioned (323) on the plane with reference to a first substantially linear co-ordinate (x) and a second substantially linear co-ordinate (y). For each of the selected data sets, a geometric object (241) (that may be a cone frustrum) is defined having a first geometric parameter (such as base size) controlled by a firstdata item and a second geometric parameter (such as height) defined by a second data item. For each of the defined geometric objects, the object is positioned on the plane at a first co-ordinate location defined by a third data item and at a second co-ordinate location defined by a fourth data item. A two-dimensional view of the three-dimensional world-space is rendered and said two-dimensional view is displayed.

Description: Generating Image Data Background of the Invention 1. Field of the Invention The present invention relates to generating image data using processing apparatus having processing means, storage means and display means. 2. Description of the Related Art A procedure for the generation of image data from a plurality of data items is described in the applicant's co-pending British patent application number 00 12 902, filed 26 May 2000. The data processing system includes memory for storing instructions and data items, a processor for generating image data and instructions defining operations to be performed by the processor. The data items have at least three numerical fields, including a first numerical field, a second numerical field and a third numerical field. Operations are performed including an initial step of defining a two- dimensional array in which the data elements are displayed, followed by repeated steps of swapping elements in the array in its first dimension in response to a comparison of values of the first numerical field, swapping elements in the array in its second dimension in response to a comparison of values in the second numerical field and a final step of rendering image data by processing resulting item locations in the array with reference to the third numerical fields. Such an approach provides an ordering of graphically displayed elements, wherein each of said elements receives information concerning a particular item. In the preferred embodiment disclosed in the aforesaid patent application, the data items each refer to a listed company in a stock exchange and the numerical fields relate to fundamental values, such as the share price and market capitalisation of that company. The swapping of elements in the array provides a two-dimensional sorting of graphical elements ordered with respect to selected numerical fields. In this way, easily viewed graphical objects are shown, having graphical parameters that are determined by numerical fields of their respective data items. Thus, a mechanism has been provided for converting lists of numerical data into a graphical representation so as to facilitate the appreciation of a state or situation underlying these data items. In the particular example of the aforesaid application, this assists an investor, trader or financial advisor in terms of making selections, particularly with respect to obtaining evidence to the effect that a particular share should be bought or sold. However, it should be appreciated that the technique may be applied to other applications for individual sets of data that include numerical fields, such that each set of data may be represented by an individual graphical element and a plurality of these graphical elements may be displayed within a graphical environment. It has been appreciated that different types of information may be derived by presenting the underlying data, graphically, in different ways. Thus, in the applicant's co-pending British patent application number 00 12 890, filed 26 May 2000 graphical entities are displayed as planets as if in orbit around a solar system. This presents new graphical parameters, such as those associated with individual planets and those associated with their orbits. In the applicant's co-pending British patent application number 00 12 909, filed 26 May 2000, individual data items are represented as graphical particles that move in three-dimensional space under the influence of a synthesised gravitational force. These previously described graphical representations provide useful ways of viewing data. However, it has been appreciated that further views are possible that, under some circumstances, provide an enhanced way of viewing data so as to derive an understanding of its underlying meaning and information content. Brief Summary of the Invention According to a first aspect of the present invention, there is provided image data generating apparatus, comprising processing means, storage means, display means and network connection means, wherein said network connection means is configured to supply a plurality of numerical data units to said processing means, in which each of said data units includes a plurality of numerical data items; and said processing means is configured to: (a) select data units to identify sets of data items; (b) construct a three- dimensional world-space including a two-dimensional plane defined therein; (c) identify locations on said defined plane with reference to a first substantially linear co-ordinate and a second substantially linear co-ordinate (d) for each of said selected data sets, define a geometric shape having a first geometric parameter controlled by a first data item and a second geometric parameter defined by a second data item; (e) for each defined geometric shape, position said shape on said plane at a first co-ordinate location defined by a third data item and positioned on said plane at a second co-ordinate location defined by a fourth data item; and (f) render a two- dimensional view of said three-dimensional space; and said display means is configured to display said rendered two-dimensional view. In a preferred embodiment, the data units relate to specific companies and the numerical values relate to company fundamentals. Preferably, the first geometric parameter is base size and said geometric object is a cone or a frustrum. Brief Description of the Several Views of the Drawings Figure 1 illustrates an environment in which an investor is using a computer to browse information relating to share prices; Figure 2 illustrates an environment for the distribution of data; Figure 3 illustrates the application of the invention to a preferred embodiment; Figure 4 details a plane constructed in world-space identified in Figure 3; Figure 5 illustrates constituent parts of the computer shown in Figure 1; Figure 6 summarises operations performed by the user identified in Figure 1 Figure 7 illustrates contents of a main memory identified in Figure 5; Figure 8 details a step for generating image data identified in Figure 6; Figure 9 illustrates an example of data received from the data service provider identified in Figure 2; Figure 11 shows the computer display of Figure 1 displaying a graphical environment of the type shown in Figure 4; Figure 12 identifies procedures performed by the processing unit shown in Figure 5; Figure 13 identifies data for individual entities; Figure 14 details the procedure for filtering data identified in Figure 12; Figure 15 illustrates a mapping of individual data elements; Figure 16 details the procedure for calculating ranges for scaling data items identified in Figure 12; Figure 17 details the process for the comparing of data items identified in Figure 16; Figure 18 details the process for defining a geometric object identified in Figure 12; Figure 19 shows a representation of graphical elements similar to Figure 4 but with the introduction of colour variation; and Figure 20 illustrates the presentation of alternative geometric objects. Best Mode for Carrying Out the Invention Figure 1 An investor is shown in Figure 1 using a laptop computer 101 to browse information relating to share prices over the internet. Computer 101 includes an internal modem, thereby providing connection to the Internet via a cable 102. Information is displayed via a display screen 103 that shows a representation of company related information (referred to as fundamentals) in a graphical environment making use of the present invention. The present invention may be applied to other fields of endeavour but is particularly suited to this application in that it allows a relatively large amount of information to be perceived relatively quickly and also emphasises trends and variations that may be particularly useful to a user making investment decisions. Figure 2 An environment for the distribution of data is illustrated in Figure 2, in which a data service provider 202 supplies data in response to requests for data received from users, such as the user shown in Figure 1, connected to the Internet 202. Users are connected to the Internet by Internet service providers (ISP's), such as ISP 211. Additionally, some users may connect to an Internet service provide via an intranet 116, 117, that is provided by a company or organisation for internal data communications. Users have computer terminals 101, 221 to 235 and receive data from the data service provider 201. Data from the data service provider 201 is supplied to computer terminals, where the data is stored temporarily in the form of data units, each of which has a plurality of data elements. In the application of the present preferred embodiment, each input data unit refers to a particular company or financial institution and the individual data elements refer to numerical data fields that are collectively identified as a company's fundamental data, or fundamentals. It is these fundamentals that are used by financial analysts, traders or investors to make informed decisions about market purchases and sales. The data service provider 201 supplies data in a data file standard known as "comma separated values" (CSV) or in an alternative proprietary format. A CSV file, once downloaded from the Internet 202, can be imported into a spreadsheet application operating on any of the computer terminals 212, 221 to 235. Thereafter, a user may configure the spreadsheet to perform known numerical analysis and use built-in data visualisation functions to display graphs etc. However, the complexity of company fundamentals, comprising in the region of fifty or more parameters for each individual company, ensures that the presentation of the information is not in itself sufficient to enable a user to gain an insight into subtle 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 3 The preferred embodiment implements use of the present invention by processing a plurality of numerical data items wherein each of these data items includes a plurality of data fields. The application of the invention to the present preferred embodiment is illustrated in Figure 3. Input data units 301, 302 and 303 are received over the internet from a data service provider 201. Each data unit refers specifically to an individual company or similar entity and includes a plurality of data elements 311, 312 representing company fundamentals. A selector 321 selects particular data units representing companies of interest to the user to identify selected data units. Within selected data units, individual data elements (ie individual company fundamentals) are selected to provide a data set of data items. Thus, this process produces a plurality of data sets containing the same types of data items collected in the same order. A constructor 332 constructs a three-dimensional display space 331, including a two-dimensional plane 332 defined therein. Locations on plane 332 are positioned by a positioner 323 with reference to a first substantially linear co-ordinate X and a second substantially linear co-ordinate Y. For a selected data set 313 a geometric shape 341 is defined, having a first geometric parameter, such as its base radius, controlled by a first data item and a second geometric parameter (such as height) defined by a second data item. For each defined geometric shape 341, the shape is positioned on plane 332 at a first co-ordinate location X defined by a third of said data items and is positioned at a second co-ordinate location Y defined by a fourth of said data items. Thereafter, a two-dimensional view of the three-dimensional space is rendered and then displayed on computer display 103. Preferably, geometric shapes 341 , illustrated as a cone in Figure 3, are calculated and positioned on a substantially two-dimensional XY plane. This XY plane is then transformed into three-dimensional world-space to create plane 332. Thus, XY co-ordinates are transformed to a three- dimensional XYZ co-ordinates within a three-dimensional world-space. A two- dimensional viewable image is then produced by rendering the three- dimensional data from a selected viewing position. Preferably, the graphical environment is generated under the programming language OPENGL and procedures for working within this graphical environment and rendering images therefrom are described in "Computer Graphics: Principles and Practice" Second Edition by Foley, Van Dam, Feiner and Hughes. Figure 4 Plane 332 is detailed in Figure 4, having a first cone 401 and a second cone 402 placed thereon. Cone 401 has a higher height than cone 402 but cone 402 has a wider base radius than cone 401. Their positions on the grid are also different, showing that there are differences in the fundamental data from which these cone parameters are derived; which may convey useful information to a user. In order to provide a more interesting visualisation, the plane 332 is bounded by a side wall 411 and a rear wall 412. In this example, cone 401 represents the cone of highest height and this particular height is identified along side wall 411 by a line at the prescribed height that also includes numerical data 412 identifying the specific numerical value of the original input fundamental represented by the particular displayed height. Figure 5 Constituents of computer 101 are illustrated in Figure 5. A central processing unit 501 performs processing in response to instructions read from memory 502. Memory 502 includes sixty-four megabytes of dynamic RAM. In addition, the central processing unit 501 includes primary data and program cache circuitry to minimise the transfer time of repeatedly accessed data and instructions. A suitable processor 501 is a Pentium III available from Intel Corporation. Secondary cache circuitry, also provided in CPU 501 , operates at a lower speed, but at a larger memory capacity, thereby minimising the transfer of data over a bus 511 that is electrically shared by several other components of the computer system 101. A hard disk drive 503 provides non-volatile storage for instructions and data and further extends the effective capacity of main memory through the use of virtual addressing techniques. A graphics card 504 receives instructions for the rendering of image data generated by the processing unit 501. In the graphics card 504, digital to analogue converters for each of the red, green and blue colour components generate electrical signals that are supplied to monitor display 103 via an electrical connection 505. The graphics card 504 generates frames of image data at a definition of 1024 by 768 pixels, where each pixel has a data depth of four bits for each of its red, green and blue components. The graphics card 504 includes a processor configured to render image data supplied to the graphics card in the form of OPENGL graphics commands. In this way, graphics processing is significantly accelerated and provides a preferred operating environment, compared to implementing the OPENGL functionality within the processor unit 501 itself. OPENGL commands facilitate the definition of shapes, objects and lighting in virtual three-dimensional space, that may be viewed in a conventional two-dimensional window displayed on monitor 103. 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 a virtual three-dimensional world that it contains. Instructions for operations performed by the processing unit 501 may be installed on a CD ROM drive 506. Instructions are usually stored in compressed form on a CD ROM and installed by a smaller number of installation instructions controlling the processor unit 501 , so that new instructions are stored onto the hard disk drive 503. Thereafter, a user may initiate the new instructions by an appropriate context-dependent command from a keyboard or mouse forming part of computer system 101. CD ROMs may also be used as a source of data, such as 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 data is a local area network, such as a corporate intranet 116. Connectivity to an intranet is made via a network card 507 and an internet connection 508. Input/output circuitry 509 facilitates communications between a keyboard, mouse and the processing unit 501. A modem 510 facilitates connectivity to an ISDN or conventional telephone line and internet access may be achieved either via modem 510 or via the network card 507. Figure 6 Operations performed by a user of computer system 101 are summarised in Figure 6. At step 601, the computer system is switched on and a processing system, comprising the processing unit 501 and a main memory 502 are initialised. At step 602, instructions for generating image data are loaded from a local area network or CD ROM 603. At step 604 the user initiates instructions for generating image data. Thereafter, image data is generated in response to context and space generated by user commands and incoming data 605 received over the internet 202, from the data service provider 201. The data service provider 201 supplies data to the user terminal 221 at a rate dependent upon a previously agreed contractual arrangement. Depending upon the importance of the data, updates may be received once a day, or virtually continually, with updates being received every minute or so. Having completed the generation of image data, several context settings, defined by the user, are saved at step 606, allowing them to be recalled during a later session. At step 607 the processing system is shutdown while requiring a synchronisation of main memory 502 and hard disk drive 503 in order to ensure that all permanent data has been stored in non-volatile memory. Figure 7 Contents of main memory 502, while generating image data 604, are detailed in Figure 7. A Windows NT™ operating system 701 provides common instructions, such as those required for accessing the hard disk drive 503, the graphics card 504 and all components of the computer system. The operating system 701 includes instructions for facilitating OPENGL rendering commands in combination with processes performed by the graphics card 504. Instructions for generating image data 702 facilitate reception of data from the data service provider 201, interaction with user commands supplied from the keyboard system 101 and the mouse of system 101 and the generation of graphical context within which windows are generated for display of a display device 103 of system 101. These contexts include an OPENGL window, within which a projection or rendering of a three- dimensional world space is viewed and adjusted. Other applications 703 include instructions for file management and data backup etc. Instructions 701 , 702 and 703 are permanently stored on hard disk drive 503 and are loaded on demand into the main memory 502. The operating system 701 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 an illusion to the user to the effect that the processing unit 501 is executing multiple tasks concurrently. Furthermore, multi-tasking enables the computer to receive data input 605 over the internet while, at the same time, generating image data 604 for display 103, without the user being aware of any interruption. During execution of instructions 701 to 703, portions of memory 502 are allocated and de-allocated as a result of changing instruction requirements. A dynamic workspace 704 is provided by the operating system 701 , in the form of a stack, to facilitate the allocation of memory in response to requests from applications 702, 703 as their instructions are executed. Other regions of memory are also allocated for specific requirements of the instructions for generating image data 702. An incoming data buffer 705 temporarily stores incoming data from the data service provided 201 , received over the internet 202. Data item 706 includes data from the buffer 705 that have been formatted in such a way that it has to be suitable for generating image data. User preferences 707 includes settings relating to the generation of image data, including the way in which the data items 706 are generated from incoming buffered data 705. Figure 8 The step of generating image data 604, shown in Figure 6, is detailed in Figure 8. At step 801 the user selects a view and at step 802 the appropriate view is generated, resulting in the generation of a three- dimensional view in a window of display 103. Incoming data is received at step 803 and a database of updated stocks and shares of companies and other financial entities is stored in the incoming data buffer 705 of main memory. The user defines a data requirement at step 804, resulting in data items selected from the database 705 being stored as data items 706 in main memory 502. Selected data items usually include a subset of a much larger number of companies and financial entities, for which fundamentals are stored in the buffer 705. The selected data items 706 are supplied as additional input data to the step of generating a view 802. Steps 801 to 804 each represent processing performed in a multitasking environment, as facilitated by the operating system instructions 701. 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 805 saves user preferences to hard disk. User preferences include configuration data that includes, for example, an indication as to which input data sets (ie companies) are to be selected, from which individual elements are selected to provide data sets. Figure 9 An example of the data received from the data service provider 201 is shown in Figure 9. Figure 9 details the contents of a file, making up a data unit, that has been supplied in comma separated value format. A first column 901 defines the full names of companies, or other financial entities, such as trust funds and so on. The second column 902 specifies unique alphabetic characters for the company or financial entity. A third column 903 specifies the share price for the company. Share prices may fluctuate rapidly, therefore it is common to receive a SCV file in which the only company fundamental defined is that of the share price. Other CSV files may include other company fundamentals, updated less frequently. Data of this type can be produced by many different applications. Alternatively, proprietary data formats are also available, requiring an appropriate application program interface in order to perform appropriate data conversions. A suitable source of such data is Quote.com and information relating to Quote.com is available at http://www.quote.com/quotecom/qcharts/qfee.asp?=qfee. Figure 10 A data item comprises many company fundamentals (data elements) assembled from information supplied, perhaps with frequent updates from several CSV files. A resulting data unit is illustrated in Figure 10. The 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, the majority of which will not be of interest to the user. Furthermore, only a few of the fundamentals may 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, monitoring only certain fundamentals. The data units 706 represent user selected companies or financial entities, from which image data is to be generated. Figure 11 The view illustrated in Figure 4 is displayed on computer display 103 as shown in Figure 11. Five separate windows are displayed, including a view window 1101. In addition, a title bar 1102 includes dropdown menus for controlling various aspects of the windows that are being displayed. A file menu 1103 enables the 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 a user to modify the selection of data items currently used to generate display data. A views menu 1105 enables a user to switch between different three-dimensional presentations. 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 a user to navigate the several windows and menus that are provided. A feed menu 1108 enables a user to configure aspects of a connection with a data service provider 201. For example, a 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 that 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. A share set window 1112 provides a shortlist 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 cone's property window 1114 enables a user to define which fundamentals are to be used for each dimension of the cone's view. Thus, cone radius has been defined by beta values from a pull-down 1115, cone height has been defined by an entry defined by a pull-down 1116, the X position of the cones has been defined from a pull-down 1117 and the Y position, defined by market capitalisation in this example, has been set from a pull-down 1118. Figure 12 Procedures performed by processing unit 501 are identified in Figure 12. At step 1201 the environment illustrated in Figure 11 is constructed to facilitate user interaction. At step 1202 selections made by a user are received whereafter at step 1203 online data units of data elements are received via a connection to the internet 202. At step 1204 data units, representing individual companies or financial institutions, are filtered with reference to the user selections made at step 1202 in order to retain data units relating to companies of interest. At step 1205 individual data elements within filtered data units (ie company fundamentals) are selected and mapped to define data items. At step 1206 ranges for the data items are calculated so that the values of items may be scaled for subsequent graphical representation. At step 1207 a loop is initiated during which the data sets are selected one by one. Thus, on a first iteration, the first data set is selected at step 1207. Thereafter, a geometric shape is defined for the selected data step at step 1208. Subsequently, a question is asked at step 1209 as to whether another set is to be considered and if answered in the affirmative control is returned to step 1207. Eventually, all of the data sets will have been considered, resulting in all of the geometric shapes being defined and the question asked at step 1209 being answered in the negative. At step 1210 additional graphical data is defined. This includes side wall 411 , rear wall 412 and the indication of highest height 413. At step 1211 a two-dimensional view of the three-dimensional world space is rendered, whereafter a question is asked at step 1212 as to whether more data units are to be considered. When working in an environment in which new data is continually being received, the question at step 1212 would tend to be answered in the affirmative, whereafter the process would wait at step 1203 (subject to a reasonable time-out) until new online data had been received. Alternatively, the system may operate to obtain a snapshot of data, resulting in the question asked at step 1212 being answered in the negative. At step 1213 a question is asked as to whether a new session is to be initiated and when answered in the affirmative, control is returned to step 1202. Question 1213 may be answered in the affirmative if an operation is to be performed on different data, possibly received from a different data provider, if different element selections are made or different mappings defined or if the process is being repeated for an alternative user or for a different investment portfolio. If no new sessions are required, operation of the process effectively terminates. Figure 13 The preferred embodiment is described with respect to an analysis of company fundamentals, but the technique may be employed for any collections of data in which a similar collection of properties are defined for similar entities. Data for individual entities is illustrated in Figure 13, which may be considered as an abstraction of the more specific data disclosed in Figure 9 and Figure 10. In the example illustrated in Figure 13, a first input data unit 1301 has been received, along with a second input data unit 1302. Each of these data units includes five data elements, E1 , E2, E3, E4 and E5. As described previously, a real list of company fundamentals would be substantially larger. However, in this example, it is understood that E1 represents the share prices, E2 represents market capitalisation, E3 represents price earnings ratio, E4 represents dividend yield and E5 represents number of employees. Thus, in data unit 1301 E1 represents the share prices for input data unit U1 whereas in input data unit 1302, similarly positioned data element E1 represents the share prices for data unit U2. Input data units 1301 and 1302 have been received from online service providers at step 1203, representing raw data upon which no filtering, selection or mapping has been performed. Figure 14 Procedure 1204 for the filtering of data units is detailed in Figure 14. A table of user interests 1401 has been populated following the reception of user selections at step 1202. In a more specific embodiment, this includes a list of the companies or financial institutions for which the user has an interest. In this more abstracted example, these are identified as specific input data units. Thus, in this example, the user has identified an interest in input data unit 04, data unit 17, data unit 38, data unit 108 and data unit 307. At step 1401, an online data item is captured for consideration and at step 1402 the item's reference is identified. Following the identification of the item reference at step 1402, a question is asked at step 1403 as to whether the item is included in the table of user interests 1401. If the unit is not of interest to a user, it is effectively ignored and control is returned to step 1401. Alternatively, if the referenced unit is included in the table of user interests, a question asked at step 1403 is answered in the affirmative whereafter, at step 1404, the data unit is treated as a unit of interest and supplied to a buffer of selected data units 1406. Figure 15 After data units have been filtered, to reject data units where no interest has been expressed, individual data elements are selected and mapped at step 1204, as detailed in Figure 15. Definitions 1501 , defined by selections received by a user at step 1202, identify a selection of individual data elements and also a mapping to a data set. Thus, a selected data unit is shown at 1502, including all of its received elements. These elements are mapped onto a data set 1503 having a limited number of data items arranged in a specific order. Each data set generated in this way will subsequently be used to define a specific geometric shape under an interaction of step 1208. In this specific example, the geometric shapes are cones having a base radius defined by data item D1 , a height defined by data item D2, an X position defined by data item D3 and a Y position defined by data item D4. Thus, the operation of process 1205 identifies a subset of data elements in a unit, to provide a data set and in the data set individual data items are ordered in a specific way to ensure that they are then used as specific parameters for the generation of graphical objects. After data sets have been selected and data elements have been mapped at step 1205, the individual data items are considered in order to calculate scaling ranges at step 1206. The three-dimensional world space environment shown in Figure 4 has finite dimensions. Therefore the position of cones, along with their heights, must be restrained to ensure that all of the data sets of interest are made visible collectively. It should be appreciated that the graphical representation of all of the data sets within a shared view is of great importance to the present invention. It is not so much the specific positioning and size of an individual data set that provides the enhanced information content. Significant advantage is gained from the invention by being able to compare relative positions and sizes of a plurality of geometric objects defined by their data sets that are in turn derived from real data elements from a data unit received from an external source. Figure 16 Procedure 1206 for calculating ranges for scaling data items is detailed in Figure 16. At step 1601 variables are established for the calculation of minimum and maximum values for, in this specific example, data items D2, D3 and D4. Data item D1 is used to calculate the radius of the base of the cone and this variable is processed non-linearly rather than being scaled. Thus, at step 1601 variables D2(min), D2(max), D3(min), D3(max), D4(min) and D4(max) are established. These variables are then populated by considering relevant data items for all of the selected data sets such that, by the end of this process, the minimum and maximum examples will have been identified for items D1 , D2, D3 and D4. At step 1602 a data set is selected and at step 1603 data items are compared with current minimum and maximum values to identify values that are lower than established minimum values or higher than the established maximum values. At step 1604 a question is asked as to whether another data set is to be considered and when answered in the affirmative control is directed to step 1602. Eventually, all of the data sets will have been considered, resulting in the question asked at step 1604 being answered in the negative. Thus, having completed this process, the maximum and minimum values will have been considered, allowing these values to be transferred to subsequent processing at step 1605. Figure 17 Process 1603 for the comparing of data items is detailed in Figure 17. At step 1701 a question is asked as to whether the current D2 value is smaller than D2(min) and if answered in the affirmative D2(min) is set equal to D2 at step 1702. Similarly, a positive answer to the question asked at step 1703 results in D2(max) being set equal to D2, a positive response to the question asked at step 1705 results in D3(min) being set equal to the current D3 value , a positive answer to the question asked at step 1707 results in D3(max) being set equal to the current D3 value, a positive answer to the question asked at 1709 results in D4(min) being set equal to the current D4 value and a positive answer to the question asked at step 1711 results in D4(max) being set equal to D4 at step 1702. Figure 18 Process 1208 for defining a geometric object is detailed in Figure 18. The purpose of the process shown in Figure 18 is to convert a set of data items D1 , D2, D3 and D4 into variables that can be used for specifying the position and size of the geometric object that, in this specific example, is a cone. Thus, the base radius R is derived from item D1 , the cone height H is derived from data item D2, the X position of the centre of the base of the cone on plane 332 is defined by data item D3 and the similar Y position is defined by data item D4. The radius of each cone is considered such that it should vary as if it represents a volume. This approach has two advantages. Firstly, it ensures that a very wide range of input variables may be considered without introducing scaling. Furthermore, it also allows the view to be integrated with other views in which the volumes of objects are being considered. Consequently, at step 1801 the cube root of data item D1 , variable R (cone radius) is calculated and this result if then divided by variable K1. Typically, variable K1 has a value of eighty and has been determined empirically. Thereafter, similar processing is performed at steps 1802, 1803 and 1804 to derive values for H, X and Y respectively. Considering step 1802, to determine H, data item D2 has variable D2(min) subtracted from it and this is divided by D2(max) minus D2(min) to provide the necessary degree of scaling. It is undesirable for objects to be generated having zero height, because they would not be seen, therefore variable K2 is added to ensure that all cones have at least some height. All variables R, H, X and Y are defined within a range of zero to one therefore variable K1 typically has a value of 0.05. The processing performed at steps 1803 and 1804 is substantially similar to that performed at step 1802, except that there is no need to add a variable, such as variable K2. Thus, at step 1803, X is calculated by subtracting D3(min) from D3 and this is then divided by D3 (max) minus D3(min). At step 1804, Y is calculated by subtracting D4(min) from D4 and then dividing this by D4(max) minus D4(min). A cone drawing function has been defined to display the cones, therefore a function call is made at step 1805 to the effect that a cone is required of radius R. This procedure is such that it does not take account of cones with varying height and all cones produced by step 1805 have the same height. Consequently, at step 1806, the cone generated at step 1805 is transformed, using matrix manipulations, to generate a cone of height H. At step 1807, the cone transformed at step 1806 is positioned onto a substantially two-dimensional XY plane at step 1807. The position of the cone is defined within the computer but this does not provide a suitable environment for its position and size to be viewed by a user. Consequently, at step 1808 the geometrically defined cone is transformed into three- dimensional xyz space so as to present an environment of the type shown in Figure 4. Figure 19 As previously described, this three-dimensional world space is rendered at step 1211, thereby allowing the information to be viewed by a user as previously described. The invention is not limited to cones and is not limited in terms of the number of variables that may be displayed by a geometric object. Figure 19 shows a representation in which cones are produced similar to the view of Figure 4. However, cone 1901 has a first colour (say green) while cone 1902 has a second colour (say red). These colours may be used to identify data sets belonging to different families. Thus, for example, companies where shares are owned by a user may be compared against companies where shares are not owned. This requires an additional data item in order to distinguish between the two. In an alternative embodiment, colours are used to identify cones that lie within specific ranges. Thus, for example, cones having a base radius or D1 data item below a particular threshold may be coloured green whereas cones having a base or D1 data item above a particular threshold may coloured red. Figure 20 An alternative embodiment is shown in Figure 20 in which, in preference to cones, the geometric objects are defined as frustums. Thus, frustum 2001 has a base 2002 and a height. In addition, it has a top radius 2003 which may be used to represent a further variable D5. Frustum 2005 has a top radius that is larger than its base radius. It has been found that for particular applications, related fundamentals may be used in particular ways. Thus, it has been found that the X and Y positions work well when the fundamentals mapping onto these positions are related in some way. Similarly, referring to Figure 20, it has been found that useful information has been gained if the lower radius data item and the upper radius data item are related.

Claims: Claims 1. Image data generating apparatus, comprising processing means, storage means, display means and network connection means, wherein said network connection means is configured to supply a plurality of numerical data units to said processing means, in which each of said data units includes a plurality of numerical data items; and said processing means is configured to: (a) select data units to identify sets of data items; (b) construct a three-dimensional world-space including a two- dimensional plane defined therein; (c) identify locations on said defined plane with reference to a first substantially linear co-ordinate and a second substantially linear co- ordinate; (d) for each of said selected data sets, define a geometric object having a first geometric parameter controlled by a first data item and a second geometric parameter defined by a second data item; (e) for each defined geometric shape, position said shape on said plane at a first co-ordinate location defined by a third data item and positioned on said plane at a second co-ordinate location defined by a fourth data item; and (f) render a two-dimensional view of said three-dimensional space; and said display means is configured to display said rendered two- dimensional view. 2. Apparatus according to claim 1 , wherein said data units relate to specific companies and the numerical values relate to company fundamentals. 3. Apparatus according to claim 1 or claim 2, wherein said first geometric parameter is base size. 4. Apparatus according to claim 3, wherein said geometric object is a cone or a frustrum and said first geometric parameter controls the base of said cone or said frustrum. 5. Apparatus according to claim 4, wherein said base is scaled non-linearly. 6. Apparatus according to claim 5, wherein said radius is scaled in proportion to a cube root. 7. Apparatus according to any of claims 1 to 6, wherein said second parameter is height. 8. Apparatus according to claim 2, wherein a set of companies are selected from a totality of received company data. 9. Apparatus according to claim 8, wherein particular fundamental values are selected from the totality of received values. 10. Apparatus according to claim 9, wherein particular values are selected and mapped to said geometric parameters. 11. A method of generating image data using processing apparatus having processing means, storage means and display means, comprising the steps of supplying a plurality of numerical data units to said processing means, wherein each of said data units includes a plurality of numerical data items; wherein said processing means is configured to: select data units to identify sets of data items; construct a three-dimensional world-space including a two- dimensional plane defined therein; identify locations on said plane with reference to a first substantially linear co-ordinate and a second substantially linear co-ordinate; for each of said selected data sets, define a geometric object having a first geometric parameter controlled by a first data item and a second geometric parameter defined by a second data item; for each defined geometric object, positioning said object on said plane at a first co-ordinate location defined by a third data item and positioning said shape on said plane at a second co-ordinate location defined by a fourth data item; and render a two-dimensional view of said three-dimensional space; and said display means is configured to display said rendered two- dimensional view. 12. A method of generating image data according to claim 11 , wherein said data units relate to specific companies and the numerical values relate to company fundamentals. 13. A method according to claim 11 or claim 12, wherein said first geometric parameter is base size. 14. A method according to claim 13, wherein said geometric object is a cone or a frustrum and said geometric parameter controls the base of said cone or said frustrum. 15. A method according to claim 14, wherein the size of said base is scaled non-linearly with respect to said parameter. 16. A method according to claim 15, wherein said radius is scaled in proportion to a cube root. 17. A method according to any of claims 11 to 16, wherein said second parameter is height. 18. A method according to claim 12, wherein a set of companies are selected from a totality of received company data. 19. A method according to claim 18, wherein particular fundamental values are selected from the totality of received values. 20. A method according to claim 19, wherein particular values are selected and mapped to said geometric parameters. 21. A computer-readable medium having computer-readable instructions executable by a computer such that, when executing said instructions, a computer will perform the steps of: supplying a plurality of numerical data units to a processing device, wherein each of said data units includes a plurality of numerical data items; selecting data units to identify sets of data items; constructing a three-dimensional world-space including a two- dimensional plane defined therein; identifying locations on said plane with reference to a first substantially linear co-ordinate and a second substantially linear coordinate; for each of said selected data sets, defining a geometric object having a first geometric parameter controlled by said first data item and a second geometric parameter defined by a second data item; for each defined geometric shape, positioning said shape on said plane at a first co-ordinate location defined by a third data item and positioning said shape on said plane at a second co-ordinate location defined by a fourth data item; rendering a two-dimensional view of said three-dimensional space; and displaying said rendered two-dimensional view. 22. A computer-readable medium having computer-readable instructions according to claim 21 , such that when executing said instructions, a computer will generate geometric objects in the form of cones or frustrums. 23. A computer-readable medium having computer-readable instructions according to claim 22, such that when executing said instructions, a computer will size the base of a cone or frustrum non-linearly with respect to a parameter. 24. A computer-readable medium having computer-readable instructions according to claim 23, such that when executing said instructions, a computer will scale a radius of a cone or frustrum in proportion to a cube root of a parameter. 25. A computer-readable medium having computer-readable instructions according to claim 21 , wherein said data units relate to specific companies and the numerical values relate to company fundamentals, such that when executing said instructions, a computer will select a set of companies from a totality of received company data. 26. A computer-readable medium having computer-readable instructions according to claim 25, such that when executing said instructions, a computer will select particular fundamentals from the totality of received values. 27. A computer-readable medium having computer-readable instructions according to claim 26, such that when executing said instructions, a computer will select and map particular fundamental values to said geometric parameters.

Inventors: ST LOUIS ALEXANDER PETER WILLI, ST LOUIS, ALEXANDER, PETER, WILLIAM
Applicants: ADVFN COM PLC, ST LOUIS ALEXANDER PETER WILLI, ADVFN.COM PLC, ST LOUIS, ALEXANDER, PETER, WILLIAM
Application year: 2001
Main classification: G06T11
IPC codes: G06Q10, G06T11