Programmable
Multidimensional
Space
Programmable, multidimensional Space is a system for
manipulating, editing and viewing large volumes of intrinsically
multidimensional data.
Every large
company has huge volumes of accounting data. This data is
inherently multidimensional because each element of data can be
associated with a point in a space of more than one or two
dimensions.
Consider the
revenue accrued from selling one particular model and colour of
motor car at the Ohio show rooms in February 2007. This $ figure
fits naturally into a space of four dimensions: model, colour,
location and month. This is how you will think about your data
when you use this application.
Here we introduce the system through a fictitious example of the
accounts of the Ford motor company. We look at a 5 dimensional
demonstration file called Ford5D.Vol that has been created
already, and then we show how you would create a database yourself
from scratch.
On starting Space.exe, you are asked to enter a password.
This is blank by default but may be changed to something else if
required. Just hit OK for now.

This is how the password
screen looks under all screen resolutions in Space Version 1.1
Then the main system opens up, with a standard set of menus.
From the [File] menu, select [Open] and find the file Ford5D.Vol
in the ..\Data\ directory. (Actually, you can open more than
one file in one go.)

The Coordinates
A window opens showing the labels associated with each of the 5
dimensions. The Years dimension has 6 items in the
list. Clearly these label the 6 years worth of data in the
database. The Months dimension identifies the month.
The Product dimension identifies each product, and also
contains a subtotal relating to all the trucks for sale, and a
grand total for all vehicles. Similarly the Factories
dimension identifies the factory that produced each vehicle and a
grand total over all factories. The fifth dimension contains
the accounting items. This dimension has some more
complicated calculations. For example, the Cost of Goods
Sold is equal to the Average Unit Cost times the Sales Volume, in
this model.

Arrays of Data
If at this point the Array tab is selected then a report is
presented with the dimensions that were under the Row button
placed on the rows of the report, the dimensions that were under
the Column button placed on the columns of the report, and the
dimension under the Page button placed in a combo box at the top
of the report.

Some columns have been formatted differently from others, and data
has already been entered into the database. You can format
items on one particular dimension by right-clicking on the chosen
dimension list; at this point the text of each item may be
changed.

To specify the formatting of each item, click on the format
column. This switches the format column to the first position.

Double clicking on one particular item brings up a popup box that
allows you to specify format details and colours in the Array
view.

Right click again on the list returns you to the default list.
[File][Save] to keep changes.
Orientation of Arrays
You might want a spreadsheet that oriented the multidimensional
database in a different way. This is easily done by dragging
dimensions in the Coordinate view from Row to Column or from Page
to Row, etc. For example, return to the Coordinates tab and
click and hold down the left mouse button over the Months label of
the Months dimension. Drag the Months list to the left and
drop it over the right end of the Years label of the Years
dimension. Do the same with the Product dimension - drag it
and drop it over the Months label. Finally drag the Account
dimension into the Row column.

Now if you hit the Array tab you will see a different view of the
data.

You can select the desired font name and size for the spreadsheet
contents from the controls on the format bar.

Selection of Data
In this way, if the database is small enough, then the entire
dataset may be viewed all at once and from any angle.
However, in most situation you don't want to see all the data at
once. In this case it is possible to select just a part of
the data, at any angle, by selecting only those items that are
required from each dimension. For example, returning to the
Coordinates view, you might only be interested in the expenses
associated with Large Trucks in 2006 from just some of the
factories. So you might select the items shown below and get
the Array shown alongside.

Editing Data
Any data that you wish to change may be typed directly into a
cell. The data is saved on file through the [File][Save]
menu item, or the save button on the toolbar. Any array may
be exported to Excel from the [Tools] menu.

Calculating Derived
Quantities
Calculations are specified in the Deduction tab. The first
line of the calculations for Ford5D says that the elements
identified by the coordinates selected in the Result cell are all
set to 23.57 (reshaped to the required shape). Double click
on the Result cell in the first row in order to view, and change
if necessary, the elements involved.
The second row in the calculations says that the elements
specified by the coordinates selected in the Result cell are equal
to the elements specified in the Left Arg cell times the
respective elements specified in the Right Arg cell. And so
on down to line 9. New lines may be added by hitting the
down arrow on your keyboard while in the last row of the
calculations.

This is what you get when you double click on row 1 column 1, the
Result column in the first line of the calculations. The
required selection may be changed here.

Multidimensional
Programming
A more compact view of the deductive program may be obtained
using [Format][AutoFormat].

