Here's another example of a "software" patent, which should be obvious to anyone who's worked in computer programming:
Patent 5,893,120 describes "Methods and apparatus for information storage and retrieval using a hashing technique with external chaining and on-the-fly removal of expired data." In other words, this is a standard way to expire old items from a "list" in computer programming, whenever the list is accessed.
I'm not a programmer (by trade, anyway - but I maintain several web sites on my own) yet this is so trivial and obvious, that I wrote a similar method for expiring password "cookie" hashes in a database several years ago. Every time someone someone accessed the login table (i.e. tried to login, or accessed a web page that required authentication) the method would first scan the login table to see if any passwords had already expired, then it would honor the request from the user.
For example, if we set your password cookie to expire in 3 hours, the database would be cleared of your entry after 3 hours, but only when someone accessed the database.
This is a trivial thing, something that's been taught in computer programming classes for ever. And here, it was a method used in the Linux kernel. Bedrock (a "patent portfolio" company) successfully sued Google over the patent, although Yahoo! defeated Bedrock in a similar suit.