Hi Ken:

Many years ago I came up with an algorithm for sorting call numbers. In
our collection, that is primarily LC numbers, but also other, including
home-grown call numbers. Works fine for us about 99%+ of the time, and
we use it in production.
It currently exists in Perl. You can get it from

Let me know if I can be of further help.

(Current note: I will not be reading my email after Friday, 12/16, and
will be back around the end of the first week in January.)

Roy Zimmer----->OIT----->Library Stuff & Other things----->
Western Michigan University----->Kalamazoo, Michigan USA
localsystem=P3 ICBM=(%Fatal:GPS error 51) RF=KB8UBA AF="Hey you!" QRM!
[log in to unmask] you go, there you are!

Ken Irwin wrote:
> Hi folks,
> I've been using a Library-of-Congress sort routine for a few years, and
> until now I have never used it on sufficiently large set of data to
> notice that it doesn't really work. It does a great job of sorting by LC
> class letters, but after that it gets a bit sketchy. Can someone help me
> here?
> The sort uses the php "usort" command, with the sort routine defined in
> the SortCall function (at the bottom of the page)
> Here's the sort in action:
> And here's the code:
> I'm finding that LC call numbers with decimals in the first number seem
> to be especially confusing, as in this supposedly sorted list:
> LB1027 .P383 1999
> LB1027.9 .L43 2004
> LB1028.24 .B75 1999
> LB1027.3 .S33 1999
> LB1027.9 .S26 2000
> LB1028.24 .P65 1999
> LB1027.3 .E44 2001
> LB1028 .A7 1990
> LB1027.25 E45 2001
> LB1027.3 .E45 1997
> LB1027.23 .B45 1997
> LB1027.23 .S556 1996
> LB1027.44 .M67 1994
> Can anyone see why this isn't working? Alternately, does anyone have an
> LC sort routine that they are really happy with? This one doesn't even
> pretend to do a good job sorting on anything with more than one set of
> cutters, but now I find it's even lamer than I thought.
> Help!
> Thanks
> Ken
> --
> Ken Irwin
> Reference Librarian
> Thomas Library, Wittenberg University