System Simulation / Index+
Index+ is an Information Retrieval database system, written in industry standard C and C++ programming languages.
It has evolved as a toolset for building a range of applications for demanding clients. It is designed in accordance with open systems principles and each major component of the Index+ software is implemented as a separate module with clearly defined interfaces and functions.
By meeting industry standards, it provides users with flexibility in their choice of hardware and software components and is supported on a wide variety of hardware platforms and peripherals. It can be integrated with third party hardware and software products, providing a consistent user interface across a wide range of environments.
An Index+ database can be re-structured, copied or customised with a variety of application building tools. Interfaces are provided to a range of programming environments and this range of applications and the continuous evolution of the Index+ system has ensured that it is very well suited to the requirements of the modern information economy. Index+ enables the creation, development, management and exploitation of a wide variety of information and knowledge assets.
Index+ is based on Information Retrieval technology and is particularly powerful in combining full-text indexing with numerical/date indexing and structured data. It provides very fast retrieval, combined with high precision. Search commands can be specified using simple English-like terms or by filling in search screen forms.
Index+ does not impose any pre-defined structure on the application. It has huge capacity and can store and index large bodies of text as single fields or records as well as supporting the highly structured organisation typical of a relational database application. Both approaches can be used in a single database allowing the data to be structured to suit the needs of the application rather than the dictates of the underlying database system.
And in spite of its ability to handle large sets of data, Index+ has a remarkably small foot print. It installs very easily and doesn't need any supporting software.
The Index+ query language is powerful and expresses all the Index+ capability in a harmonised way.
Index+ thus has the advantages of search engines along with the features of a DataBase Management System. Furthermore, data is properly indexed continuously, whereas search engines by their nature tend to index the data as a batch process.
The system also allows new index types to be "plugged in" for instance, to provide Content Based Image Recognition indexing. This means that Index+ can be endlessly adapted by providing new parsers and indexing engines.
Package Contents + Price
The Index+ Developer's Licence is subject to an annual fee which includes an initial 90 day warranty, documentation, training and 12 months support.
Index+ applications can be developed to the customer's specification and delivered and installed at an inclusive cost for the perpetual run-time licence, 90 day warranty, documentation and training. Support, maintenance and ESCROW arrangements can be agreed.
Index+ Cross Search - Searching and harvesting tools
Index+ Terminology - Terminology and thesaurus management
The Index+ server is the database engine at the heart of the Index+ system. It is a single threaded process handling all storage, retrieval, and searching. This ensures integrity for information held in the database. The server can handle multiple databases on a single machine. The current release supports retrieval based on:
The Index+ server is supported by a full range of clients and other utilities for database configuration and management.
Index+ clients provide the interface for the user and also for any other systems the Index+ database is to be integrated with. An application may use one or more graphical and character-based user clients as well as special purpose interfaces to other systems.
Index+ includes visual configuration tools for designing and building the client interfaces in both environments. Using the programming interfaces, developers can easily build special-purpose clients to integrate the Index+ database with other systems.
WIX (Windows Index+) is a client for use in MS-Windows environments. This offers a graphical user interface which can be configured to present a look and feel varying from that of standard business applications to fully fledged multi-media applications complete with hyperlinks.
In a character-based environment the Generic II client provides a configurable interface which supports both command-line and menu-driven styles. This is compatible with most terminals and terminal emulator software.
Index+ for MS-Windows
Index+ can run as a standalone system under MS-Windows as well as supporting MS-Windows clients communicating with Index+ servers on other machines on the network.
Index+ application programming interfaces (API)
Index+ offers a programmer's interface to the basic services in the C language. It also provides a set of application libraries supporting higher-level capabilities in languages such as C, Visual Basic, PHP, C# and Perl as well as our own application developers' language called IPI.
Index+ for the Internet
The Index+ Web Gateway allows data held in an Index+ database to be presented as HTML. This enables the contents of an Index+ database to be viewed and searched from any World Wide Web browser.
A Z39.50 interface is available. This allows an Index+ server to respond to requests from any client that uses the Z39.50 protocol. This can be supplemented by an SRW/U interface.
Similarly the OAI interface allows metadata harvesting from clients implementing OAI-PMH.
The Index+ Bridge is an information broker which allows Index+ systems to search and retrieve information from a variety of remote databases.
Index+ databases are configured from the following classes of objects - fields, links, record types and indexes. A field is a sub-category of information about a particular entity or object. For example, a record containing information about a particular artist is likely to have a field for the artist's name, a field for their date of birth, and a field giving information about the artist's work. Fields can hold variable length text, numbers or dates. The Index+ server can also handle structured data in the form of lists, tables and arbitrarily nested structures.
Links provide one-to-one, one-to-many and many-to-many associations between records allowing complex data objects to be built up in the manner of object-oriented databases. Links can have an associated type so that retrievals can be made on the basis of link type. Index+ has different ways of implementing links to enable the most appropriate to be chosen for a specific link function.
Record types consist of collections of fields. They allow different kinds of records to be maintained separately in the same database. Each record type in a database can have a different set of fields and types of information or they can share fields, allowing users to search for field-specific information across multiple record types.
Text indexes divide text fields into a number of words or phrases using a word parser and then index the location of each word or phrase.
Text indexes are configurable. They can be set up to use particular character sets for parsing a body of text into individual words. This means that Index+ has no difficulty with non-English characters such as those with accents. Text indexes can be configured to be case sensitive or insensitive. They can contain information about which field contains the word and which words surround it to allow for field-specific or proximity searching. If there are words that do not need to be indexed, these can be held in a stoplist.
A database can contain many differently-configured text indexes. Typically a single field-specific text index may be used for the majority of the text fields with separate text indexes used for special cases such as part numbers, accession numbers and so on.
Expression indexes support both range searching (retrieving all records with a field value between an upper and lower limit) and the retrieval of a set of records in a particular order. This can be used to index date, time, date/time and numeric fields, or to allow alphabetic browsing of structured text fields.
Expressions can be numerical or logical calculations and can utilise string manipulation operations. A versatile language allows the result of any expression which can be derived from a field or combination of fields to be indexed.
Index+ has developed in response to the requirements of our users. It has many features to support the implementation of robust, easy to use, information systems.
Text searches look for the presence of a given word or phrase in the documents being searched. They can include proximity and partial matching requirements. Proximity specifies that the words being searched for must occur within a given span of words and optionally in a given order. Partial matching allows incomplete words to be entered together with wildcard characters. Wildcard characters can occur anywhere in the search specification.
Expression searches look for numbers or strings within a range of values. They can search for the results of calculations based on the contents of fields in one or more records. This provides Index+ with functionality common to conventional numerically orientated relational databases.
Queries can be built up using the boolean operations AND, OR and NOT. These can combine text searches and expression searches freely.
By default Index+ searches across all the fields in a data record. However, if required, searches may be restricted to a particular field or group of fields. Clients can be configured to allow the user to create complex queries by simply filling in forms or to give the user full flexibility and power of the Index+ retrieval language in a command-line interface.
Index+ servers running on UNIX and MS-Windows platforms are full multiuser systems, using region locking on files. Index+ has been designed so that items in the database are kept locked for the shortest possible time, giving impressive performance statistics. The only limit on the number of users is the hardware available.
Index+ can operate in a wide range of environments and configurations including:
The database files created by Index+ are portable between implementations on different platforms. This means that a database can be built on one machine and then distributed and run on a range of different systems without having to re-build the database.
The Index+ server is designed to be portable to any UNIX or POSIX compliant platform. It has been ported to a wide and growing range of platforms. We will port Index+ to new environments on request.
The Index+ server-client networking layer uses a network abstraction which means that Index+ can be run on a variety of networks. Several different network interfaces are supported on various platforms. In recent years there has been a strong trend among network software providers towards presenting applications with a single interface to networking, regardless of the network or the network software. This means that often a single Index+ installation can run on different underlying network platforms, just by changing the networking software: no change is necessary to Index+. This is particularly true of TCP/IP networks, the most common network for running server-client Index+.
Unless specially requested, Index+ networking clients for MS-Windows are now configured to use the WINSOCK.DLL v1.1 interface to TCP/IP. Index+ will run over any network software which conforms to this standard.
On UNIX systems, Index+ is built to use the 4.2/4.3BSD sockets interface, where available. This allows Index+ software to run alongside all the other standard TCP/ IP applications available under UNIX.
A central feature of Index+ is that it is designed to allow growth of the applications built upon it. Index+ database size is limited only by the hardware available and the file handling capabilities of the operating system. Subject to these constraints, unlimited numbers of record types, fields, and indexes may be specified and unlimited numbers of records and search lists may be held in each database. Any number of databases can run on the same platform.
Support for multiple sites
Users can log in from remote sites in the conventional manner. Alternatively they can run client software in a local workstation which connects to a remote server over a WAN, private line or PSTN connection. Index+ databases can be managed as slaves to a master database. The slave databases are updated incrementally by the master database at appropriate intervals.
Index+ supports eight-bit character sets and Unicode for multilingual text, as well as the Chinese character set BIG5. Index+ provides configurable field-specific alphabets which define the role of each character as a word separator, part of a word, or to be ignored completely. These alphabets also define the sorting sequence of the characters giving Index+ a powerful capability for handling non-English alphabets. Index+ Generic II can be configured to run in different language versions with the addition of a file containing translations of the user messages.
Batch and interactive update
Index+ provides interactive record editing with immediate validation and feedback. Alternatively, Index+ can process batch input in any defined format using an input filter. Using such filters it is easy to import data from most word processor or database export formats. Adding a new input filter is straightforward.
Index+ provides various degrees of security. Access or Update permission can be granted or denied on a user-by-user basis, as can access to individual commands.
Multimedia support, electronic publishing
Index+ is a sophisticated tool for creating high quality presentations covering a large quantity of text, graphical and multimedia content served from an Index+ database.
Index+ can store any form of digital data, indexing it as required by use of an appropriate parser and index combination. This makes it ideal for supporting large scale repositories for managing digital data for electronic publishing on CD-ROM, online systems or other media. These repositories hold digital content in a general purpose form that can be re-used for multiple purposes thus offsetting the cost of digitisation.
Terminology & Thesaurus support
Index+ Terminology provides hierarchical terminology control and thesaurus facilities that support the development and use of thesauri to BS 5723 (ISO 2788). Users can import standard terminologies, such as the Getty Institute's AAT, and thesauri such as the BSI Root thesaurus. These can then be developed further to meet their particular requirements.
The thesauri provide the means to enforce a controlled vocabulary in certain fields during data input as well as being an aid for searching. When searching, the thesaurus offers broader, narrower or related terms in order to refine a query.