Design Discussion

XML

The reasons for implementing a more simplified document object model when there are several fully compliant DOM XML parsers available are several:

Thus, we decided to use a simple parser and design a simple object model that fits our realively uncomplicated DTDs, but would not fit for example an HTML DTD. The decision still seems to have been the right one.

Component

The component package design is extremely modular. Designing the package in this modular way has made clear the responsabilities of the different parts of the design, which in turn has influenced the design of the data format and component identity specifications. The structure will help when adding resolver functionality and other data formats.

Neuron and ConceptMap

The need for a listener mechanism is motivated by two cases of use:

The risk of not using a mechanism like this is to create inconsistencies when editing, something that is most problematic when using CORBA.

The need for full independence of the neuron level and the concept map level is motivated by the possibility to use the neuron level in other types of concept maps, but also by the fact that this library may be used when constructing server-side search engines and similar tools.

Content and Filter

These parts of the library are not strictly part of the fundamental API, but still seem general enough to belong here. It is interesting to note that these constructs are implemented solely with the help of the API, using the components as a data structure.