Previous Next


Subsumption is a posh word for the is-a relation. If B is a kind of A, then we say A subsumes B, and B is subsumed by A. As an informal example (which we’ll see more formally later), Man is a kind of Person, so we can say that the concept of Man is subsumed by Person. It’s a good idea to have fixed in your mind which way this relationship goes, as it sometimes seems that intuitively it should be in the other direction. One way to remember it is that if B is a kind of A and sits below A in the hierarchy, then we will know more of the properties of B. Thus the properties of A are a subset of those of B and A subsumes B. There are two different forms of subsumption. One, asserted subsumption, we’ll meet now; the other, formal subsumption, we'll explain up later.

Add a category that is subsumed by TransportCategory and embodies the concept of Vehicle.

TransportCategory newSub Vehicle.

This is asserted subsumption.. All we are saying is that there is some concept - Vehicle - that is a kind of TransportCategory. Note that the only interpretation of this relationship comes from our own linguistic interpretation of what Vehicle is except that it is a kind of TransportCategory. To illustrate this further, let’s extend the model to a few specific types of vehicles.

Type in and evaluate the following:

Vehicle newSub RoadVehicle.
  RoadVehicle newSub Bus.
  RoadVehicle newSub Car.

Vehicle newSub RailVehicle.
  RailVehicle newSub Train.
  RailVehicle newSub Tram.

There are several points to note about the above expressions. Layout is ignored by the compiler. However, it is important to others trying to read your files. Good layout can help a great deal in clarifying awkward situations. In general, it is easier to read if you indent each level in the newSub statements is indented as shown.

Now select the new statements, click the right mouse button, and select Compile. Go back to GCE and find TransportCategory, click on Vehicle in the browser to see what it subsumes. Click on and expand each of the subsumed categories in turn (as a short cut, press * on your keyboard). You should see a browser as shown in below.

This is the asserted subsumption hierarchy or asserted taxonomy for your model so far. It is called the asserted subsumption hierarchy because all of the subsumptions have been created by asserting them with a newSub statement without any reason being given. In the next section we shall see how to create additional formal subsumptions.

Previous Next
Making the impossible very difficult, ©, All rights reserved