Screen Reference Index
Plato Documentation  version 0.9, 2014.02.14
 Documentation Index    The Basics
Introduction to Plato
The Basics
Plato's Display
Building Object Classes
Creating and Using Objects
Importing Objects
Creating and Managing Cross References
Creating and Managing Databases
Creating and Managing Class Libraries
Creating and Managing Markup
Markup: Document Creation
Markup: Data Import
Markup: Autoenumeration
Markup: Cross Reference Maps
Markup: Database Export
Markup: Class Library Export
Creating and Managing Scripts
External Integration
Cross References
Multi-dimensional Categories
Setting Up
Configuration: System
Configuration: Database
Configuration: Folders
Screen Reference
Properties Reference
Basic Building Blocks
Plato data structures
Figure 1: Plato's Application Suite and Data Elements
Plato is an integrated suite of information-management applications that let you:
  • Design and build data structures that depict and store discrete units of information called "objects," which may be concocted to represent many things: books, plant and animal taxonomies, geographical or political features, or any number of other things.
  • Store these objects in databases where they may be categorized, cross referenced, viewed, and analyzed.
  • Use objects to create documents, maps, spreadsheets, and other files that can be used by other applications.

Building Data Structures
Plato objects have to be defined, and object definitions are contained in special files called "class libraries." Plato comes with a prebuilt, standard class library with predefined objects such as contacts, tasks, notes, images, books, journals, and many other paraphernalia of research. But eventually you will have more specialized data requirements so you can either add to or modify this existing library or build your own. One of the nice things that makes a Plato database different from a relational database is that these object definitions can be changed whenever you want, without having to modify or restructure the database in any way.

So what does "building an object definition" really mean? You'll first have to understand in your own mind what the object is to represent. Let's take the simple example of a book: you'd first want enough information to uniquely identify the book, and then to possibly compare it to other books, and build catalogs or bibliographies of many books.
  • At a minimum, your "book" object should have attributes for author, title, publisher, and year published. This will be enough to identify most books.
  • Some books, particularly non-fiction, have multiple authors. So your author attribute should be able to list multiple authors. Since some books are collections of shorter articles, they won't have a single author but will probably have an editor. So you might need an editor attribute.
  • If some of yours books are in foreign languages, you will probably also want a language attribute and a translator attribute if the book has been translated.
  • If each book is to be part of a larger collection such as an inventory or library, you'll want some attributes to better organize such a collection. Such attributes might be genre or subject (or both). You may also want to include the Dewey Decimal classification. In addition, you may want to add universal identifiers such as the ISBN number or Library of Congress number.
  • If books may be cited in scholarly works, you may also want to include an attribute for a unique bibliographic key to aid in citing the book.
You can go even further than this but this is just to illustrate the sort of thought process you'll go through when designing and building a object from scratch. You'll probably want to jot the ideas down before building the new object class.

Plato has a ready-made book object class for your use, but let's assume that it didn't. This first thing you'll have to do is create the attributes your object class will use. You'll use the "attribute" section of the class library to do this. When you've created the attributes you need, go to the "object class" portion of the class library and create your "book" object class. When you create it, you will select attributes for the new class from a list of all the attributes in the class library. Select the attributes you just created to add them to the new class; you may also put them in the order you want at the same time. That's basically all there is to it. For a detailed treatment on creating and managing object classes and attributes, see Building Object Classes.

Keep in mind that creating object classes and attributes can be an iterative process. You may build your object class and use it to create many objects, then find later that you need to add more attributes or remove attributes you didn't actually need. This can be done easily without affecting the data you've already created.

Creating and Storing Objects
Plato data structures
Figure 2: Objects Classes Vs Object
Once an object class has been created, it can be used to create objects. Objects are "instances" of an object class. For instance, your object class from the previous section is "book," and objects which are instances of this might be "The Grapes of Wrath by John Steinbeck," "Catcher in the Rye by JD Saliger," and so on.

Objects are created and stored in databases. Plato databases are collections of objects and descriptions of the relationships between objects. In their native, internal form, Plato databases are essentially unstructured heaps of objects that can be viewed just about any way you want. Objects are always accessed through an "view," which is basically an index of selected objects in the heap. Plato creates and maintains some views automatically; others you make yourself, based on how you want to access your data. Plato supports some very sophisticated views, including multi-dimensional views. All the various views of a Plato database are organized in the left-hand pane of the Plato user-interface window. See views for more information.

Objects in a database can be manipulated in various ways:
  • Arranged in folder views
    • copied or moved between folders
    • removed from folders
    • sorted in a folder
    • manually arranged within a folder
  • Deleted from the database
  • Copied or moved between databases
  • Cross referenced
For details on manipulating objects, see Creating and Using Objects. For details on cross referencing, see Cross Referencing Objects.
Categorizing and Analyzing Data
Plato has several tools for categorizing and analyzing data:
  • Concordance is a list of all the words in a database plus a map of the connections between the words and the objects that contain them. It allows fast searches, word frequency statistics, and object profiling based on word occurance and frequency (object profiling is a means of comparing object content for similarity to other objects).
  • Category Families are classification systems you can set up and apply to the objects in a database. You can create as many category families as you want, and a family can contain any number of categories as well. Within a category family, categories can be arranged as hierarchies or simple lists.
  • Multi-dimensional categories are special views of objects within multiple categories. If you have a set of objects in your database that is classified using two or more category families, you can set up a multi-dimensional category view to display how objects cluster within several categories simultaneously.
  • Cross-reference (xref) views display everything connected to an object via xrefs. Xref views are highly tailorable and can include/exclude specific object classes, xref types, and xref relations (parent, child, or sibling). You can create as many xref views as you like and apply them where the occasion warrants. Xref views can also be applied to scripts.
  • Cross reference maps are ways of generating xref views so that they can be used in other applications. Plato natively displays xref views as parent-child hierarchies, but this may not be the most meaningful way of viewing the xref relations. Xref maps can be written (using markup) to translate Plato's xrefs into forms suitable for display by other mapping applications.
  • Calculated fields may be used to perform various arithetic calulations on the contents of numeric attributes in an object. This can used in innumerable ways, but in particular can be used to apply weightings to values that can be used to rank or prioritize objects.
Creating Documents
Plato data structures
Figure 3: Creating Documents Via Scripts
By using scripts and markup, Plato objects can be converted to documents of various sorts. In Plato, this is part of a larger strategy of separating form and content. The idea here is that the data stored in Plato should remain independent of the format used to display it. For example, you might have an article stored as a Plato object that is plain text, and have script/markups to deliver it as a web page (html), a Word document (RTF), and an email. This sort of thing should be the goal of all content placed into Plato--one set of content deliverable in multiple formats.

This page last updated on 2015.12.08