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).