/*
* #!
* Ontopia Engine
* #-
* Copyright (C) 2001 - 2013 The Ontopia Project
* #-
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* !#
*/
/**
Provides interfaces for the engine's index system; the API for Ontopia
topic map indexes. This package enables quick retrieval of selected topic
map content; using these interfaces, these facilities can be used without
any dependencies on the repository-specific backend(s) used for managing
the topic map data.
<br>NB that these indexing facilities are likely to be changed, and certain
to be extended, when the Topic Map Query Language standard is available,
so you are advised to design your application code so that the required
changes are easy.
<h3>
Package Specification</h3>
The interfaces in this package provide an API for topic map indexes. Topic
map indexes provide straightforward and efficient ways to look up information
in a topic map; these facilities are frequently used, and would otherwise
require a step by step traversal of the entire topic map.
<br>A typical example is looking up all instances of a given topic type,
which with the index system can be achieved with a single method call.
<p>Each topic map has an <a href="IndexManagerIF.html">IndexManagerIF</a>
instance associated with it. This index manager object can be used to retrieve
specific indexes and also to check what indexes are available, which ones
have been loaded and so on.
<p>The indexes currently available are:
<ul>
<li>
<a href="ClassInstanceIndexIF.html">ClassInstanceIndex</a>, which is used
to find information about which objects are instances of specific classes.</li>
<li>
<a href="LocatorIndexIF.html">LocatorIndex</a>, which is used to find out
which locators are used where.</li>
<li>
<a href="NameIndexIF.html">NameIndex</a>, which is used to find out which
names are used where.</li>
<li>
<a href="ScopeIndexIF.html">ScopeIndex</a>, which is used to find out where
a topic has been used in a scope.</li>
</ul>
<h3>
Related Documentation</h3>
The purpose and scope of this package is explained further in the Ontopia
Engine Developers Guide.
<h3>
Interface Summary</h3>
IndexManagerIF is implemented by objects which manage indexes on a topic
map (NB there are currently no facilities for indexing across more than
one topic map.)
<p>IndexIF is the common interface for all topicmap indexes. IndexIF is
extended by ClassInstanceIF, LocatorIndexIF, NameIndexIF, and ScopeIndexIF. These interfaces
have a similar structure; each contains methods that return collections
of topic map objects (eg associations, variant names), selected according
to some criterion.
*/
package net.ontopia.topicmaps.core.index;