Online Java Lattice Building Application
Example Lattices

Help | FCA | SIMuLLDA | Examples | Create

Some Example Contexts

On this page you will find some examples of nice Formal Concept contexts; either because they have interesting properties or because they look nice. All these examples could of course also be manually generated.


Take a context with N objects, and N attributes, and make each object have a unique set of all-but-one attributes. So for N=3, this is the following context:

a b c
1 x x
2 x x
3 x x

Contexts like these will yield the maximal number of formal concepts for any concept with N objects and N attributes, namely a context in which there is a formal concept for every subset of M where the intent of that concept is that subset (and similarly for the objects).

The lattice for such a context is a Boolean lattice, and the Hasse Diagrams of Boolean lattices happen to correspond to hypercubes. So it is very easy to construe an N-dimensional hypercube in JaLaBA. These can be viewed by clicking on the links below. To get a recognisable hypercube, set the attraction to about 30 and the repulsion to about 70.

2D Square - 3D Cube - 4D Hypercube - 5D Hypercube

To see that the result produced by JaLaBA is indeed a hypercube (if the sliders are adjusted that is - notice that the corresponding lattices are not hypercubes by default but can be displayed as such), it is useful to know what hypercubes in general look like: an N-dimensional hypercubes is drawn by drawing two separate N-1 dimensional hypercube, moved across the N-dimensional axis across a rigid distance, and connect all the corners of the two separate hypercubes. In practice: a line (1-dimensional hypercubes) is drawn by putting two points (0-dimensional hypercubes) across the x-axis (the first axis) across (say) 2cm, an drawing a line between them. A square (2-D hupercube) is created by putting two of these lines, directly above each other acros the y-axis, and connecting both ends of both lines. A cube consists of 2 squares, moved 2 cm across the z-axis (usually represented at a 45 degree angle from the x and y axis in a 2-D projection), and connecting all 4 corners by a line. A 4-D cube is then simply two cubes, 2 cm apart across the 4th axis, with all corners connected. This is nicely graphically shown in the following picture, where the first N-1D hypercube is represented in black, the second in blue, and all connecting lines in red.

Figure 1. Drawing N-Dimensional Hupercubes

A a further regularity of hypercubes, there is a very nice way of calculating how many elements an N-dimensional hypercube has. This involves two rows that have to be multiplied. The first is the row of n-square: 1 2 4 8 16, etc. The second is more complex: the Pascal triangle. Pascal's triangle describes the probabilities involved in flipping coins, or the number of ways to choose n objects from a group of m indistinguishable objects. It happens to be a triangle, where every number in the interior of the triangle is the sum of the two numbers directly above it. The first seven rows like like this:

                        1                  n=0

                      1   1                n=1

                    1   2   1              n=2

                   1   3   3   1           n=3

                1   4   6   4   1          n=4

             1   5  10   10  5   1         n=5

           1   6   15  20  15  6   1       n=6

To calculate the number of elements in an N-dimensional hypercube, do the following: take the row in N-1th row in Pascal's triangle (corresponding to n=N), and multiply the Nth element of that row by 2^N. So for N=0 this is 1x1: a point has 1 point.
For N=1, we get (1 1) and (1 2), or (1 2): a line has two points and one line.
For N=2, we get (1 2 1) and (1 2 4), or (1 4 4): a square has one square, four ribs (lines) and four corner points.
For N=3, we get (1 3 3 1) and (1 2 4 8), or (1 6 12 8): a cube has one cube, 6 sides (squares), 12 ribs (lines) and 8 corner points.
For N=4, we get (1 4 6 4 1) and (1 2 4 8 16), or (1 8 24 32 16): a 4D-hypercube has one content (hypercube), 8 corners cubes, 24 sides (squares), 32 ribs (lines) and 16 corner points. Given this complex structure, the only way to really see a 4-D hypercube in a 2D projection is to rotate it; try to recognise the corner cubes.

Horses and the like

SIMuLLDA, as explained, uses contexts in which the formal objects are not objects, but words (or actually interlingual meanings linked to wordforms); the example that was used was the following:

horse male female young adult
horse x
stallion x x x
mare x x x
foal x x
colt x x x
filly x x x

The corresponding lattice can be viewed using JaLaBA. This example uses the definition from the Longman dictionary of Contamporary English, which defines mare and stallions as specifically adult. Other dictionaries do take a different perspective, and define stallion simply as a male horse, including also young male horses, so that colt is in fact a hyponym of both stallion and foal. Notice that this lattice would look much more simple, but has no large impact on the SIMuLLDA system as such: both lattices are equally well, it is up to the lexicographers to decide which would best describe the actual meaning of the words. There are of course more words, for horses, and these could be represented in a large lattice. Notice, however, that this results (in this case) in a rather flat structure, with so many nodes that it is absolutely illegible.