Soup (Apple)

Soup is the file system for the Apple Newton platform, based on a shallow database system. The Newton considers its internal storage, and each inserted card, as a separate "store" (a volume). Any store may have either read/write "soups" (databases) or read-only objects called "packages" (packages are roughly equivalent to applications, though they may also be storage areas or plug-ins).

Overview
A soup is a simple, one-table database of "entries" which may be indexed in different ways and queried by a variety of methods. Various soups store the Newton's equivalent of "documents" or "files." The Newton has a rich set of indexing and querying mechanisms for soups. One important index is the "tags" index. Soup entries may be "tagged" with some user-defined string; applications use these tags to mimic the mechanism of filing entries into "folders," with each folder identified by a user-defined string.

Soups have an accompanying ID symbol which represents a soup of that "kind;" this ID is assigned to a soup by the application which created it and uses it. For example, Hemlock (an Internet search tool for the Newton) maintains two soups, each with a different ID. One soup holds a list of search engines, the other holds the query results.

Soups on different stores may have the same ID, meaning that they are the same kind of soup, just spread out on different cards. When applications access soups, they usually do so by querying and accessing a "union soup" object. From an application's perspective, union soups merge all the soups of a given ID on different stores into one unified soup for that ID. This happens dynamically; when a user adds or removes cards, the union soup changes automatically, each application is notified, and they update their presentation to the user to reflect this. For example, if the user pulls out a card containing a Note Pad soup, the appropriate soup entries (i.e. "notes") in the Note Pad's union soup automatically disappear, the Note Pad is notified, and its display is updated to show that these entries are now gone. Treating documents as database entries in a global union soup made Newtons very apt at handling multiple cards being yanked and inserted while applications are running.

There are a few global soups which all applications use; the most important one is the "System" soup, which stores global information for applications, commonly application preferences.