## The Jet Concept Hierarchy

The Jet system includes a concept hierarchy. This hierarchy is basically a set of concepts arranged in a tree structure. Associated with each concept are zero or more words which are instances of that concept.

### The concept hierarchy file

The concept hierarchy is defined by a concept hierarchy file. The file contains lines of the form

> human isa thing
> human words person, man

where human and thing are concepts, and person and man are words; isa and words are the only two keywords. This file indicates that human is a subtype of thing, and human is associated with the words person and man. Concept names should begin with a lower-case letter, and may contain lower and upper case letters; a word is normally all lower case. No two concepts in the hierarchy can have the same name, and no two words in the hierarchy can be the same. A concept name and a word can be the same though.

Concept hierarchy files should typically have the file extension `.hrc`.

### Loading the concepts

A concept file can be loaded into the system by including a line of the form

> `Concepts.fileName` = filename

in the Jet properties file.

### Using the concepts

In an annotation pattern element, in place of a feature test of the form `feature=value` , one can have a test of the form

> `feature ?isa(`concept`)`

This feature test succeeds if the value of feature is a word associated with concept, or associated with some concept' which is a descendant of concept in the hierarchy.

### Using the Concept Hierarchy UI

The Concept Hierarchy UI is an editor for concept hierarchy (.hrc) files. You start the Concept Hierarchy UI by selecting "Concept Window" in the Jet File menu. If a hierarchy has been specified in the Jet properties file, it will appear

The Concept Hierarchy UI has the basic features of an editor such as those for a text editor.

File Open, Save, SaveAs and Exit do the standard file IO (note that Exit quits Jet, not just the UI). If a concept hierarchy file is changed after it was last saved, it is marked as dirty with an asterisk after the file name in the window caption. A dialog message will pop up asking if the current file is to be saved. There is a bug here: if the window is being closed when the file is dirty, a dialog pops up, and then the "cancel" button is pressed, the window will become invisible without anything done to the file. If the "Exit" menu item is chosen instead, everything works just as fine.

From the "Edit" menu, you can add, delete, rename and search concepts and words. There is a bug here: when you rename a concept or word either by selecting the "Rename" menu item or clicking on the concept or word itself, then type in the new name and carriage return, an error message will pop out if the new name is an empty string or causes duplicate in the hierarchy. After you press OK to get rid of the message, the concept or word is still being edited, if you press ESC, the bad name will be accepted. It's the user's responsibility not to deliberately introduce this kind of error into the file at the time being because the editor is not so stubborn as to give the same advice twice.

The Drag-and-Drop feature has been added to the editor, making it easier to move a large portion of a hierarchy from one place to another. Note that only move is provided but not copy, even though by pressing CTRL when dragging a node, the cursor will have a "+" sign. The copy function is not provided because no duplicate concepts and words are allowed in a hierarchy.