Layered templates


Many photos I use for research come from online sources which are copies of originals, I need to record both the orginal archival data and the website database for the same item. Sometimes there are intermediate versions such as microfrilm as well.

I tried to add another set of fields to a copy of the default template to accomomate the information but it caused an error:
Failed to add field to templae. SQLITE_CONSTRAINT: UNIQUE constraint failed: fields.template_id, fields.property_id

This sounds like the data model does not allow for what I am trying to do.


That is you were trying to add two fields using the same property, right? E.g., two separate fields using dc:title or something like that? This is indeed a necessary constraint of the data model; instead we are planning support multiple values for the same field in the future. This means that it will be possible to add, e.g., multiple dc:title values to the same field (as opposed to multiple fields of the same property).

Furthermore, Tropy manages metadata at three levels (item, photo, and selection); in theory it is possible to customize the templates at each level. So you could, for example, record the original archival data at the item level and the website’s information at the photo level (since the photo is just one concrete photo or the original item after all). I think this is close to what you are suggesting and actually how we envision templates to work (i.e., you can define an item template and its corresponding photo template), but we have not enabled this in the UI, because we were worried the ensuing complexity might overwhelm users (the photo and selection templates are locked at the moment). I’ll make a note of your request; I think there is a good chance that we will add custom layered templates – we just need to make sure the template editor is easy to use (in its current form it’s not yet easy enough!).


Is it possible to add my own “property” to the vocabulary so that I could have 3 different fields for dimensions? Then add those new properties in my template?