Query
Component description
The MKSearch query component is responsible for handling HTTP-based search queries by general users. It's implementation is currently in the form of a single HttpQuery
servlet class that formulates queries via an SeRQLQueryBuilder
, passes these to a file-based Sesame RDF repository and displays the results with a custom ResultsRenderer
type.
-
More
ResultsRenderer
types -
There are currently two result renderer types, which are very basic; a
TextResultsRenderer
andXhtmlResultsRenderer
. At least one further type,RssResultsRenderer
is required to generate an RSS feed for a standing query.One issue for the RSS feed is the need to include the query URI itself in the output, which will require a more sophisticated renderer interface.
Task progress: Refactored the original
ResultRenderer
types into a more generic form that are insulated from the specifics of the Sesame API.- Completed text, XHTML and RSS result renderers.
- Results paging
-
The results renderer interface originally had no method for paging the results of a query nor controlling the number of results per page.
- Completed result paging for
XhtmlResultRenderer
- Completed result paging for
- Query test documents
-
The query features need simple test case documents to verify query interpretation and retreival.
Task progress:
- Prepared a set of "cat and dog" test documents and verified query processing.
- Dynamic query form
-
The main search interface will initially present a simple subject query field and search button. To enable users to search on any relevant predicate, additional search fields will be called-up through a query builder form.
Task progress
- Completed JSP
QueryBuilderTag
and tested manually. - Completed JSP
QueryResultTag
and tested manually. - Complted basic JSP result pages for Text, RSS and XHTML format results.
- Completed JSP
- Results cacheing
- Standing RSS feeds and results paging will also require a result cache to optimise performance on the server side. However, the cache mechanism also needs to be integrated with the repository management interface, so that stale results are purged.
-
AND
andAND NOT
queries -
The query builder should interpret the
+
and-
symbols immediately before a word to meanAND
andAND NOT
respectively.
- More complex query construction
-
The current query builder only constructs queries that join a series of RDF triples, not extended queries that specify the RDF type of the object. Such an extension will require changes to the structure of the
SeRQLQueryBuilder
class, possibly a set of supporting query construct classes.
Copyright MKDoc Ltd. and others.
The Free Documentation License http://www.gnu.org/copyleft/fdl.html