The system of data objects which provide the methods for information storage and retrieval. Broadly, a data hierarchy may be considered to be either natural, which arises from the alphabet or syntax of the language in which the information is expressed, or machine, which reflects the facilities of the computer, both hardware and software. A natural data hierarchy might consist of bits, characters, words, phrases, sentences, paragraphs, and chapters. One might use components bound to an application, such as field, record, and file, and these would ordinarily be further specified by having data descriptors such as name field, address field, etc. On the other hand, a machine or software system might use bit, byte, word, block, partition, channel, and port. Programming languages often provide types or objects which can create data hierarchies of arbitrary complexity, thus allowing software system designers to model language structures described by the linguist to greater or lesser degree. The distinction between the natural form of data and the facilities provided by the machine may be obscure, because users force their needs into the molds provided, and programmers change machine designs. As an example, the natural data type "character" and the machine type "byte" are often used interchangeably, because the latter has evolved to meet the need of representing the former.