def MetaField(self, name, t=None):
        """
        Creates an instance of a metadata field of the dataset. It can be used in building expressions
        or conditions for projection or selection.
        Notice that this function is equivalent to call::
            
            dataset["name"]

        If the MetaField is used in a region projection (:meth:`~.reg_project`), the user has also to specify the type
        of the metadata attribute that is selected::

            dataset.reg_project(new_field_dict={'new_field': dataset['name', 'string']})

        :param name: the name of the metadata that is considered
        :param t: the type of the metadata attribute {string, int, boolean, double}

        :return: a MetaField instance
        """
        return MetaField(name=name, index=self.__index, t=t)