[MUSIC] We've computed ten formal concepts, and these are all the concepts of our context of triangles. Let's draw a line diagram that shows how these concepts are related to each other. But before doing so, let's look at a couple of definitions. The first definition is really technical. We say that a concept (A1, B1) is a proper subconcept of (A2, B2) if it is a subconcept of (A2, B2) and is different from it. So our definition of subconcept assumes that every concept is its own subconcept. And if we want to emphasize that a subconcept is indeed less general, not just as most as general, we use the term "proper subconcept". Now suppose that (A1, B1) is a proper subconcept of (A2, B2) and there's no other concept between them, that is, no other proper subconcept of (A2, B2) for which (A1, B1) is also a proper subconcept. To put it differently, (A1, B1) is the most general subconcept of (A2, B2). In this case, (A1, B1) is called a lower neighbor of (A2, B2) and (A2, B2) is called an upper neighbor of (A1, B1). Admittedly, this terminology is not very conceptual, but it goes well with line diagrams: neighbors are precisely those concepts that must be connected by edges. So let's start drawing, First, we draw a circle for every concept. We have ten concepts, so we draw ten circles. We can place them as we wish as long as nodes corresponding to more general concepts are placed higher than those for less general ones. So we have exactly one node at the top—the concept of everything, which has G as its extent. And we have exactly one node at the bottom, the concept with intent M, the set of all attributes. Somewhere between them we put concept no. 4 corresponding to obtuse-angled triangles and concept no. 1 corresponding to equilateral triangles, but these concepts can be placed anyhow relative to each other, because they're incomparable, none is more general than the other. Then we connect every circle to each of its lower neighbors with an edge. And then we label nodes by attribute names and object names. We started our computation by computing attribute concepts, so we already know which nodes should be labeled with which attributes. Nodes corresponding to concepts from no. 1 to no. 5 must be labeled by attributes a through e. With object labels, it's a bit trickier. First, we need to identify object concepts. For an object g, we can find a concept with intent g' in the list— this is going to be the object concept of g. Or we can look at all concepts that have g in its extent and choose the least general one. Either method will work. So concept no. 8 is the object concept of T1. Indeed, it has only T1 in its extent. Similarly concept no. 9 is the object concept of T2. Apart from the top concept, concept no. 3 is the only concept with T3 in its extent. So this is the object concept of T3. Concept no. 1 is, of course, the object concept of T4. For T5, we have concept no. 4; concept no. 7 for T6; and, finally, concept no. 5 for T7. This is the labelling that we get. We can make it more meaningful by using actual triangles for object labels and actual properties for attributes. And this is our final result. [SOUND]