The advantage of the RDF/DAML+OIL family of languages over ordinary XML is that it is topic-neutral and composable. However, its expressivity is severely limited. This limitation is well known, and the usual remedy is reification, in which RDF is used to describe formulas in a richer language. We propose a method for encoding typed predicate calculus using reification, which handles bound variables cleanly and causes the size to increase by only a constant multiple. The method generalizes to virtually any system, a claim which we illustrate by describing our program, PDDAML, which encodes domain specifications in PDDL using our technique. We argue that reification, while logically suspect, is in practice benign because any algorithm capable of doing inferences using logical notations can be easily extended to ``unreify'' those notations as needed. We also argue that the ability to represent predicate calculus on the semantic web is crucial.