Adaptive Information Disclosure (AID)

Partcipating in the VL-e project

Adaptive Information Disclosure (AID) header image 1

Retrieval

Once an index is created it can be searched through, using the AIDA Search component. There are three distinct ways of interacting with an index: (i) through a SOAP webservice, (ii) using AJAX tools (based on JSON objects), or (iii) through a web interface (made using the ExtJS framework). All methods use and “understand” Lucene’s query syntax.

The Search SOAP webservice (org.vle.aid.lucene.SearcherWS) can handle two kinds of queries, which either search through a single (document) field (called “search”) or through multiple fields at the same time (called “searchMFquery”). The operation named “searchContent” is a convenience method which searches the content field by default, thus eliminating one parameter.

The Search web interface uses the JSON search operation, called “searchJason”. Since AJAX can not handle SOAP messages, there is a servlet which bridges the gap between the SOAP webservice and the AJAX/JSON:  org.vle.aid.client.jason. Additionally, the web interface can display a thesaurus, loaded through AIDA’s Storage components. This thesaurus ‘view’ may then be used to look up terms, synonyms, broader and narrower terms, and to perform interactive query expansion. The generality of using JSON for searching is clearly demonstrated by the fact that the output of this servlet can be used directly in web 2.0 tools, such as Yahoo! Pipes or MIT’s Exhibit (links).

Installation

There are two ways of configuring the Search component, either through a configuration file, or through editing the /AIDA/Search/search/build.xml file directly the configurable options are located at the top of the file for convenience). Note that when you edit the build.xml directly, you will need to do that everytime you download a new version. It’s much easier to create a new file called build.properties in the root of your user folder or in the AIDA/Search/search/ folder. The configuration-specific parameters are:

  • catalina.home - The location on the server where Tomcat is installed,
  • host.name - the fully qualified hostname of the machine Tomcat is running on (note that it is assumed that Sesame is installed on the same machine at http://${host.name}:${manager.port}/sesame),
  • manager.username - the name of the user with a ‘manager’ role,
  • manager.password - the password of that user,
  • manager.port - Tomcat’s port number,
  • sesame.username - the sesame username to be used in the search 2.0 interface,
  • sesame.password - the sesame password to be used in the search 2.0 interface, and
  • sesame.repository - the sesame repository name to be used in the search 2.0 interface.

So, a typical build.properties would contain:

catalina.home=/usr/local/tomcat
host.name=myserver.mydomain.nl
manager.username=admin
manager.password=mypass
manager.port=8080
sesame.username=testuser
sesame.password=opensesame
sesame.repository=mem-rdf

The Environment

The interface, as well as the search-related webservices, use the environment variable INDEXDIR to find the directory, containing all directories with Lucene indexes in hem. E.g.

/INDEXDIR/INDEXDIR/LUCENE_INDEX_DIR1
/INDEXDIR/LUCENE_INDEX_DIR2
/INDEXDIR/LUCENE_INDEX_DIR3
/INDEXDIR/LUCENE_INDEX_DIR4
...

When (re)starting tomcat, make sure you have the INDEXDIR environment variable set. The easiest way is of course to modify catalina.(bat|sh), so starting omcat always gets the correct environment variable. Alternatively, you can do it in the operating system (OS). This differs per OS, but for example for unix/linux (bash):

export INDEXDIR=PATH_TO_INDEXDIR

The Actual Installation
Then, to install, type ‘ant install’ in the AIDA/Search/search/ folder. To remove the application, type ‘ant remove’, followed by ‘ant clean’. When any source code has been edited, type ‘ant run’ (or ‘ant remove clean install’)to reload. If all went well, the interface should be available athttp://${host.name}:${manager.port}/search/test/search.htm