If this approach were taken then the database would store
the domain-specific conceptual model as data (EntityType,
AttributeType and Relationship tables) alongside the organisation's
operational data (Entity and Attribute tables). In
reality, the model would have to be more complex than
shown in Fig. 6, to cater for primary and foreign keys, attribute
values, indexes, and so on.
While the use of a meta-model avoids domain-specific
table structures, it brings its own problems. It accommodates
only one conceptual model at a time. Changing the
model would be easy, but the data linked to the changed
parts would need to be updated immediately, which
would be inconvenient. Code in the AIS would have to be
domain-dependent and would probably be complex and
hard to understand. All of these problems would create
inflexibility, which we are trying to avoid.
3.2. Principles of conceptual independence
What is needed instead is a workable way of designing
an AIS that can flexibly store domain-specific data and
provide domain-specific behaviour, while minimising conceptual
dependence and its unwanted side-effects. This
suggests a number of characteristics. Data integrity and all
of the other benefits of using mature RDBMS should still
be available. But the AIS should store its conceptual
models as data, so they are not hardcoded in software
structure and logic. Change to a model should not break
the AIS or necessitate data reloading. The AIS should offer
appropriate functionality in response to each model, without
being explicitly programmed in advance to deal with
any particular model. Its functionality should be packaged
into reusable chunks of behaviour that can be invoked in
response to models as needed.
Generic behaviour can be provided to some extent
merely by examining the structure of the conceptual
model. However, in order to provide truly domainspecific
behaviour in response to a model, the AIS needs
to know something of the significance of the entity types
in the model. Therefore it must be able to link the entity
types with concepts that it already understands and
knows how to deal with.
Table 1 formalises these requirements as a series of
principles. For simplicity we assume the AIS is a software
application with a database. The application contains a
user interface and may also contain other separate components,
such as middleware. We do not assume that the
database is a relational one; in fact, principle 3 would
make that rather impractical.
3.3. Archetypal categories
The table mentions known categories of data, which are
relevant across application domains and used to provide
semantically-appropriate behaviour for each entity type. We
refer to these as “archetypal categories” [34,41]. For example,
the category person is useful across a range of domains, and
might appear in models as various specialised entity types.
Archetypal categories are intended to provide a machine
analogue to a human designer's background or tacit knowledge
(see Fig. 7).
Table 2 gives one possible list of archetypal categories. The
categories have been formulated to correspond loosely with
what, in psychology, are considered basic-level concepts,
recognised by humans relatively easily [35,42]. Highly abstract
concepts, such as sentient agent, are omitted since they are not
easily recognised. Similarly, highly specialised entity types and
roles, such as internet user, are omitted [43].