Many different calculation functions are available for selection
in the combo boxes in the Function column, including plus, minus,
times, divide, max, min, log, rotate, transpose, inner
product, determinant, .. , trigonometric, relational and
user-defined functions. The following selection has been
implemented in Space, Version 1.0:
plus (+), minus (-), times (×), divided by (÷), minimum, maximum,
to power, logarithm, residue, binomial, equals (=), not equal (¬),
and (^), or, less than (<), greater than (>), less or equal,
greater or equal, dimension sum, reshape. Many more
functions will follow in Version 1.1, along with their precise
definitions.
Viewing Graphically
You can get a graphical view of any array of data by selecting the
items you require at the orientation you want. For this
example, select the items below.

On the Array tab, insert some random data in all the selected
cells using the Random menu item or otherwise. (In order to enter
constant data in all cells, enter the fixed value in the top left
cell and select [Insert][Data][Constant].)

Save the data (or it will immediately be lost) and then select the
View tab.

The red lines point down and correspond to negative numbers.
You can hover the cursor over any line. A diamond identifies your
choice and a small window pops up with information to identify the
data item and its value precisely. (Beware, some views
identify the wrong points in Version 1.0)

Many views are possible in SuperSpace and it takes time before you
will be comfortable with all of them. Any view can be copied
onto the clipboard by [Edit][Copy].

Inferring Base
Quantities
You can start from a small amount of data and fill up your
database by inference. For example, starting from some known
figures for the total for all vehicles, for all factories for the
earning from operations, you can spread these figures evenly over
the third and fourth dimensions. You can infer plausible figures
for the gross profits and total expenses from the earnings
figures. Then infer plausible revenue and costs from the gross
profits, and finally infer possible volumes and average unit costs
from the costs. The induction program uses rules which can
be replaced by precise deductions, if and when required.
(Note that this feature is still being developed in Version 1.0)

Creating a Database
When creating a new volume, the first major decision that has to
be made is how many dimensions is your database going to have.
The system can handle up to 15 dimensions which is likely to be
far more than you will ever need. If there were just 6
elements along each of 15 dimensions then the full database could
be as much as 4 Terabytes in size. The system can cope with this
size (assuming you have the necessary memory). Usually there
would be many fewer dimensions and many more elements along each.
Let's create a 4D database of stock prices from Yahoo.
Select [File][New] from the menu and select 4D from the big combo
box. We'll call the file Yahoo4D.Vol.

Hit Next and fill in the Dimension Names and Maximum Lengths along
each dimension. We allow for up to 100 Stock Symbols, each
with up to 10 associated price elements. We have separated
the days into weeks and allowed for up to 1400 weeks worth of data
because Yahoo history can go back as far as 1984 for many stocks.
Since time series are likely to be the main angle at which
we shall look at the data, the date dimensions are placed to the
right where they will be treated more contiguously on file, and
therefore more efficiently extracted. Since stocks are more
likely to be viewed separately, they are placed towards the left
where elements along dimensions are more likely to be stored in
separate components on file.

Hitting Next shows that the database could be up to 79 Megabytes
when full. This is not particularly large and is easily
handled with
Space. The system will provide suitable cell and
frame sizes if you prefer not to impose them yourself on the
database.

The default database coordinates then look like this:

Let us gather more meaningful item descriptions and put them on
the clipboard in order to paste them into the appropriate lists.
First we select the rows to be changed and then using
Shift+Insert we paste the descriptions into the item rows.

To add historic BP prices downloaded into Excel from
http://uk.finance.yahoo.com/, we orient and select
appropriately.

On the Array tab, select the grid items to be pasted in from the
clipboard, and then hit Shift+Insert to put them into the
database, remembering to save on file as soon as the data is
entered.

On the View
tab, after right clicking and collapsing the date dimensions into
a single dimension, we get a view of the opening price of BP
stocks over a few years. One anomalous data item is clearly
visible corresponding to the opening price on 25th November 2003.
This needs to be corrected on the Array tab (and in Yahoo
Finance).

After correcting the spurious value and saving again, let us
set up and run a calculation that works out the difference between
the opening and closing prices.

Viewing the differences between opening and closing prices
for Mondays, Tuesdays,.. and Fridays gives a measure of the
volatility:

Collapsing the two date dimensions into one shows the
changes in BP prices for weekdays between 2003 and 2008.

Tiling Windows
Many volumes can be opened at once and the data from one volume
may be passed into another volume. In Version 1.1 calculations in
one volume may invoke data from another.

Minimizing Windows
Icons on minimised windows are intended to pictorially represent
the selected data in the corresponding volumes thus giving a quick
clue as to their referent.

THIS SYSTEM IS CURRENTLY UNDER DEVELOPMENT BY GRAEME
ROBERTSON LIMITED.
ALL INTEREST IN THIS VENTURE IS ENTHUSIASTICALLY ENCOURAGED.