It is a data that describe other data. Generally, a set of metadata describes a single set of data, called a resource.
Metadata are of special interest in various fields of computer science, e. g. information retrieval and the semantic web. Although many consider them a powerful tool to bridge the semantic gap, they are criticized severely by others.
Metadata can be stored either internally, i. e. in the same file as the data, or externally, i. e. in a separate file. Both possibilities have advantages and disadvantages:
Internal storage allows transferring metadata together with their data; thus they are always at hand and can be manipulated easily. This method creates high redundancy and does not allow holding metadata together.
External storage allows bundling metadata, e. g. in a database, for more efficient searching. There is no redundancy and metadata can be transferred simultaneously when using streaming. However, as most formats use URIs for that purpose, the method of how the metadata are linked to their data must be treated with care: What if a resource does not have an URI, e. g. resources on a local hard disk or web pages that are created on-the-fly using a content management system? What if metadata can only be evaluated if there is a connection to the WWW, especially when using RDF? How to realize that a resource is replaced by another with the same name but different content?
Moreover there is the question of data format: Storing metadata in a human-readable format such as XML can be useful because users can understand and edit them without any tools at all. On the other side these formats are not optimized for storage capacity, i. e. it may be useful to store them in a binary non-human-readable format instead to speed up transfer and save memory.