
Go backward to 2.4 Requirements Specifications
Go up to 2 Concept Webs
2.5 Concept Refinement
In general a concept description can have some additional parts beyond
the syntactic and semantic parts of a simple concept description:
- Refinement
- An important part is a list of other concept
descriptions that it refines. That is, all of the requirements
of the listed descriptions are incorporated into this description,
which means that in order for an abstraction to belong to the concept
it must belong to all of the concepts on the list (and it must
also satisfy the requirements stated in the syntactic and semantic
parts of the present description).
We might also say that the concept description inherits from
the concept descriptions it refines. However, inheritance has come
to have a fairly specialized meaning in computer science, particularly
in object oriented programming, so we shall generally avoid the
term here.
In concept webs, a concept description should contain hypertext links
to each of concept descriptions that it refines.
- Use
- Similarly, a concept description may include a list of
(names of or links to) other concept descriptions that it uses
in stating the description. The difference between use and refinement
is that an abstraction does not have to belong to a concept (described
by a concept description) on the use list in order to belong to the
concept currently being described. Instead, such abstractions make up
parts ("sub-assemblies") of the abstractions of the current concept.
We do not (intentionally) permit circular chains of
refinement or use. Thus refinement and use relations on concept
descriptions are hierarchical; in terms of graph theory, they form an
acyclic graph. Concept descriptions may nevertheless contain other
links besides refinement and use links, and there is no requirement
of non-circularity among the total set of connections.
Thus we shall use the term conceptual hierarchy
when referring to the acyclic graphs of refinement and use, but also
speak of the concept graph or concept web in
reference to a set of concept descriptions and all of their connections.
Hierarchical development of concepts through refinement and use is
what makes it possible to build up descriptions incrementally, rather
than having to state long, flat lists of requirements for complex
concepts. It is the main support for categorization and other related
conceptualization mechanisms, including generalization (removing
requirements--going up the refinement hierarchy) and specialization
(adding requirements--going down the refinement hierarchy).
Needs further development, a simpler example than the STL documentation,
and references.
musser@cs.rpi.edu
