# Metadata Options

This section describes the metadata writing process and options that influences it.

## Metadata handling

### Read algorithm

1. Read exif, iptc and XMP from the file.

2. Now we have "raw" data -> show them in Exif Window.

3. Read XMP sidecar or Geeqie private metadata file, which overrides the XMP read from the file.

4. Sync XMP with exif and Iptc, this corresponds to the "reconciliation" as described in [XMP Specification]

   - detect which of Exif and Xmp.exif is newer and copy the data in appropriate direction

   - detect which of Iptc and Xmp is newer and copy the data in appropriate direction

5. Now we have "processed" data - use them for Info Sidebar (title, keywords, ...), Orientation, Color management, etc.

### Metadata modification

- Grouped files handling (raw + jpeg): description tags (keywords, comments) are written to all image files in the group (a group contains the same image in various formats, descriptions should be the same), technical tags (exif) are handled separately for each file.

- Modifying the keywords, comment, orientation, etc. does not ask for confirmation, but immediately modifies the metadata in memory and adds the file to "write queue"

- Writing of the queued changes is triggered from the menu or via auto-save. It is possible to review the changes and exclude selected files.

### Write algorithm

1. Exif and IPTC is updated from XMP (for example Exif.Image.Orientation is updated from Xmp.exif.orientation). See XMP and IPTC4XMP specs for the list of corresponding tags.

2. Try to write exif, iptc and XMP to the image file

3. Try to write XMP sidecar for raw file if previous step was not possible.

4. If previous steps were not possible, write XMP metadata to .metadata.

5. If previous steps were not possible, write XMP metadata to geeqie private directory.

6. After the first successful write attempt delete old metadata files in all possible locations.

## Options that influences the process

File types with allowed sidecars are listed in the Files tab.