The TATA book that zhaoway mentioned looks really interesting, I'm currently tree-walkin' and pattern-matchin' a lot these days and some (more) theory will really come in handy. It certainly ranks higher in my reading queue than the other two dozen or so papers and books I've got to get through somehow.
Since my last entry, I've gotten a hang of the MOF and UML metamodels' abstract syntax and written a MOF-to-python mapper/code generator. As I'm working on other mappers and generators (eg UML to EJB, SQL schema and HTML documentation), I'm trying to abstract out syntax tree searching and walking strategies that are common across the abstract syntaxes of various MOF-based metamodels. This should make it easier to write generators in the future and can be useful when dealing with new metamodels, eg those for domain specific languages.
Found an interesting explanation of the differences between various modelling and ontology-related terms.
I currently support version 1.4 of both MOF and UML, but most tools are using 1.3 at the moment. I have not been able to find the UML 1.3 metamodel in an interchangeable format (MOF+XMI), so I've been wondering whether to worry about compatibility problems for now (some do definitely exist). However, the existing UML metamodel is not a "strict metamodel" and leaves a bit to be desired while building tools, eg many places where the semantics of the language are not adequately reflected by the abstract syntax.
I'd like to jump straight to the proposed 2.0 standard, but I have not been able to find it in a machine-readable format either. If it appears soon there seems to be little point in sticking with MOF and UML 1.4 as 2.0 seems nicer already. New drafts of the proposed standard were posted recently, though the working group itself appears shrouded in OMG Mystery and no machine-readable format was posted.