This paper describes the Java MARIAN system, its implementation, and its evolution from a C++ Online Public Access Catalog
(OPAC) to a modern and complete digital library system. We focus on design, architectural, and implementation issues including:
support for storage, retrieval, and automatic generation of collections of semi-structured digital objects; uniform and powerful
representations based on semantic networks, digital library specific datatypes, and weighted sets; rich communities of searchers
and fusion modules; and support for distributed computation, multi-lingual retrieval, and personalization. We present applications
and some use statistics.