Screen Reference Index
Plato Documentation  version 0.9, 2014.02.14
 Documentation Index    Introduction to Plato
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
So What Exactly Is Plato?
Plato data structures
Figure 1: The Ancient Greek Philosopher?
Plato is the namesake of the ancient Greek philosopher who taught that ideas must always preceed and govern particulars. Plato is the pre-eminent tool by which this excellent principle may be applied to organizing data on your computer. In addition, you may note that Plato, when pronounced in the American vernacular, sounds a lot like play-dough. This is a happy coincidence because this reflects the second aspect of Plato's character, namely that you can mold and configure it any way you want, as if it were putty in your hands.

What you need is a mind, ideas to organize, and the desire to organize them. With these trifles, Plato allows you to go forth and clutter your computer instead of your mind. If you are the type that insists on a nit-picky sort of orderliness, Plato will give your computer the cleanliness you normally demand of your clothes closet. If you're of a more slipshod sign, you will still enjoy fiddling around with Plato. It may even give you the illusion of orderliness. But no mechanical device is a substitute for an orderly mind!
What's Plato to You?
Plato can be anything from a personal information manager to a full-featured research assistant. To be the former, you need only use it as it comes from the box--it comes preconfigured to manage tasks, contacts, notes, and files, as well as commonly inventoried items such as books, videos, CDs, software, and generic household items. To be the latter, Plato can be configured to meet the most minute requirements--simply and without programming.

Plato helps you store, find, classify, and transform information and concepts. 'Information' may be research information--clipped electronic articles and books, references, notes, survey results, images, and the like. Or it could be your collections: books, films, coins, stamps, recipes. 'Concepts' may be categories or classification schemes you use to understand and order the information. When you're not sure which concepts apply to your information, Plato can profile and cluster your information in ways that may allow the governing concepts to emerge.

Plato lets you classify your information. Classifying your information can be as simple as putting your information into categorized folders. Or it can be quite complex: you may develop several concurrent classification schemes and link your information to the relevant classifications, then see how the information falls out, or clusters, within all the classifications at once.

Plato lets you classify types of information in addition to the information itself. It does this through the use of objects and object classes. In other words, all your 'book' information will reside in objects called books, which will in turn all be members of an object class called book, which will in turn have specified book attributes such as title, author, publisher, date and anything else you may want to use to define a book. Object classes my be linked to one another: the book object class, for instance, can reference an author object class. In this way you can see at a glance all the books associated with an author without having performing a query.

Plato lets you transform your information: into documents, spreadsheets, database tables, lists, and more. Using scripts and markup, Plato can take your information and create web pages; XML spreadsheets; formatted database tables; complex documents with footnotes and indexes using \TeX, \LaTeX, or RTF; formatted plain text documents of your own devising. Plato cross references may be converted to GraphViz dot maps, where they may be viewed as graphs in tools such as Gephi or Zgvr Viewer.

Information Management

Let's mention a few of the things Plato can do. A computer application should do something, right? (Something hopefully useful or at least amusing.) Plato can:
  • Keep lists, from the simple (a list for Santa Claus, perhaps) to the very complex (a library catalog, photographic inventory, or geodatabase). Plato also has special features for managing task lists.
  • Manage things that you or others write (scattered or structured notes, daily journals, correspondence, web clips, articles, novels, research, scientific treatises, or just about anything else). Manage your projects, ideas for projects, notes, and documents (of any sort--drawings, reports, memos, poems, novels...). Catalog your phone numbers and addresses, books and articles, photography and print collections, or research notes.
  • Classify your information using virtually any classification system you can adopt or invent.
  • Show relationships between things, from simple one-to-one relations to complex maps with thousands of interrelations. Navigate interactively through these relations with your mouse, with the ability to access and edit underlying data at any point.
  • Combine written things with lists and all their relationships to build simple or elaborate research databases (for your use) or specialized expert systems (for use by others).
  • By means of file signatures, know which application any file belongs to--without having to bother about clumsy file extensions.
  • Logically extend your databases to include objects outside to the computer environment such as paper in filing cabinets, books, records, sheet music, photographs, etcetera.
  • Work hand in hand with other applications via markup to:
    • Create RTF documents for use Microsoft Word and other word processors
    • Create XML documents for use in Microsoft Excel
    • Create \TeX/\LaTeX\, documents and \BibTeX\ bibliographies for reports, journal submissions, and textbooks
    • Create dot language cross reference maps and display them with GraphViz.

File Management

Plato is also a file manager. Its file management features are mostly geared towards getting data into Plato or using Plato to manage matadata associated with files. However, Plato's file manager has a few unusual features:
  • Store and reuse complex instructions for automated file searches.
  • Select a list of files and join them into one file. This can can be used in conjunction with Plato import scripts to facilitate importing data into Plato, such as contact information in vcards or similar information from structured text files.
  • Attach lengthy descriptions to files and display them in the file list display
  • Keep a sorted list of selected subdirectories displayed for easy access to commonly used files.
  • Associate files with applications using Plato file signatures and launch them from the file manager.
