Previous Table of Contents Next


4.2.2 Structure reflects containment


   Languages, on the whole, represent information in a fairly similar way. A document invariably consists of a set of concepts, each of which consists of a number of other concepts, and so on until the concepts are nothing but simple pieces of atomic data. This can be seen in both procedural and object-oriented programming languages, as well as in natural English. For example, an English essay could be said to consist of a series of paragraphs, each of which contains a series of sentences, which contain a series of words. A piece of source code for the Java programming language [Java] could consist of a series of import statements, package statements, and class definitions, which contain variables and methods, which contain sets of parameters and statements.

   At different levels of depth on this ‘concept tree,’ the representation of the containing concept changes. One common change is for concepts higher on this tree to be introduced in some way. For example the essay with its paragraphs might first have a title, or chapters within a thesis might have chapter numbers and titles. A method declaration in a Java class definition has a visibility value, a method name, and a return type. By contrast, where an element is the only possible element in its position, it may go without an introduction, such as sentences within a paragraph, or statements within a Java method definition. However, to be effective this requires some language familiarity on the part of the user, something that cannot be assumed for the HUTN languages.

   Particularly in structured notations such as programming languages, it is often necessary to separate the contained concepts using some form of punctuation. Java, for example, uses braces to delimit method bodies, commas to separate method parameters, and semicolons to terminate statements. Written English uses full stops to terminate sentences, and commas or parentheses to delimit phrases. The choice of symbols for separating punctuation can also be dependent on the depth of the concept on the tree. For example, braces are often associated in programming languages with high-level or major concepts such as procedure declarations, while commas are often associated with low-level or minor ones, such as a list of method parameters.

   The MOF modeling concepts underlying the HUTN languages also conform to this ‘concept tree’ paradigm. Package instances contain Class instances, Class instances contain Attribute values, and so on. Accordingly, the HUTN language core has been based around these ideas of concept containment, introduction, and delimitation.