Meta Object Facility (MOF) is an OMG standard for an abstract language for describing metamodels. Metamodel generally means a model of other model. It is mostly used for modeling languages. Parts of such a model for a Java language would contain elements for describing classes, interfaces, fields, methods and their parameters etc. The language is based on slightly simplified and slightly extended core of UML. Thus defining a metamodel of a language should be easy for the people who are familiar with the very basic principles of UML and easy to learn for the people who are familiar with the object oriented programing principles.
For the more detailed information please see the OMG homepage or DSTC MOF pages.
XML Metadata Interchange (XMI) is a standard bound to the MOF. Generally we can say that this standard defines a way how to export/import MOF modeled metadata into/from an XML file. It means that if there exists a model of a language e.g. Java it is possible to export metadata (e.g. data describing classes used in some Java application) in form of XML and import the matadata into another tool. Altough this may sound not very interesting in case of Java source files (even here it can be effective to transfer the metadata in XML in some cases as parsing the XML is not that dificult as parsing the Java sources) it becomes important for languages/technologies, which have no standard or suitable format for storing the metadata e.g. UML, relational databases etc. One of the key usages of XMI is to exchange MOF metamodels themselves. This is possible because MOF is modeled in MOF - thus MOF metamodels and MOF itself can also be understood as MOF modeled metadata.
In fact XMI is just a mapping from MOF to XML. More information can be found on OMG homepage or DSTC MOF pages.
Java Metdata Interface (JMI) is a JCP (Java Community Process) standard (JSR-40) which defines mapping from MOF to Java. The standard defines a way how to generate Java interfaces for accessing metadata described in MOF.
(Note that a mapping from MOF to IDL also exists and is part of the MOF specification - using the IDL mapping instead of JMI means generating IDL interfaces instad of Java interfaces and being able to manage the metadata using CORBA. Some repositories might provide both CORBA and Java access. It would also be posible to define other mappings to access the repositories in other languages)
Unified Modeling Language (UML) is used for visualisation of MOF models (using UML profile for MOF which is part of OMG's specification "UML Profile for EDOC").
Object Constraint Language (OCL) is part of UML standard. In MOF it is used for defining constraints in metamodels.
UML Profile for Enterprise Distributed Object Computing (EDOC) is a huge OMG standard defining (besides other things) UML profile for MOF.
eXtended Markup Language (XML) is used for interchange of MOF based models.
Common Object Request Broker Architecture (CORBA)/ Interface Definition Language (IDL) were originally used to access the MOF based repositories and define some MOF datatypes.
Common Warehouse Metamodel (CWM) is a set of metamodels describing widely used languages/technologies. It is an OMG standard. It contains metamodels for e.g. relational databases, OLAP, XML, DataMining, Warehouse Process, etc.