Issue #85 new

RESTful search queries

Ahmad Gharbeia
created an issue

Currently, search queries are all POST requests resulting in the search results' pages being un-bookmarkable. This makes all the knowledge in OpenBiblio instances to practically be in the deep-web.

Using GET requests should partially remedy this by making it possible for users to bookmark and pass on references to sub-sets of the collections, i.e search results. In a sense, this provides a HTTP API for an instance.

It is a generally accepted that queries that do not alter the state of a datastore should be RESTful [https://en.wikipedia.org/wiki/RESTful].

Pairing this with a hyperlinked, crawlable trail of accessible web pages that collectively reflect the structure and content of the collection managed by an OpenBiblio instance should greatly increase the value of this system.

Comments (4)

  1. Hans van der Weij

    Thank you so much Ahmad, for the suggestions for RESTful search queries in OpenBiblio.

    I think most libraries would agree that knowledge about their holdings should not be restricted to the deep web. From this point of view, restricting access to the metadata that is stored in OpenBiblio records probably is a fundamental issue.

    A view that might contradict with this, is that OpenBiblio as a web application should present itself as an application and not as a collection of hyperlinked pages. Perhaps this view relates not so much to our current release but more to our newer development branch, https://bitbucket.org/mstetson/obiblio-10-wip

    I see that the old POST issue is still there too... but I wonder whether the new technical approach (much more javascript), introduces new technical issues for accessing search results.

    Currently I'm focusing on other issues (some of them are fundamental too). Unfortunately I don't see a "hyperlinked, crawlable trail of accessible web pages" implemented soon in our current release cycle (0.7). Do you think a simple change from POST to GET will have a big impact?

  2. Ahmad Gharbeia reporter

    Dear Hans,

    I'm not yet taking the initiative of working on the code myself and producing a proof of concept for you to consider. Hence I cannot say that what I propose should be implemented, taking into consideration that you must have your priorities. But let me entertain this idea with you.

    Working consciously to expose as much as possible of the knowledge in a system, in as much a standard way as possible, thus making it an open system, gives is it more value than the direct benefit of facilitating the organisation and manipulation of that knowledge from the point of view of its direct user. Provided that the owner/manager is aware and approving of this exposure, naturally (which in this case I wouldn't see a reason they wouldn't).

    I completely see how a web application is not merely a collection of linked pages, since it implements logic and processes and generates views of its dataset. But I also think there is no contradiction in being both; according to each usecase. I also dare say that when the usecase allows for it, then the application must also be a collection of linked pages. Looking at the whole web as The Application.

    My original suggestion (RESTful) was rather more concerned with being able to link to specific search results and sub-sets of the catalogue, a function that I deem to be very valuable to a user, and with being able to navigate the session using standard browser forward/backward buttons. Yes, I believe this makes a big impact: imagine an Amazon where you cannot do this because they expect you'll always use their system which is aware of its own state at any moment.

    Furthermore, when I say a collection of crawlable pages I also don't necessarily mean HTML, or HTML alone. I was rather thinking of some bibliographic model in RDF [http://openbiblio.net/2010/09/10/bibliographic-models-in-rdf/] or similar that makes items from an OpenBiblio collection appear in the web-searches of people who didn't even know that that obiblio implementation/library even existed.

    Additionally I envision a network of open, distributed catalogues that are able to refer a user to other instances of obiblio where a book is listed and may be physically obtainable, because they can all mutually read their catalogues.

    A javascript-based, desk-top styled application may appear shinier, but I think that's more suitable to a single-user's application, like a web-based email-client. But even then there's no reason why we cannot think of a system that has both sets of properties: Ajax based while still anchored in the read-write web.

    I know our beneficiaries in ADEF (Arab Digital Expression Foundation) where we support initiatives and groups with ICT solutions, would have demand for such a system. (You can see our latest implementation at http://rufoof.ciccairo.com)


    see also: http://bibliontology.com/specification http://www.ifla.org/taxonomy/term/472

  3. Log in to comment