About the #Callahans Cats

This is the help page for Grimes and Gridley, the #wardroom and #Callahans cats on irc.libera.chat.  They are both capable of a fairly extensive range of interaction.  At one time, Gridley's codebase had been forked from Grimes and substantially stripped down, and Grimes' codebase was subsequently extensively modified for proper handling of multiple channels.  At this time of writing the two codebases have once again been completely merged except for per-instance data.  The amount of data maintained per-instance has also been reduced down to the minimum, with all fixed class data for such functions as number parsing moved into shared code.  Channel presence and channel-specific action sets are selected based on IRC name.

The cats will respond if spoken to by name, although their conversational range is rather limited.  They understand Morse code, and can use it to reply to some things.  They can also tell the time, both in traditional naval style and exactly.  Try asking one of them for the time, or for the exact time.  They will answer according to their local timezone (which is currently US-Eastern) by default.  You can also get GMT from them by asking for the Zulu time.

The cats respond primarily to actions.  Try giving one of them something.  He will react to it differently depending on what it is.  They know how to open containers, including nested ones, but if the container is empty it will be considered a play-toy.  Anything you give them that is edible, they will put into their food bowls, though they may not begin eating it right away depending on how hungry they are.  When they do decide to eat, they pick items from their food bowls in random order.  The most they will accept at one time as a single gift is twenty food items.  Items with overly complex of ambiguous names may confuse them.

If a cat doesn't recognize something, you can tell him how to classify it.  For example, you could say "Grimes, a persimmon is good to eat", or "Gridley, butyl mercaptan is bad", or "Grimes, a katzbalger is a weapon".  They are selective about who they accept learning from, though.  In general, you must be on a cat's permanent friends list before he will accept instruction from you.  Too many contradictory directives, telling one of them that things he already knows are "bad" are good, or attempting to teach him things with embedded programming commands in an effort to subvert him, may cause you to be added to his untrusted list.  The cats will not accept teaching from persons they do not trust.

NOTE:  Please do not teach the cats to eat inedible objects, nations, astronomical objects etc.  Sure, Max on Undernet #callahans will eat practically everything, but part of the initial plan for Grimes was to make him as much like a real cat as possible, with certain limited exceptions.

The cats understand the following classes:  good to eat, good to drink, good to read, good (or fun) to play with, toy (the same as "fun to play with"), good, bad, dangerous, container, tableware, dance, protected/endangered (species), weapon, munition, stowable gear, and friend.  (Tableware, in their vocabulary, means things like plates, cups and tankards.)

The cats have individual lists of their favorite books, magazines, movies and music.  You can tell one of them "Room With No View At All by John Doe is a good book", and he will add the book to his book list, or "Conan the Barbarian is a good movie", and he will add it to his movie list.  "Car and Driver is a good magazine" will add Car and Driver to the cat's magazine list, and "Gustav Holst's Planets Suite is good music" or "The Downeaster Alexa by Billy Joel is a good song" will add those to the cat's music list.

PLEASE KEEP IN MIND that "good to read" and "a good book" are NOT interchangeable.  "Good to read" denotes the class of readable object types.  "A good book" adds the book to the cat's reading list.  If you start plugging your entire reading list into the readable-objects class, you will succeed in hopelessly confusing the cats, and your books still won't end up in their reading lists.  They do their best to tell when they've been given a book title in place of class data and refuse it, but they can easily be mistaken.

ALSO KEEP IN MIND that all teaching instruction and all reading-list contributions ARE LOGGED.  Patrons using the cats' reading lists to insult or abuse other Patrons or to give the cats offensive reading material (racist, etc) will be put on the cats' Untrusted lists.

You can also query the cats' databases by asking them questions such as 'Who is Alaric', 'What is cream', 'What do you know about dynamite', 'What can you tell me about marmalade', etc.  For books, music, magazines and movies, you can ask "do you know any songs about Hawaii", "do you have any books about Harry Potter", and the like.  (Note that they will tend to be very literal-minded when asked media questions, returning case-insensitive exact string matches only.)

The cats can parse well-formed numbers.  You can offer them 'two hot dogs', or '3 bagels', for example.  In addition to pure numbers, they also understand that a dozen, a score, and a gross are numbers.  They also understand the idea of a quarter or half a (dozen, score, gross) or a baker's dozen.

They also understand the idea of "approximate quantities".  For example, they understand that "a pair" or "a couple" means two, and they interpret "some" or "a few" as "five or less", "a lot" or "a heap" or "a pile" as "between four and fifteen", and "a buttload" or "an assload" as "between ten and fifty".

Both cats collects marbles, by the way, but if you give them more than 1014 marbles they'll start running into rounding errors.  They may be off by several hundred or even several thousand on numbers that large.  But hey:  YOU try hand-counting a quadrillion marbles sometime.  However, the most they'll accept at a time as a single gift is a thousand marbles.  If you could give one of them a thousand marbles once a second, it would take you around 3,169 years to reach the level at which they start to hit rounding errors.

(I'm not worried about anyone actually achieving this, even with a script.  The attempt, however, would disrupt channel traffic to the extent that it would be considered a denial-of-service attack, and will be considered cause for kick-banning.)

Being nice to the cats makes them happy.  The cats decide for themselves that someone who is nice to them repeatedly is a friend.  This affects their choice of who to go to when they're feeling happy and who they will accept teaching from, among other things.  They keep track of how many times you've been nice to them, but your 'friend score' decays over time.  You lose one 'temporary' point every two hours, and must accumulate ten 'temporary' points with a cat to make it onto his permanent friends list.  (More than that, if you have earned his distrust or active dislike in the past.)  You can find out your friend score with a particular cat at any time by sending him the command "score" in a private message.

Similarly, being nasty to the cats will make them displeased with you.  (In fact, depending what you do, they may get downright cranky about it.)  If you reach a friend score of -10, you will be placed on the cat's enemies list.  As an enemy, the cats will accept neither teaching nor gifts from you.  Once on a cat's enemies list, it's much harder to get off it and make friends with him again.

If one of the cats jumps in your lap and you don't want him there, tell him down, and he'll stay out of your lap as long as you and he are both in the group.  If you don't want him to EVER jump in your lap, tell him not to jump in your lap, or to stay off your lap.

If you wish one or the other of the cats to refer to you using a specific name that is different from your IRC nick, address the cat by name and tell him "(Cat), my name is (whatever name you would like him to use)".  Please do not tell the cats to use deliberately offensive names.

If you'd like to see more detail added to this help document, or have an idea for a new feature or suggestions for additional responses, ask Alaric.