Software Architecture

The Public Domain Calculator is software that dynamically processes nodes of an acyclic directed graph. These flowcharts are represented in a custom structure XML file. The software presents the nodes of the graph and provides an interface that tests a given condition to determine which node needs to be presented next. The calculator iterates through this XML document, matching answers given by the user through predefined structures and possible answers. This finally provides a statement that a given work is in the public domain or that rights still apply. See the image below for a graphical representation of the workings of this software.

The software uses different modules to perform its function. Each module has a specific task.

XML Reader/Parser Module

This module reads the specially designed XML file format. Process it to an internal object oriented format and give these objects back.

Flowchart representation Module (part of the Walker module)

This module represents the XML flowchart in an internal format: it is the product of the parser. It is a series of classes that also hold their own Graphical User Interface methods. The Graphical User interface needs to be seen as a separate module.

Interface Module (part of the Walker module)

Each node in the rooted tree belongs to a specific subclass. Each has different GUI presentation methods that deliver GWT classes.

Data Module

As the rooted tree can have multiple questions that require the same information (i.e. what is the year of publication), this module keeps track of what information the system has already received. Preloading this module with information enables automatic calculation.

The tree walker software forms the basic for the Europeana Public Domain Calculator. It takes the XML files and creates an acyclic directed graph. Calling for interface methods creates different types of calculators.