OPAC module -- Millennium vs SOPAC vs Other?

lefnire's picture

First off, I'm new to library development so tell me if way off base.

It seems that there are a handful of modules for harvesting records from ILS's, into your Drupal site as nodes (biblio or what have you). The two that I keep seeing are Millennium and SOPAC.
* Originally I thought Millennium was better -- it has higher D.O usage statistics, and it's a more Drupal-integrated solution (since it saves records as nodes, on which you can use views/fivestar/comments/etc).
* Then I thought SOPAC was better because it appeared to be real-time rather than based on a cron-harvest (or is it harvest/cron-based?), and because it seems to be the more widely-used/talked-about solution, what with AADL and the like.

I'm just wondering if there's a de-facto among the two, if one shines in certain situations and visa versa, if there are other modules to throw into the comparison, or if I'm comparing apples & oranges.


I vote for "other"

scolford's picture

Have you seen BiblioCommons? Oakville Public Library in Ontario has a really nice integration of their BiblioCommons catalog replacement into their Drupal site.


gstupar's picture

Someone at my library saw a vendor talk about Bibliocommons and thought it was nothing less than brilliant. It was the BEST one they have seen thusfar (this is after looking at a number of discovery layers, not just drupal discovery layers) :). One aspect, if I understood correctly, that it does well is that you can make booklists that link readily into the catalog. For example, you can "make" a list of "Consumer Health" books by marking the ones you want and presto! (A giant step for mankind). Patrons can make their own lists (whether they would want to do so, I don't know, but it's a nice outreach). The interface was also very easy to navigate and very intuitive.

Another website that is useful for this is here: http://librarytechnology.org/discovery.pl?SID=20091222755035400

It gives WHAT libraries are using WHAT discovery layers, based on what ILS systems they have. I thought this report was very insightful for learning what's out there. :)

Good luck! It's not an easy decision, that's for sure!


eby's picture

As others have said if you are looking for turn key or commercial solutions there are some out there. I've seen quite a few talks by the Bibliocommons group and they have some great ideas and a great product. You can potentially do everything it does inside drupal but obviously it would require development and would be a cost/time decision.

I'm presuming from the projects you listed that you are on III. If you have plans on moving in the future then you'll probably want to make sure whatever you choose has connectors for other systems or easy support for connectors. I think most do.

As for deciding between the ones you have listed, again it will be up to how you want to implement things. There are some design/philosophy differences between them and you'll likely have to dive into the code a bit to decide which fits your data best. For example if you have lots of data in item records versus bib records you'll need to make sure you have one that is centered around the records you have. SOPAC is bib level with some item availability, others deal with item records, etc.

MARC, Millennium and other modules import as nodes. This gives you the full capability of using Drupal and the many modules that come with it. Taxonomy, tags, views, etc. If you have long term plans on staying with drupal and want to take full advantage of that then these are probably the way to go.

SOPAC is not real time and also requires a harvest/cron. The big difference with SOPAC is that the data is all external from drupal. The drupal module is one front end to the data and you could switch it out with a wordpress frontend or whatever you wanted to develop without touching the data. While this makes building non-drupal things a bit easier you also lose some of the built-in functionality of drupal and may end up reinventing the wheel.

No de-facto, and really two separate approaches to the problem. Your best bet is to look at your data, decide how much of drupal you want to take advantage of and then also if you want to do it in house. Bibliocommons is an option, there are also companies out there that help with sopac/millennium/etc integration.

About Millennium module

janusman's picture

Hi, I am the main contributor for Millennium module...

I second @eby: there are full turnkey solutions (like Bibliocommons, and perhaps SOPAC) and there are "building blocks" like Millennium (on top of which you could/would build all the "nice" things like users' favorites lists, ratings, faceted search, a tabbed interface, etc.).

So, while you could build a very basic catalog replacement using Millennium and some core (and contrib?) modules, building a full-fledged catalog will require more work. However, as @eby says, Millennium module uses nodes-as-records, meaning you can expand it with any Drupal modules you like. I don't think you can do this with SOPAC (as the data is not in nodes). And Millennium 6.x-2.x (in dev) now also does Batch API imports as well as cron (file import is in the works).

I don't have any experience with Bibliocommons (is it even Drupal-based/related?) so I won't comment on that =)

I guess I would also recommend you find out a bit more to see what's best for your situation.

We want to use Millennium OPAC Module, but...

banoodle's picture

We really want to use the Millennium OPAC Module, but we can't get it to work with our OPAC (though it DOES work with other OPACs!).

I've posted the details here and would greatly appreciate any advice you can offer: http://drupal.org/node/1921654

We definitely have MARC format enabled for cart exports.


Views 3

jblyberg's picture

I think it's worth looking at the Views 3 roadmap (http://www.angrydonuts.com/views-3-x-roadmap and a nice synopsis here: http://drupal.org/node/646284) It's looking like external data sources will be usable within the views framework in 3 which will help alleviate the need to import bib records into Drupal wholesale. I've been playing around with the dev code a bit and it does look promising. Additionally, CCK3 is already allowing us to mix staff-contributed content with Locum-based data. Here is an example of a booklist content type that save our librarians a ton of time and features live availability: http://www.darienlibrary.org/2010/01/20/2010-notable-books-middle-readers