How Does Plato Work?
Plato data structures
Figure 2: Plato's Basic Elements
Plato works using three central concepts: object, cross reference, and scripts and markup.

Every item in a Plato database is an object of one sort or another. Objects are simply the things you work with or are studying: books, chapters, notes, journals, publications, authors, publishers, and the like. Some objects have special uses to Plato, such as folders, lists, and scripts. But objects can be anything you want to make them: mountains, stars, movies, plants, birds, kinship categories, mythical beasts.

Objects have named classes, actions, attributes, and unstructured notes. Let's make one out of our previous list: a mountain. Our object has the named class 'mountain'. There is no action associated with it; it's just data. We will give it several attributes: name, parent range, elevation, political location, and geographical coordinates (latitude and longitude). For unstructured notes we might include a lengthy description of it. If we were to describe this object in plain text, it might look something like this:
  • name = Mt. Everest
  • parent range = Himalaya
  • elevation = 29,028 feet
  • political location = Nepal
  • geographical coordinates = 27 59' N, 86 56' E
  • notes = Mt. Everest is the tallest mountain in the highest mountain range on Earth.
Objects can be created from scratch and changed at will. Object data can be imported from outside Plato or added by hand from within. Objects are collected in databases whenre they can be cross referenced, organized,

Cross references (or xrefs for short) show relations between objects. Using the example we've begun, our database may also have a "mountain range" object named "Himalaya," with a cross reference to our "Mt. Everest" object in a parent-child relation.

In Plato, xrefs have type and direction.
  • Type is a way of saying something about the nature of the relation between the objects. We could call the xref for "Himalaya --> Mt. Everest" a "range hierarchy" type xref and isolate that relation from other types of relationships the two obejcts might have.
  • Direction means that Plato assumes that one object is the starting point and the other the ending point, with the starting object usually termed the 'parent' and the ending one the 'child'. While it's usually true that there is an parent-child relation between objects, it isn't always the case and when it's not direction must be ignored. However direction is always present as far as Plato is concerned and when it displays xrefs it will show these hierarchical relations. This is where external applications can be of service. Plato allows you to export xrefs in a format suitable for Pajek, CytoScope, Graphviz, other network tools where they can be displayed in more complex ways.
xrefs allow Plato to draw complex maps between objects that may reveal connections you were unaware of.

Scripts and Markup allow data to be transferred in and out of a Plato database.
  • Scripts are special objects that contain instructions for:
    • Choosing which objects in the database should be used to create your document or report
    • Choosing which markup will be applied to them
    • Choosing what and where the output should be: a document, map, or folder; what it will be named; where it will reside.
  • Markup is what gets attached to objects to create documents. Markup can be anything you want, but will usually be of a particular variety such as HTML, TeX/LaTeX, RTF, SGML, XML, and the like.
What You Can Expect from Plato
You can expect that Plato will address every conceivable need you may ever encounter as you use your computer. This would be a false expectation, however! You may more reasonably expect that Plato will manage the information on your computer very well and be a constant, amenable companion to your day-to-day computer work. You may also expect that it will become addictive to the point that you wonder how you could possibly work without it.

What You Need to Run Plato
  • Memory In general, a half-gigabyte (512 MB) of main memory should be sufficient unless you run several memory-hogging applications concurrently. Large databases and concordances will like as much memory as you can give them. With less than half a gigabyte your milage will vary, but at the worst performance may falter and creep painfully and that can be frustrating.
  • Disk space The base installation will consume less than 5 megabytes of disk space. The disk space your databases will consume will vary--I use Plato for research and I currently have 15 database files ranging in size from 100 kilobytes to 54 megabytes.
  • Operating System Plato will run on Intel machines running Windows NT through Windows 10. It will not run on Windows 95 and 98.
Platos Limitations
  • Database size Database size will be limited by your computer's memory and performance. Platos databases are loaded entirely into main memory (although for databases with a lot of text there is a paging option that may reduce memory requirements considerably in some cases).
  • Number of Objects Beyond the issue of available memory and acceptable performance, there are no limits to the number of objects you can put in a database.
  • Size of Objects Objects may have no more that 30 field attributes. There is no limit to the amount of text an object may contain, however performance will once again dictate practical limits. Performance should not degrade significantly with object text of up to 1,000,000 characters. If you are using a concordance set for real time updating, saving changed records will result in a slight processing delay, which may increase as the amount of text in an object increases. I say 'may' because the increase will be less noticable on faster computers with more memory.
  • Number of Folders There is no limit to the number of folders you can create. Your practical limit will again be based on performance and convenience. Folders can be nested to any depth, but Plato's scripting engine will only descend to ten levels of recursion. Folders nested more deeply than this can still be accessed manually however.
Plato does not use the Windows registry.

This page last updated on 2015.12.07