Pazpar2 is a stand-alone metasearch client with a web-service API, designed to be used either from a browser-based client (JavaScript, Flash, Java, etc.), from server-side code, or any combination of the two. Pazpar2 is a highly optimized client designed to search many resources in parallel. It implements record merging, relevance-ranking and sorting by arbitrary data content, and facet analysis for browsing purposes. It is designed to be data model independent, and is capable of working with MARC, DublinCore, or any other XML-structured response format -- XSLT is used to normalize and extract data from retrieval records for display and analysis. It can be used against any server which supports the Z39.50 and SRU/SRW protocol. Proprietary backend modules can be used to support a large number of other protocols (please contact Index Data for further information about this).
Additional functionality such as user management, attractive displays are expected to be implemented by applications that use Pazpar2. Pazpar2 is user interface independent. Its functionality is exposed through a simple REST-style web-service API, designed to be simple to use from an Ajax-enabled browser, Flash animation, Java applet, etc., or from a higher-level server-side language like PHP or Java. Because session information can be shared between browser-based logic and your server-side scripting, there is tremendous flexibility in how you implement your business logic on top of Pazpar2.
Once you launch a search in Pazpar2, the operation continues behind the scenes. Pazpar2 connects to servers, carries out searches, and retrieves, deduplicates, and stores results internally. Your application code may periodically inquire about the status of an ongoing operation, and ask to see records or other result set facets. Result becomes available immediately, and it is easy to build end-user interfaces which feel extremely responsive, even when searching more than 100 servers concurrently.
Pazpar2 is designed to be highly configurable. Incoming records are normalized to XML/UTF-8, and then further normalized using XSLT to a simple internal representation that is suitable for analysis. By providing XSLT stylesheets for different kinds of result records, you can tune Pazpar2 to work against different kinds of information retrieval servers. Finally, metadata is extracted, in a configurable way, from this internal record, to support display, merging, ranking, result set facets, and sorting. Pazpar2 is not bound to a specific model of metadata, such as DublinCore or MARC -- by providing the right configuration, it can work with a number of different kinds of data in support of many different applications.
Pazpar2 is designed to be efficient and scalable. You can set it up to search several hundred targets in parallel, or you can use it to support hundreds of concurrent users. It is implemented with the same attention to performance and economy that we use in our indexing engines, so that you can focus on building your application, without worrying about the details of metasearch logic. You can devote all of your attention to usability and let Pazpar2 do what it does best -- metasearch.
If you wish to connect to commercial or other databases which do not support open standards, please contact Index Data. We have a licensing agreement with a third party vendor which will enable Pazpar2 to access thousands of online databases, in addition to the vast number of catalogs and online services that support the Z39.50/SRU/SRW protocols.
Pazpar2 is our attempt to re-think the traditional paradigms for implementing and deploying metasearch logic, with an uncompromising approach to performance, and attempting to make maximum use of the capabilities of modern browsers. The demo user interface that accompanies the distribution is but one example. If you think of new ways of using Pazpar2, we hope you'll share them with us, and if we can provide assistance with regards to training, design, programming, integration with different backends, hosting, or support, please don't hesitate to contact us. If you'd like to see functionality in Pazpar2 that is not there today, please don't hesitate to contact us. It may already be in our development pipeline, or there might be a possibility for you to help out by sponsoring development time or code. Either way, get in touch and we will give you straight answers.
Enjoy!
Pazpar2 is covered by the GNU license version 2. See Appendix A, License for further information.