Extrinsic Information, Defaults, and Indexing
All information in definitions (which expressions) and necessary statements is inherited, without exception, by all concepts subsumed by the given concept. GRAIL does not support default reasoning directly. If we make hasLocomotion flight part of the definition of birds, or if we add it to birds as a necessary statement, then hasLocomotion flight will be true of all birds in the model, including penguins, ostriches, and kiwis.
GRAIL does not support defaults directly. This is a deliberate choice. Default reasoning has been found to be extremely troublesome. One interpretation of the trouble is that there is just not enough information in a system like GRAIL to resolve the ambiguities which arise from defaults. GRAILs approach is therefore not to try to resolve such ambiguities.
Instead, GRAIL makes it easy to hang extrinsic information on the basic GRAIL model and use that information to identify the set of most specific relevant information of a given sort. For example, we might define an attribute canFly with a value true or false and say:
Bird extrinsically canFly true.
Ostrich extrinsically canFly false
There is an operation which collects all the most specific extrinsic values, so in this case since Ostrich is more specific than Bird, it would collect just false. This gives many of the effects of default reasoning, but it cannot guarantee that there will be just one answer or that the set of answers will be consistent. It is up to the application or the user to decide how to chose the right answer if more than one is found, or indeed to accept all of the answers. The correct strategy depends on the application, and it often requires additional information beyond that held in the GRAIL hierarchy.
Extrinsic links do not affect classification. If we form the category Animal which canFly true we wont find Bird. This is a serious disadvantage, but it is the price to pay for a clean, simple system. We argue that ideas such as whether or not birds fly are not properly terminological, they are not a part of the naming of the thing, otherwise there would be, by definition, no exceptions.
However, we also argue, and have much experience to show, that having a clean explicit terminological structure minimises the clashes and ambiguities which otherwise occur with default reasoning in multiple hierarchies.
One way to think about this is that the GRAIL terminological structure provides a high quality index for looking up other information including information usually managed by default reasoning. Having a good index does not eliminate the need for reasoning, but it makes the reasoning easier and quicker.