Cheshire3 Object Model
A schematic layout of the object structure of a typical Cheshire3 database. Each of the brief descriptions below link to further information about the class of object, including the default implementations available as well as their API.
The base class from which all configurable objects in the framework derive. As such, they all share this common API.
A protocol neutral collection of databases, users and their dependant objects. It acts as an inital entry point for all requests and handles such things as user authentication, multi-database searching, and global object configuration.
Handles requests from a protocol and transforms them into their inte rnal representation before handing them off to a server to process. It takes back the results of the processing, transforms them into the protocol's response and returns it.
A virtual collection of records which may be interacted with. A database includes indexes, which contain data extracted from the records as well as configuration details. The database is responsable for handling queries which come to it and distributing it amongst its component objects.
A collection of terms extracted from records, along with their frequency. Extraction is done via a chain of objects before being stored in an IndexStore.
A collection of documents. This might be in the form of a file or directory, but equally could be an interface to another database or protocol.
Unparsed data of any format. Documents are turned in to Records by Parsers, or into other Documents by PreParsers. Transformers turn Records into Documents.
Parsed XML data plus any associated metadata. All records are modeled internally using XML, with both DOM and SAX2 interfaces.
A collection of records, typically created as the result of a search on a database.
An interface to transform a Document into a different Document. For example to turn USMARC into unparsed MARCXML.
An interface to turn a Record into a Document. This might involve using XSLT to transform the record into a different schema.
An interface to turn a Record into a DocumentGroup. This might be used to extract component records from a large, heirarchical XML document. [Not present in diagram]
An interface to transform a Document containing raw XML into a Record.
An interface to extract data of a certain format from the results of evaluating an XPath expression on a Record.
An interface to turn raw data from one form into another. Each normaliser does one atomic operation and may be strung together in chains with other objects to create the required end result. For example, to turn a string into its lowercase form, or to turn a string or numerals into a number.
An interface to a persistent storage mechanism for records and their associated metadata.
An interface to a persistent storage mechanism for indexes and their extracted terms.
An interface to a persistent storage mechanism for Documents and their associated metadata.
An interface to a persistent storage mechanism for saving ResultSets.
An interface to a persistent storage mechanism for configured Cheshire3 objects.
Objects that can interpret XML configuration and execute code based on it to perform tasks.
Other modules in the Cheshire3 framework: