IPTC/XMP for hierarchical categories + internal DB
Posted: Sat Dec 25, 2004 12:18 am
I have been thinking at various ways to correctly organize pictures, and wondered if XnView could benefit from this.
Small summary:
- prefer standards (IPTC, XMP, etc...)
- decentralize data (metadata in the file) as much as possible
- complement with an internal DB to efficiently handle data + when data cannot be decentralized (ie: file formats not supporting IPTC, etc...)
Notes:
- XMP is not yet widely used (except Adobe), but IPTC may adopt XMP for its next version and get a boost. XMP should be on the list...
- IPTC can be used for JPEG, TIFF, PSD as well as some RAW (NEF, THM+CRW) and maybe other formats.
- From what I can see in IPTC and XMP, you should not expect soon any possibility for hierarchical categories (it would imply standardization of those categories, or to encapsulate the whole structure in all files), except if they adopt the same kind of solution as the one explained later...
- Hierarchical categories are great for organizing images (most IMS use them with good reasons).
The solution I have come up with is to store the complete hierarchical path of each category into the IPTC field.
As an example, if I have the following categories:
- Animal
- - Cat
- - Bird
- - - Eagle
- - - Sparrow
...
and would like to use the category "Sparrow", I would use "Animal|Bird|Sparrow" in the IPTC field.
The program would then replicate this information in an internal database to speed up: searching, browsing through categories, change a categorie, move an entire branch into another node, etc... (think drag and drop)
By storing the path of files, the program could also allow to save/restore those data if they have been corrupted, to import/export/edit them.
And the internal database would manage directly the files for which no IPTC/XMP data can be encapsulated.
I can see a strong limitation: this IPTC field is usually limited to 32 or 64 characters... however nothing prevent from using a higher limit (128, 256...), which would meet the requirements for this solution.
What is your opinion ?
Olivier
PS: This discussion is not in competition with the current ones about categorizing and m3u, but rather as a complement, as those would deal with the internal database issues...
Small summary:
- prefer standards (IPTC, XMP, etc...)
- decentralize data (metadata in the file) as much as possible
- complement with an internal DB to efficiently handle data + when data cannot be decentralized (ie: file formats not supporting IPTC, etc...)
Notes:
- XMP is not yet widely used (except Adobe), but IPTC may adopt XMP for its next version and get a boost. XMP should be on the list...
- IPTC can be used for JPEG, TIFF, PSD as well as some RAW (NEF, THM+CRW) and maybe other formats.
- From what I can see in IPTC and XMP, you should not expect soon any possibility for hierarchical categories (it would imply standardization of those categories, or to encapsulate the whole structure in all files), except if they adopt the same kind of solution as the one explained later...

- Hierarchical categories are great for organizing images (most IMS use them with good reasons).
The solution I have come up with is to store the complete hierarchical path of each category into the IPTC field.
As an example, if I have the following categories:
- Animal
- - Cat
- - Bird
- - - Eagle
- - - Sparrow
...
and would like to use the category "Sparrow", I would use "Animal|Bird|Sparrow" in the IPTC field.
The program would then replicate this information in an internal database to speed up: searching, browsing through categories, change a categorie, move an entire branch into another node, etc... (think drag and drop)
By storing the path of files, the program could also allow to save/restore those data if they have been corrupted, to import/export/edit them.
And the internal database would manage directly the files for which no IPTC/XMP data can be encapsulated.
I can see a strong limitation: this IPTC field is usually limited to 32 or 64 characters... however nothing prevent from using a higher limit (128, 256...), which would meet the requirements for this solution.
What is your opinion ?
Olivier
PS: This discussion is not in competition with the current ones about categorizing and m3u, but rather as a complement, as those would deal with the internal database issues...