[Adventuron] How do I read about an object that isn't in play?

I have a book. I can read about topics in the book. The topics generally refer to objects in the game, but they may not be in play yet, i.e. has_not_created would return true for those objects.

For example, I want to READ ABOUT HUMPTY DUMPTY. He is defined as an object with an object id of humpty_dumpty, but he can be referred to as humpty, dumpty, humpty dumpty, egg, big egg and so on. So I want to refer to him by the object id using s1(), not the adjective and noun, as there are too many valid combinations. The following code should work, but it doesn’t, because s1() returns ‘unknown’. I assume this is because Humpty Dumpty hasn’t been created yet.

: match "read _" {
   : if (preposition_is "about" && s1() != "") {
      : if (s1() == "humpty_dumpty") {
         : print "He's the one that had a great fall and all the king's horses and all the king's men couldn't put him together again.";
         : done;

How do I get this to work?

This thread was meant to be about s1(), but I did find a solution to the book reading problem in this thread. The solution avoids using s1(), but also discusses issues releated to the use of prepositions.