This section provides a brief recap of the GRAIL features we've introduced in this tutorial. It is not exhaustive - please let us know what's missing.


or relationship - if you consider the model to be made up of nodes (concepts) and arcs relating them, attributes are the arcs...


...and categories are the nodes. The objects in GRAIL representing concepts - things - in the world. Sometimes concept. Categories may be elementary (ie introduced using the newSub operator) or complex - made up by combining together categories with relationships using the which operator.

canonical form

the unique form of a complex GRAIL concept - ie with any redundancies or tautologies removed. See GALEN Deliverable 6 for a much more detailed treatment of this.


see category


an attribute-value pair. Eg hasOwner Person. There are several varieties, indicating where they are used. Defining criteria are criteria which make up the definition of a complex category; for example, the defining criteria of

Person which hasSex male

is the single (in this case) criterion.

hasSex male

necessary criteria (sometimes essential, or conventional criteria) are those properties which have been applied to a category using necessary statements. Properties are inherited along the subsumption network maintained by the GRAIL engine; inherited criteria are those necessary criteria that hold true of a category by inheritance along with any defining criteria of explicit parents. The union of the defining, necessary and inherited criteria are known as the complete criteria.


is the project itself - Generalised Architecture for Languages, Encyclopaedias and Nomenclatures in Medicine.


(or, more properly, the GRAIL Kernel) is the concept modelling language (or formalism) being developed in GALEN. It is the GALEN Representation and Integration Language.


the set of information presented as source files to the system - or - the result of the system (implementing the GRAIL formalism) having interpreted those sources. Also sometimes the set of implied categories that the model sanctions. The word model is over-used, and often for different things. Usually context helps.


the process of attaching a useful nick-name (sometimes knowledge name) to a complex concept.

necessary statement

a necessary statement applies an indefeasible criterion (or property) to a category. For example

(Person which isOwnerOf RoadVehicle) necessarily hasAge old

The necessary operator is bi-directional - this statement has said something about people that drive road vehicles, and the concept of old. Two unidirectional variants exist - topicNecessarily and valueNecessarily; to say things only about the first concept, (as this example should be written):

(Person which isDriverOf RoadVehicle) topicNecessarily hasAge old


a complex GRAIL category - sometimes also known as a particularisation.


the notion of making one attribute transitive across another.


Before we can combine categories and relationships to form complex categories, we need to say that we can. This mechanism, of telling the system which kinds of things can be combined (using particular attributes) to other kinds of things, is called sanctioning. We take the position that nothing is allowed until it is sanctioned by means of a sanctioning statement (often just statement; also previously known as a triple). There are multiple levels of sanctioning: grammatical and sensible. Before you can create a complex category, or attach a necessary statement, it must be sanctioned to the sensible level. To sanction to a sensible level, it must be already sanctioned at the grammatical level. Sanctions are inherited.


Structured Meta-Knowledge - a precursor to GRAIL.


the notion of is kind of. If Man is a kind of Person, then we say that Person subsumes Man, or that Man is subsumed by Person. Person is the subsumer, Man the subsumee. Asserted (or explicit) subsumption is the subsumption that comes about because of explicit facts said by the modeller (using the newSub or addSub operators); formal subsumption is the subsumption that comes about due to the rules of the GRAIL formalism; for example that Person subsumes Person which hasSex male.

Value type

Value types are concepts which have different subsumption rules applied to them. They typically appear only as values in criteria. Some kinds of value types are built into the system (eg IntegerValueType); additional types can be introduced as required (eg AgeValueType in this tutorial).



Making the impossible very difficult, ©, All rights reserved