= Metadata = Due the fact in Lobotomy metadata are the core of every kind of data retrive, handling, sorting, visualization, they have to be accurately described. Given a number of attributes and properties assigned to each of them most of elaboration may be defined a priori, so to guarantee integrity in presentation and automatic manipulation with a reduced code base. A metadata is a key to which a value may be assigned, and the pair "key, value" is attached to the [wiki:Items item]. Each possible key is formalized in a describtion, so upper layers know how to handle the value also without explicit intervent by the user or by the developer writing an application. Over the formal describtion, more attributes accompaign the metadata and are equal for all of them. More in general, a metadata is so rappresented: * ID: a numeric unique identifier for the type of metadata, used internally to retrive it against an item ID * Name: a human-readable name, which may be show along the value * Type: the type of value the metadata convey * Value: the value the metadata assumes for the item to which is attached. This is the only field the user may edit * Date: the date in which the metadata was assigned and/or modified. This permits complex orthogonal elaboration against chronological informations collected by the system * Attributes: advanced optional properties for the metadata. They may be: * More Values: if the metadata accepts an array of values as value * Enum: list of values accepted by the metadata, if it has type = Enum * Min Value: minimum value accepted by the metadata, if the type is numeric * Max Value: maximum value accepted by the metadata, if the type is numeric Types of values metadata can collect are: * String * Integer * Unsigned integer * Long long * Unsigned long long * Double * Boolean * Internal Reference, is an ID for another item * Enum, is a set of possible values * Date * Percentage This is an incomplete list of metadata which may be attached to items, more will be added in time: || '''Name''' || '''Description''' || '''Type''' || '''Extending Attributes''' || || ID || Unique identifier for the item || Unsigned long long || || || Name || The name assigned to the item, rappresents a viable way to present it || String || || || Size || Filesize, if it is a file || Integer, expressed in bytes || || || Mimetype || Mimetype of the item, if it is a file || Enum/String || The list of mimetypes described by IANA || || Creation Date || The date the item have been created. This is intended to be an absolute value, carrying the effective date in which the content have been created on the original system || Date || || || Appearing Date || The date the item has appeared on the system. If the item has been created on the system, is equal to Creation Date || Date || || || Modification Date || List of dates in which the item have been opened, modified and closed || Date || More Values || || Access Date || List of dates in which the item have been opened and closed || Date || More Values || || Change Date || List of dates in which any metadata of the item have been changed || Date || More Values || || Icon || Icon which may be assigned to the specific item || Internal Reference || || || MD5 || MD5 hash of the contents || String || || || Notes || Freely editable notes by the user || String || || || Tags || Tags assigned to the item by the user || String || More Values || || Group || Freely editable name of the group of items in which this fit || String || More Values || Please note that, despite the fact some metadata is specific for particular mimetypes, every metadata may be attached to every item, without restrictions on the original file format. All values help retriving contents, and occasionally [wiki:Staminal trasforming] it.