The OPDS 1.1 specification introduces a few key features, but from a user perspective, faceted browsing is the major difference with OPDS 1.0.
Facets play a key role in how we navigate on websites with a large set of items to browse, for example:
- Google Search navigation is now mostly designed using facets
- All top ecommerce websites use facets
- Major libraries like the Internet Archive, Gallica or the Library of Congress
While navigation in OPDS 1.0 is limited to a series of navigation feeds (which act like the equivalent of the main menu of a website), with OPDS 1.1 any catalog and client can now offer a much richer navigation model using facets.
Let's see how we support this…
Each facet is a link
Facets are represented as atom:link element at the top of an acquisition feed:
<link rel="http://opds-spec.org/facet" href="/recent" title="Most recent" /> <link rel="http://opds-spec.org/facet" href="/popular" title="Most popular" />
New attribute – opds:activeFacet
By default, we consider that a facet is inactive. If a facet is active, an attribute opds:activeFacet is added to the link and set to "true".
<link rel="http://opds-spec.org/facet" opds:activeFacet="true" href="/recent" title="Most recent" /> <link rel="http://opds-spec.org/facet" href="/popular" title="Most popular" />
New attribute – opds:facetGroup
Facets can be grouped together using an opds:facetGroup attribute. In a group, only a single facet can be active at a time.
<link rel="http://opds-spec.org/facet" opds:facetGroup="Order" opds:activeFacet="true" href="/recent" title="Most recent" /> <link rel="http://opds-spec.org/facet" opds:facetGroup="Order" href="/popular" title="Most popular" />
Counting entries
A facet can also advertise the number of entries expected using an element from the Atom Threading extension: thr:count
<link rel="http://opds-spec.org/facet" opds:facetGroup="Order" opds:activeFacet="true" href="/recent" title="Most recent" /> <link rel="http://opds-spec.org/facet" thr:count="600" opds:facetGroup="Order" href="/popular" title="Most popular" />
Designing for facets
The so-called application stores (AppStore & Android Market), do a very poor job when it comes to discovery, and part of this problem is due to the lack of faceted browsing.
While facets are not as common on mobile applications as they are on websites (due to the limited screen space or the fact that designing mobile applications is still a new area of expertise) , a few design patterns already exist.
The following article at UXmatters is an excellent introduction to these patterns: http://www.uxmatters.com/mt/archives/2010/04/design-patterns-for-mobile-faceted-search-part-i.php
On larger devices such as tablets, specialized UI elements such as the iOS split view (Official guidelines) or Android fragments (Official documentation) are a perfect fit for facets.
On desktop and in web apps, the most common design for facets is to display them in a left-hand panel, but some websites also put them on top or on the right.
While there are no official recommendations in terms of UI from the spec or the OPDS group, the best way to treat facets is to display them where people would expect them the most (based on the platform you're targeting).
Implementations
Feedbooks has a live catalog with facets available at http://www.feedbooks.com/catalog
Bluefire Reader is the first OPDS client to support this feature (see screenshots below).
The Internet Archive and Inkstone Software should also be among the first to support faceted search & browsing.
One Comment
Fixed, and I also highlighted the important part for each example.
2 Trackbacks
[…] Faceted Search & Browsing […]
[…] new OPDS 1.1 release significantly enhances the usability of OPDS catalogs by supporting faceted search and browsing for easier navigation, and indirect acquisition for better handling of payments, […]