is_present references an object identifier.
noun1_is "xxxx" references a noun (therefore the noun it would be checking for is visit_letter (with the underscore).
subject1_is "visit_letter" is probably what you are looking for.
That said, you don't need noun1_is "letter" or subject1_is "visit_letter", because the match "read letter" already checks that the noun is letter.