I guess I'm just not convinced that the Drupal node is an appropriate container for bibliographic information, especially since the development trend w/ Views and CCK seems to be to abstract their functionality.

I LOVE your booklist. Can

webwriter's picture

I LOVE your booklist. Can you give more details on how you created it? Views3?



jblyberg's picture

The booklist is a CCK3 content type with a custom template that hooks in to SOPAC's Locum library. Once CCK3 stabilizes a little bit and more details about its API emerge, I'll be able to roll this functionality up into a stand-alone module. The booklist itself is a single node where librarians can create lists by simply inputting the bib number of the items they want on the list. They can additionally include per-item comments if they want, as well as a preceding "post". Everything else is taken care of--they don't need to hunt around for cover images and of course, live availability and a request link is made available in the display. Eventually, I'll probably incorporate tags, and links to reviews, etc.

Excellent! I look forward to

webwriter's picture

Excellent! I look forward to seeing the module and will definitely install it. My current booklists are simply nodereference lists and not very user-friendly or attractive. I showed it to a few people on my staff and they love the look.


SOPAC and Drupal integration

effulgentsia's picture

Excellent comments so far. I do think one big difference between Millennium and SOPAC is that Millennium creates nodes and SOPAC harvests the data to non-Drupal tables (or even a non-Drupal database). This currently is resulting in SOPAC being less Drupal-integrated than Millennium. For example, you can't make a View of SOPAC bib records. SOPAC includes the ability for patrons to tag, review, and rate bib records, but that's implemented in a custom way rather than using standard Drupal modules like taxonomy, comment, and fivestar.

However, like John, I'm not convinced that bib records as nodes is a good idea. If a library has a website with 1,000 normal Drupal nodes and 1,000,000 bib records, how is the performance of accessing the normal nodes affected by having so many other nodes? Fortunately, as John points out, Drupal is moving to a less node-centric direction. Nodes are just one type of entity. Users and comments are other types of entities, and in Drupal 7, there's an increasing set of functionality available to all entity types and not just to nodes. For example, in Drupal 7, CCK fields are part of core, and can be added to users and comments as well as to nodes. So for Drupal 7, SOPAC will be able to keep bib records in separate tables or a separate database, but expose them as Drupal entities and benefit from all the integration with other modules that are built to work with entities rather than nodes. And as John points out, even in Drupal 6, both CCK 3 and Views 3 support integration with external data. So in the long run, site builders will be increasingly able to leverage more Drupal modules for use with SOPAC, but doing so now isn't so easy.

I think SOPAC has a very bright future. Maybe Millennium does too. I think both projects can learn from each other. There's always a tendency within the Drupal community to have some level of redundancy (multiple projects having overlapping goals, but using different approaches), and I think that's a good thing as it allows people to try out different things and have real world use-cases for evaluating the pros and cons of each approach. Perhaps with time, the stuff that's common to both projects can be abstracted into a single project, and only what's different between the two remain as separate projects. But I don't see that happening any time soon: I think both projects still need more incubation before either is ready for that.

Let me clarify that

janusman's picture

Let me clarify that Millennium only creates nodes mostly as a "placeholder"... while the bibliographic data also lives in MySQL, it's a very straightforward (non-resource intensive?) load; the data is written/read using simple indexes. I am not using CCK at all to hold any of the information.

On the faceting/fielded end, the only option is to use taxonomy. From there, you can then use Drupal modules that talk to Solr so that searching will scale. I realize this means redundancy, but again, for the sake of simplicity and extensibility =)

I am learning a lot from SOPAC and, indeed, it was John's work at AADL that inspired me to get involved with Drupal in the first place (and convince our library to do so!). At least, I do think Millennium has a lot to learn and do before I'm satisfied with it; I like the "Drupal-is-legos" approach and are trying to figure out how to stick to that philosophy and still have something useful out of the box and powerful.

Maybe I'll never be happy =)

Thanks for your comments!

I'm really glad both projects are being worked on

effulgentsia's picture

I hope my comment didn't come across as putting Millennium down, and if it did, I sincerely apologize. I haven't taken the time to do an in-depth study of it yet, but from what I can gather on the project overview page and in comments I've read, it sounds very cool, and I'm glad the project exists. I completely support the Drupal-as-legos philosophy, and given that you wanted a Drupal-implemented OPAC that used this philosophy in Drupal versions 5 and 6, I think you made some really good choices. Meanwhile, SOPAC had a different set of design goals and therefore, made different choices. Both have their pros and cons, and because of this, it's really good for both projects to exist. Because Drupal 7 finally breaks the node-centered paradigm and has better support for external data sources, it offers the opportunity for greater convergence of the two approaches. Just like SOPAC has been inspirational and useful to you in building out Millennium, I hope your work with Millennium helps inspire and guide the SOPAC project towards becoming better integrated into the Drupal ecosystem.

Thank you to everyone who's worked on these projects, and I look forward to opportunities for all of us to collaborate in the coming years.

Maybe by Drupal 9 or 10, we'll all be happy :)

DrupalConSF talk

effulgentsia's picture

This thread helped inspire a DrupalConSF session proposal, where I'll discuss SOPAC and janusman will discuss Millennium. If you're attending the conference, please vote for this and/or the other library-oriented sessions. Any materials we end up making for this presentation, we'll post somewhere public and add a link on this thread.


Group organizers

Group categories


Group events

Add to calendar

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: