A Digital library (DL) is an approach to storing, and cataloguing information in the digital age, and many CMS projects have been attempting to achieve, whether they call them digital libraries or not. However a lot of packages make the integration very disjointed. Lets take an example:
A website devoted to building boats. There will be articles, photos, links, files, and forums.
However with a lot of existing CMS software each of these object types will end up with their own set of categories, often only allowing one category. This is the first breaking point of the DL idea. In a DL you should be able to take a cut along and category, keyword, etc combination and get a list of all the content in the collection.
Then when someone writes an article about building a boat, and links some of the articles in the downloads or files area they would normally copy and paste url, as opposed to putting in some semantic representation, which can be followed, transformed and interpreted nativity by the system.
There is one exception I have found to this is Drupal. It may not be a complete solution but it has one main advantage over many of the others. It is data centric, not application centric. By this I mean it offers a complete categories/taxonomy system, and all content is represented as a node, in a single node table. This allows the system to easily search all the content within the system. Each node type is displayed and edited by its own renderer, so images, links, articles, etc have their own specific functionality, but at the data level they are interoperable.
The only feature not provided by default is the ability to link nodes together, both from within written items (articles), and arbitrarily.
The ability to link items in the system into an article is provided by either the freelinking module and/or the interwiki module. Freelinking allows item titles to be used in a Wikimedia style link, to link items together. Similarly, interwiki allows node id’s to be used to link items. I have also made a small modification to interwiki to allow it to do both.
It is sometimes useful to group nodes into groups of related items, without wanting to create a separate category for each group. In drupal this can be done with modules link Node Relativity which “allows parent-child relationships between nodes to be established, managed and searched”.
By providing a complete and flexible taxonomy system, and a data centric design Drupal lends itself to digital library applications. New digital object types may require new nodes to be defined, but you can be assured that they will fit smoothly into the framework.
Hopefully soon I will be able to do a good case study on this, from within one of the community groups I am involved in.