Dragon Lair Architecture
Overview
The whole application runs on a data driven base. The application knows a structure
of objects (just a representation of data) which are in a kind of relationship with
each other. There are two modes from which the application can be looked at:
definition mode and instance mode.
It is most important to know, that the application and it's driving data can be
easily manipulated so it can be changed and adapted to new needs and new functionality. The relationship model is also set above the data model, so the
data model can be replaced with another data model without losing all relationship
informations.
Topics
Topics represent logical objects. A topic can be a house, a dog, a software, a
policy or anything else which also could be named object description. Such topics
stay within a
relationship to each other. These relationships can be freely defined. With the
examples from above (house, dog, ...) this means that "a dog" can "live in"
"a house". Or "Software" is "programmed" in "a house". The informations about the
house can be slightly different in both cases. But about that more later.
This whole system is very much like the specifications for Topic Maps, of which you
may have heard of. The main goal of Dragon Lair is to have a dynamic and easily
extendable and manageable application which can grow with it's users needs. The
specifications of Topic Maps help with that need.
Definition (Topic) Mode vs Instance (Subject) Mode
To get things a bit more complicated (but also much more flexible), Dragon Lair
knows two modes in which Topics can be looked at. Programmers may know the concept
of class vs. instance. It is quite easy to understand. The definition mode lets
one define how the Topics do interact in the instance mode. So the definitions for
"a house" are defined in the definition mode. So in the definition mode you can
define that "a house" has attributes: a number of apartments, the colour of the
attick and so on.
In the Instance Mode Topics are then called Subjects. You can define different
houses in the Subject Mode. The fire brigades
house, the hospital, the school and so on. Every such different "house" has another
value for their attributes. The fire brigade has a red attick, the school a green
one, but every house has an attick. Attributes are defined in the Definition mode
within Topics and are then required in the Instance Mode for every Subject of the
same Topic...
Associations
Topic definitions and Subject instances can have an interaction and
relationship within the same "group". Dragon Lair knows two kinds of associations:
associations between Topics, and associations between Subjects. Always two of a
kind can be in such a relationship. The only difference with Topics and Subjects
relationships is that Topics define the relationships that Subjects can have
(design vs. implementation again).