Introduction to iOta

Vijoy Pandey iota@varp.net

© Vijoy Pandey 2001, 2002, 2003

Document version: 1.00.00

iOta is meant for digital photographers who would like to index, archive and organize their images using a fast database backend, and don't want to become a system administrator doing so. iOta attempts to provide a simple user interface for doing all of the above using just one simple screen view.

iOta allows the user to generate uniquely rename and index images to an embedded database, generate thumbnails and browsable HTML indexes, archive directories of images onto CDR, and caption and describe each photograph in the user's collection. In addition, all this information also travels with the image itself in the thumbnail EXIF header.

NOTE:

This document is distributed with the iOta package. Check the help section of iOta, or check under Applications/Graphics in the KDE Help system. The latest version of this document is always available at the iOta home page. If a section seems incomplete, or if you feel that some more information needs to be added to the documentation in any section, please check the above link first and then send an email to the author at iota@varp.net .

Contents


Chapter 1. Introduction

iOta is a tool to manage and archive your digital photography collection. Whether you use a simple point-and-shoot digital camera, or scan your photographs from a megabuck film scanner after having captured it on your megabuck film SLR, this tool will help you organize, store, retrieve, and generate HTML indexes of your images, as long as you have your images in JPEG format.

iOta uses Berkeley DB as its database backend. The pure simplicity of this embeddable database implies that users of iOta don't have to be system administrators to organize their images. In fact, they don't have to know anything about databases at all.

iOta uses ImageMagick for image manipulation, which mostly consists of generating thumbnails, addind borders and captions, and manipulating the EXIF/JFIF headers for adding captioning content. This same content, which includes captions, keywords, date and time, camera and film information, and a host of other goodies, travels with the image thumbnail, and gets inserted into the database backend for retrieval.

iOta has been written with simplicity in mind. We don't want you to hunt your way down through cascaded menus to find what you were looking for. Therefore, all common actions are visible right on the main window itself, and you would hardly (if ever) need to access the top menubar for day-to-day usage.

With this same simplicity in mind, iOta doesn't care how and where you archive your images. Some users can afford terabytes of disk space and therefore will store their entire digital photography collection on hard disk, while some (like me) will try and archive chunks of their collection on CD-R, leaving their measly hard disks for other uses. iOta places all relevant information in the database backend, and tries to keep storage requirements to the minimum.


Chapter 2. Philosophy

Before you delve into using iOta, it would be useful to know how it operates and what to expect off it. iOta's image organization plans and procedures can be found at the iOPlan website. It has been influenced by the organization plan outlined in the book The Business of Nature Photography, by John Shaw, and then modified heavily to suit the digital photography world. It is advised that you go through the above mentioned website before using iOta since it will help you understand the whole procedure better.

The gist of the entire book can be summed up in the phrase - Use better captioning. You probably cannot guage the importance of this advice if you just bought your digital camera and have a grand total of 500 picturs. It started making complete sense to me by the time I had 2000 images. For those of you who have 5000 or more images, I am sure this piece of advice makes perfect sense.

John Shaw advocates using as many captioning words as possible to make your searches more unique and flexible. iOta extends this concept by introducing 3 levels of captions for each image: the Category, the Description and Keywords.

Apart for descriptive phrases, and useful information such as Equipment, Film and Copyright, iOta has three other image tags that make it very useful for organizing your digital photography collection.

Given this wonderful philosophical discussion, one would think that organizing your digital photography collection would be the work of a librarian, rather than you the photographer! Of course iOta realizes that people are lazy (from personal experience). Therefore, iOta does most of the work for you. When you launch the application and try and organize your directory of downloaded images from San Francisco, iOta does the following:

For dealing with databases, each image needs a unique identifier and name. For digital photographs, this is quite simple to do as almost all digital cameras embed the time and date of an image into the image itself. iOta renames all your downloaded images using the date and time of the image capture, and uses this as the primary index into the database.

As an added bonus, iOta re-organizes each of your photo directories into a much cleaner human accessible format and creates an informative HTML index file (index.html) in that directory, which lists thumbnails of all the images in the directory along with Category, Equipment, Film and Copyright information. This directory is now easily portable and accessible across all platforms.


Chapter 3. A sample iOta session

