Faceted search is a user interface metaphor that is best suitable for explorative scenarios: A user starts by roughly selecting a type of objects and the user interface presents characteristics (or “facets”) of the available instances, allowing the user to drill down into specific property values. A faceted search engine displays the available values and the number of matching instances at each step, making it easy to explore the space of available instances without knowing the search keywords in advance.

An experimental “unpolished” faceted search component had been part of TopBraid for a while, but it had scalability issues and did not integrate well with the rest of the platform. For TopBraid 4.3, we have made a complete redesign to address those issues. A screenshot of the new faceted search capabilities is shown below (click on the image for a larger view):

To get to that screen, open kennedys.ttl in TopBraid Composer ME 4.3, then select the Person class and move to the Browser tab. In the drop down box above the browser, select “facetsapp:Application” and click “Open current page in external Browser”. The same can of course be done for any other ontology or class.
The faceted search feature has been implemented in HTML 5/jQuery as SWA gadgets. The component consisting of a search box and the “Limit your search” area is one gadget, and the “summary” view in the center of the screenshot above is another gadget. The search gadget can also be combined with other display gadgets such as the tabular grid views or even a Google Maps view. All views can be customized with a few SWP declarations, e.g. to have certain properties pre-selected as facet fields, and to modify how results are displayed (ask our mailing list if the documentation doesn’t help).
While it is possible to embed faceted search into any SWP application or HTML 5 web page, TopBraid EVN now also uses faceted search to help selecting objects. The EVN edit forms have a drop down menu that allows users to open up a faceted search dialog. Another way of opening this dialog is from the context menu under the Search gadget in the new EVN Ontology Editor.

In addition to the facets and count display, more specific results can be obtained through a free-text search box in the upper left corner:

The faceted search components can seamlessly operate in two different modes. By default, it will use a native SPARQL-based engine that will work directly on the RDF store. This is fine for small to medium-sized data sets, but may become slow when too many counts need to be computed. The alternative mode is using Apache Solr, a Lucene-based search index that is optimized for faceted search scenarios. To make use of this, you only need to configure your TopBraid EVN project to synchronize with a Solr server. TopBraid will automatically update the Solr index after each edit (to the master graph) and then automatically use Solr to do the heavy lifting of computing the facet counts. The structure of the ontology is still used to discover which properties are present, and for the detailed displays if someone clicks on an instance. This hybrid approach combines the power of ontologies with an the optimized native data structure provided by Solr.

The flexibility of the RDF data model is well suited to serve as foundation for faceted search scenarios. The TopBraid platform provides a highly optimized yet flexible platform for delivering faceted search to your end users. No programming is needed to get started – this is model-driven throughout.