Re: [Shotwell] How to delete a photo from the shotwell databse



My program doesn't do a lot more than recent versions of Shotwell do. It is just a bit more convenient  for adding tags and titles.
The user sees the photo, and there is a window where he can add tags (it is actually a drop-down list with predefined tags for my purposes) and a window where he can enter a description.

The tags get added to the Shotwell tag table, and the description is used as the title.

However, there is also a SQLITE3 virtual table, containing the photoid, the description, and the tags. The SQLITE full-text search facility allows you to do sophisticated searches , for example find all the photos  with the words "Larry " OR "Diane" AND NOT "Fred". It also allows proximity searches.

Since the description field gets stored in the phototable as the title, Shotwell can also perform full-text search (which works very well - I like the incremental search) but it is limited to an AND operation - find the photos whose title contains ALL the words.

I think it would be easy (!) in Shotwell to make the windows for editing tags and titles larger, which would be much more convenient.

The use of a virtual table that contains the title and the tags would allow a more sophisticated search facility:

Look for grandchildren (a tag) and "Harry OR Sally" to find all the photos with the tag "grandchildrer" with either Harry or Sally in the title.

On Mon, 2018-04-09 at 09:18 +0200, Jens Georg wrote:
Do you plan to remove the list of tags, and have one entry per tag?
Yes, something like that. Make proper normalized tables etc.
The problem for my app was given a photo id, find all the tag table entries with this "thumb id" and then remove the thumb and write the data back, rather than just finding all the records with the thumb and deleting them. I realize that not many people are going to want to process the data outside of Shotwell, but having a good description of the various tables and their relationships would be useful.
There is a little bit of information available here: https://wiki.gnome.org/Apps/Shotwell/Architecture/Database
Many years ago I wrote a program to catalog photos (this was before I heard about Shotwell. It used a database system with full-text search abilities. When I switched to Shotwell, I rewrote the program in Python, and added a virtual table to the Shotwell database to make Boolean searching easy. This I can use all the of the SQLITE3 full-text search capabilities to find photos.
Would you care to explain a bit deeper what you are doing there?


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]