In this section, we will go through a basic session with iOta. We will examine what iOta is (and isn't) and what do we expect iOta to do for us. Throughout this running example, we will definitely look at screenshots for the main input/display screens, but more importantly, we will examine how your images and image directories get re-arranged as iOta takes control of organization.

NOTE:

iOta assumes that these images are from a digital camera, and hence contain all standard EXIF data such as time of day.

Lets say that you recently drove down to Bryce Canyon National Park in Utah, and then made your way back through Zion Canyon National Park. After reaching home, you plug in your camera and download your images into two directories - BryceCanyon and ZionCanyon. This is what your directories may look like at this point (we will follow only two images per directory for brevity).



[Photos #] ls *

BryceCanyon:

bryce01.jpg bryce02.jpg



ZionCanyon:

zion01.jpg zion02.jpg

Getting familiar with iOta

Let us launch iOta and begin. Right off the bat, iOta informs you of the default local configuration, namely, that the database file is stored under ~/.iota/iota.db. This is purely informative, and you can simply check the Do not display again box, so this won't be displayed again.

This brings you to the main iOta window. Almost everything that you may need to organize and access your photography collection can be done through this main window itself. You should not need to access the top menubar.

The operating algorithm should be as simple as follows. Once you download your images into a directory, Organize the directory. After you have organized at least one directory of images, you can search and edit the database using the Find function. After you have organized a couple of directories and would like to burn these directories onto CD-R, you Archive them. Results displayed in the search window can be printed using Print, and updated using Update All.

Screenshot of the main window of iOta.
Click on image for a larger view

This window has almost everything you need to fully operate iOta. You shouldn't need to access the drop down menus (File, Preprocessing, Database) at all during normal operation.

Organizing a Set of Images

The first step after downloading your images is to get them into a human viewable and easily accessible format. The Organize button performs this step for you. The following steps are done when you press the Organize button.

Entering details for a set of images.
Click on image for a larger view.

This window shows you the information that you can enter for a set of images being indexed and organized. All this information (a) travels in the image thumbnail, (b) is stored in the database, and (c) is displayed in the thumbnail index HTML file generated by iOta.

After this Organize step, let us take a look at what has happened to our BryceCanyon directory.

[BryceCanyon #] ls *

index.html



Pictures:

2002-12-18++12-39-06.jpg 2002-12-18++12-40-56.jpg



Thumbs:

2002-12-18++12-39-06.jpg 2002-12-18++12-40-56.jpg



The index.html contains a thumbnail index of all your images in this directory with links to the bigger versions, along with caption information. The Thumbs directory is where the thumbnails are stored while your pictures have been renamed and moved into the Pictures directory. The thumbnails also contain all the details (such as Category, Equipment etc.) that you filled out in the Image Details popup. Finally, all this information and the image thumbnails have also been imported into the database.

Searching for images

The Organize step gives you something to search for. After you have organized one or more directories, the Find button can help you navigate through the image database, and make changes to your image information.

The two most important things to remember about search are:

Therefore, you can deduce from the above points that pressing Find with the default settings as the application launches (all phrases blank, image tags set to their defaults and date ranging from 1-1-1995 till today), will pretty much show you all the images in your database unless you have modified the attributes of some of them to be different from the default.

The search window is flexible in its search parameters as the phrases are not fixed and you can search for whatever phrase you please by choosing from the drop-down menus on the left. Also, a search for a partial phrase, such as Bryce for Category in our example, will return all images from Bryce Canyon National Park.

Using the Print will print the entire result set. Once you have your search results, clicking (single) on any image will display the details for that image in the left half of the application. Also, you can use File->Print details to print the image details shown on the left.

Searching for a set of images.
Click on image for a larger view.

This view shows the results of the search for a category of Bryce Canyon. All other search parameters have been left as defaults. Once the searched items appear, the user has clicked on the item 2002-12-18++12-39-06 to see its image details.

Editing and deleting images

Editing single images

Once you have a database of photographs, you might want to use your photographic and aesthetic eye to sort through good and bad ones, while at the same time adding more details to the good ones so that it is easier to describe them to friends and family. Lets say, given our running example, that you want to sort through all the photographs in the Bryce Canyon category. Let us say that out of the results shown, you consider 2002-12-18++12-39-06 to be worthy of being called Excellent. You would click on that image (as shown below) and modify it as follows.

You can keep the Category, Equipment, Film, Copyright and CD Archive number consistent with every other image in this directory. But, since this is one of your better images, you would like to add a better description and more keywords to it so that searching for this image becomes easier later. I would add Hoodoos in Bryce Canyon in the heaviest snowfall of 2002 as the description. I would then add red sandstone snowfall december winter storm cold as the set of keywords to this image. Keywords are usually abstract descriptions of the image that do not appear anywhere in the Category or Description, and will help you to find similar images later. Finally, I would change the image Quality from Ordinary which is the default to Excellent leaving the other tags as they were. Once you are done, hit Save.

Editing a single image.
Click on image for a larger view.

This view shows how one can edit the image retrieved in a search and save the resulting parameters. In this example, some parameters of image 2002-12-18++12-39-06, such as Image Quality, have been modified while some new values, such as Description and Keywords, have been added.

NOTE:

For clearing out field values, you simply clear that phrase before saving. For example, if you would like this image to have no copyright, delete the copyright input line before hitting save.

Editing images in bulk

Sometimes it may be useful to change attributes of images in bulk. One such case may be typographical errors during the Organization stage. For example, type Bryce Canyon as Brce Canyon. Or, we might realize that the CD Archive number that we would be using is not really 2 but due to an overflow in the last archive, Bryce Canyon would have to go into CD number 3. For such situations, the Update All comes in very handy.

To update multiple images, use the search phrases and buttons to narrow down your search. Then, change the options you would like to change. For example, you can search for Brce Canyon in Category. Then change the Category entry to Bryce Canyon, and press Update All. Or, to change the CD Archive number, use the search phrase drop-down menus, choose Archive, and enter 3. Then press Update All.

NOTE:

It is important to note that for the Update All action, phrases which are left blank are not touched at all in the database. Therefore in our preceding example, if you left the Description, Keywords and Equipment blank, it would leave these fields for all the searched images in the database untouched, preserving any previous information. This has been done for convenience, as now you can search as broadly as possible (e.g., Brce Canyon, leaving other fields at defaults) and then bulk modify only Brce to Bryce leaving all other fields at their original values.

Deleting an image

Deleting the image entry from the database is quite simple. You simply search for the image (by name, or by a broader search), click on it in the search window, and when it gets displayed in detail, press Delete.

NOTE:

One drawback (or feature, depending on the way you look at it :-) of not storing the entire image in the local database, and letting you, the user, handle where it is physically stored (on CD-R, on hard drive or wherever), is that the real copy of the image is never deleted when you press delete. Just the image thumbnail and all organizational information is deleted, so that iOta has no recollection of the image. This could be good and bad for you. If you really want to delete it, please do so manually from the real storage area. If you want to keep it in practice, and re-insert it later, you can do that easily too.

Chapter 4. Archiving and Web Publishing

So far, we have used iOta for renaming, re-organizing and captioning our photography collection and also seraching and editing image details to and from an embedded database. iOta has also been able to create browsable HTML index files for all our images. Now we will examine how we can create Master Backups on CD-R for a bunch of photo directories already organized in iOta.

Archiving a set of image directories to CD-R

Let us assume that we are dealing with the same old directories - BryceCanyon and ZionCanyon. From our photo download directory (Photos), this is what the view could be.



[Photos #] ls *

BryceCanyon/ ZionCanyon/



Let us try and archive these to CD-R. The Archive does this for you. It is important to note that iOta simply prepares the directory for archiving to CD-R, and does not perform the step for you. For that, you will still need CD burning software, such as cdrtools, to burn the Photos directory to CD-R.

After pressing Archive, choose the top-level photo directory (Photos in our example) in the directory chooser. iOta then crunches through the directory and prepares it for archiving to CDR. Once its done, here is what the dirctory structure looks like.



[Photos #] ls *

index.html index1.html index2.html



BryceCanyon:

Pictures/ Thumbs/ index.html



ZionCanyon:

Pictures/ Thumbs/ index.html



Pictures:

2002-12-18++12-39-06.jpg 2002-12-18++12-40-56.jpg

2002-12-19++10-30-16.jpg 2002-12-19++12-35-50.jpg



Thumbs:

2002-12-18++12-39-06.jpg 2002-12-18++12-40-56.jpg

2002-12-19++10-30-16.jpg 2002-12-19++12-35-50.jpg



Take a look at index.html in any browser. Its a complete top-level master index and catalog of all your images directories and what they contain, complete with a CD-Archive number cross-linked thoroughly. It will describe what is contained within BryceCanyon and what is contained within ZionCanyon, with links pointing from this master index to the various image directories. You are all ready to burn this directory to CD-R now and ship it around to friends and family.

Dealing with the web

There are three ways you can display your images on the web.

NOTE:

The commands Border and Webify described above work on the images in the selected directory, so please make a backup of those images before using these commands.

Chapter 5. Credits and License

iOta - Image Organization Tool and Archiver

Program copyright 2001-2003 Vijoy Pandey iota@varp.net

Maintainer: Vijoy Pandey

Major Contributor: Rachna Guru iota@varp.net

Documentation copyright 2001-2003 Vijoy Pandey


Appendix A. Installation

How to obtain iOta

iOta can be obtained either from Freshmeat at http://www.freshmeat.net/iota, or from the authors site at http://www.varp.net/downloads. Versions 0.6 and earlier were text-only versions of iOta. The KDE/QT frontend was added in version 0.7.

iOta is usually released in source as well as binary formats. Binary formats are tested and released in the Red Hat Package Manager format (rpm) for Red Hat Linux and Mandrake Linux, and also in the pkg format for FreeBSD. If you would like to help out with packaging and testing on other platforms, please drop me an email at iota@varp.net.

The source is released as a tar and gzipped archive (e.g., iota-0.7.tar.gz). To install from sources, download it and then unzip and untar the archive: tar xvfz iota-0.7.tar.gz. Then, in the un-archived directory (say, iota-0.7), type in ./configure, followed by make. Once it has compiled correctly, become root and type make install.

NOTE:

FreeBSD tags Berkeley DB header files and libraries with the version numbers. For example, libdb for Db version 4.0 will be called libdb4.so while it will be named libdb41.so for DB version 4.1. For this reason, the last stage of linking in iOta might fail with a warning such as "libdb.so not found.". You can edit iota-0.7/iota/Makefile so that -ldb becomes -ldb41 (for DB version 4.1), and compile again.

Requirements

Since iOta's front-end depends heavily on the user interface and infrastructure set up by the desktop you need a working installation to use it. Moreover, iOta uses ImageMagick for thumbnail creating, border and copyright generation and EXIF header manipulation, and Berkeley DB for the database backend. So you should have an installation of these packages as well. They are quite straightforward to install.