In 2008 we put online Noflail Search, a search front-end implemented in Flex, using as back-end first a Yahoo API and later a Bing API. Flex is a Flash-based framework for building rich Internet applications, which allows us to experiment with advanced user-interface functionality. Noflail Search has been a great vehicle for an ongoing program of research on search front-end technology.
Our first search-related project was to provide zero-result analysis for queries that produce an empty result set. (Web search typically produces millions of results, but it can produce no results, e.g., when restricted to a particular Web site.) The zero-result analysis produces the most general subqueries (queries with fewer search terms) that do not have results, and the most specific subqueries that do have results. The former pinpoint the failure, while the latter are suggested as possible follow-up queries.
Zero-result analysis is a form of cooperative answering that goes back to the eighties, as discussed in our white paper
But earlier methods of computing a cooperative response to a search query could not be used by a front-end that gets search results from a back-end over the Internet, due to the roundtrip latency of the network. We overcame this difficulty by inventing a novel event-driven front-end that sends multiple requests in parallel to the Web API exposed by the back-end, as described in the whitepaper
PowerPoint slides presented at the 2009 Search Engine Meeting include an animation of a run of the process for computing a cooperative response.
We have filed a non-provisional patent application for this invention.
Browsing Multiple Result Sets At Once
The second project in our search-related research program addressed the issue that the user interface of a traditional search engine is not well-suited for tackling difficult search problems, problems that require long search sessions where the user issues many different queries while searching for some elusive information.
A traditional user interface is geared towards depth-first search, where the user digs deep into the result set of a query before giving up and issuing a different query. But difficult search problems are best tackled by breadth-first search, looking at the first page of results of many different queries, then the second page of all those queries, and so on. To support breadth-first search we invented and added to Noflail Search a novel search history feature that lets the user save not only queries, but also positions within the result sets of queries. After browsing the results of several different queries, the user can go back to an earlier result set and resume browsing at the page and scrolling within the page where he or she left off.
The feature is provided in Noflail Search by a search history panel that is visible in Advanced Mode. You can switch between Easy Mode and Advanced Mode at any time (using the green and blue buttons near the top left corner) without losing data.
Other search engines, e.g. Bing, have a search history feature. But in those engines, when the user goes back to an earlier search, the search has to be restarted from scratch.
The search history feature allows the user to resume a search session after exiting the browser and turning off the computer. This requires the history to be saved in persistent storage. To that purpose we used the so-called Flash Local Shared Objects, also known as Flash cookies, available in the Flex framework. (Persistent local storage is now also available in HTML5.) This search history feature is described in PowerPoint slides that were presented at the 2009 Search Engine Meeting and in the white papers:
- Searching the Web More Effectively with Multiple Simultaneous Queries,
- Retaining Queries in Noflail Search .
We have filed a non-provisional patent application for this invention.
The third project, and the third feature added to Noflail Search, was multisearch. This was motivated by the fact that, whereas traditional search engines are being overwhelmed by an explosion of low-quality content such as SEO spam and social chatter, thousands of vertical search engines that have emerged over the last few years provide spam-free results, each in its own area of expertise.
In June 2010 Noflail Search we added to Noflail Search a search engines panel that gives the user access to more than a hundred vertical and traditional search engines. The user can formulate a query and run it on different engines by clicking on their entries in the panel. When a search engine does not have a Web API, Noflail Search runs queries on the engine’s site and shows their results in a pop-up window.
As Noflail Search became a multisearch engine, the novel search history feature of Noflail Search became a cross-engine search history.
The list of search engines in Noflail Search is organized using self-explanatory tags. Noflail Search uses a novel method of browsing tagged data, described in the following white paper:
Browsing Real Time Search Results Effectively
Our fourth search-related project was funded by NSF Grant 1013594. It was entitled Collaborative Information Retrieval from Multiple Real-Time Sources. We invented a method of collaborative search that allows a researcher to resume a complex, multi-query search project initiated by another researcher, even if the result sets of queries are changing as they are being browsed.
We have not yet incorporated this collaborative feature into Noflail Search, but we have derived from it, and incorporated into Noflail Search, a single-user feature that lets a user browse fast-changing real-time results without missing results by losing track of what results he or she has seen. This is described in the blog post:
We have filed a non-provisional patent application for this novel feature.
The official Outcomes Report of the NSF-funded project can be found at the Research Spending and Results page of research.gov, by searching for Federal Award ID 1013594.
Other Features: Bookmarking, Sharing, Advanced Search, API descriptors
Noflail Search lets the user can bookmark and share both queries and individual results using several third-party services, currently Delicious, Diigo, Google and Pinboard.
The user can conveniently restrict a search to a particular site or a particular target language (for search back-ends that support such restrictions) without having to go to a separate Advanced Search page.
As part of the above-mentioned NSF-funded project we also invented search API descriptors. A search API descriptor is a machine readable specification that describes the XML or JSON results provided by a search back-end API. Search API descriptors allow us to hook up Noflail Search to new APIs without programming. In the future we may propose search API descriptors as a standard if there is sufficient interest.
Mobile Real-Time Search
We have recently started a fifth search-related project. We are planning to implement search applications for mobile platforms that incorporate the innovative features of Noflail Search.
At first glance, mobile platforms may seem unsuitable to that purpose due to their small displays. But it turns out that the advantages of a touch screen outweigh the disadvantages of a small-size display. So we are excited about what we will be able to accomplish on mobile devices.