Software for Writers and Researchers about Zorbasoft
Plato: a Technical Overview
PLATO is a general-purpose, associative database management system with which you can easily manage information associatively by content and deliver fine-grained data in a variety of document formats. Plato can function simultaneously as an expert knowledge repository and a document production engine. Plato's combination of abilities, numerous features, user-orientation, and extremely small footprint make it a valuable product for the researcher, and make it eminently tailorable for any number of more specialized vertical applications.

PLATO allows you to easily build associative object databases that can show extremely complex relationships between the objects. With PLATO, you do not merely store and manage your data, you discover it.

PLATO is also an ad-hoc tool. You can add new object classes to databases or modify old ones on the fly, without having to restructure the database, redefine tables, or write code. PLATO manages its internal relationships as easily as it manages the ones you set up.

Plato's Design Objectives
Plato was originally designed to translate into requirements the contents of a set of approximately 400 master contract documents used for procuring construction and architectural design services, and then deliver the requirements as conventional documents or piecemeal to designers for inclusion in CAD drawings. Within a database of such information, Plato would maintain a rich network of associations between technical requirements, subject matter experts, component and equipment vendors, reference codes and standards, and topic lists. With Plato a user could click on a technical requirement and see the associated vendors, codes, and subject experts; then click on a code, and see all the technical requirements that referenced it. Each Plato object can be linked bidirectionally to any number of other objects in a database; the network of links may be viewed as chains or hierarchies. Associations between objects that were not apparent at first may be revealed by changing the scope of association views. Associations can be set manually by the user or automatically during data entry. They can be made, broken, and remade by the user at any time. Plato has many special functions for making, managing, and viewing associations.

Although Plato was originally designed to fulfill a specific need, it has been redesigned to be a general purpose program that may be adapted by the end user to meet virtually any variety of specific applications. To be a truly general purpose application, it was designed for the following:

Highly Dynamic Data Plato functions successfully in a production or research environment in which the data changes constantly. Plato databases simultaneously support any number of user-definable objects, which can differ arbitrarily in the number, types, and sizes of their field attributes. Plato objects and their attributes are entirely end-user definable, and can be modified or created at will without restructuring the databases that contain them. Plato object classes are stored in common libraries that can be used by any number of different databases.

More-or-less Arbitrary Associations with Markup Any Plato object class supports association with tags used by any current document tag system that uses plain text for mark up (such as such as TeX/LaTeX, HTML, XML, RTF, or others). These tags are then used by Plato to mark up its database objects and write them out to documents, where they can be used or further processed by the appropriate compiler or editor. Although Plato was intended to be used in an RTF (Microsoft Word) environment, it was also desired that its RTF tag library could be substituted with any other similar tag library with one command, and therefore without significant rekeying or item-by-item reassociations.

Bi-directional Cross References A Plato database supports fully cross-referenced associations. Every Plato object, regardless of class, supports any number of one-to-many parent as well as one-to-many child relations, which can be interactively set or broken by the user. The user can browse these relations as either chains or hierarchies.

Simple Scripting Plato incorporates simple but flexible scripting to assist in batch operations such as the creation of structured, formatted documents from selected database objects; performing complex search and replace, and importing and exporting data.

Integration with External Applications - Plato integrates seamlessly with external applications.

Automatic Saving of Data with Undo User changes to Plato databases are handled transparently by the application; changed objects are committed automatically and transparently whenever certain events occur: a object selection changes, the database closes or is saved, the focus changes, and the like. However, the user may at any time choose to abandon changes to a particular object. Plato supports unlimited undo for database changes and provides automatic data recovery in case a power failure or similar nuisance stops the program before you've saved your work.

Transfer of Objects Between Databases Plato allows the creation of as many databases (and class libraries) as the user wishes, and allows objects to be easily transferred between databases.
  technical overview
  Database views
  Class library
All material copyright 2013 by Edward W. Farrell
this page last updated on 2013.10.23