Ability to type multiple tags separated by commas

In most tagging software I’ve used you can add multiple tags at once by typing them all in the entry field, separated by commas. In Tropy I have to type one, hit enter, type another, etc.
Is this a possibility for Tropy?

An extension of this idea: making groups of tags that I can apply to files with a single click. I’ll use Picasa’s tagging system as an example: at the bottom of the tagging portion of the interface were 10 or 12 buttons, each of which could have one or more tags assigned to it. In my case there would be one that applied bird/birding/birds, one that applied my kids’ names, one that applied insect/arachnid, and so on. Sometimes I’d have buttons that had 5 or 6 tags. And changing them was easy, so I could create useful buttons for whatever I was working on. Then I could look at a folder of images, select every one (no matter how many) that needed a specific tag or tags, and apply with one click. (Picasa would allow tagging any image format it could display, even ones that aren’t taggable, like Photoshop and RAW files. Their tags would only be visible inside the program.)

2 Likes

With regard to commas, one of our working assumptions was that tag names might legitimately contain commas, that’s why the tag adder does not treat a comma as a commitment for tag creation. That said, we could make this an option, however, if I understand it correctly the only real difference would be that you’re hitting a different key, right? Instead of typing <tag name><Enter><tag name> you’d be typing <tag name><comma><tag name>, yes?

Grouping tags for quick access is an interesting idea! We’re currently refactoring the tag selector (the main motivation is improved handling of large numbers of tags, but this will involve some other changes as well) so that’s certainly something we’ll discuss, thanks!

You’re right about the number of keystrokes. I’m not totally sure why I would like it better.
It would allow pasting in a list of tags, though, which would save a lot of strokes. Assuming there’s no grouped tags feature in Tropy, a person could have a text file in which they save commonly used groups of tags. Copy a group of tags, select all the items in Tropy that need those tags, paste, hit enter. I find that as I gather new materials I need to add lots of tags that I’ve previously added to other items. I prefer not to have to type them all again, or even click on them one at a time in a list. (Both of those methods also create an opportunity to forget to apply one or more tags.)

2 Likes

That’s a good point. Especially, using paste, you could sort of hack the tag group button into Tropy by preparing a list of tags and pasting it. We’ll give it some more thought!

1 Like

I would also like the ability to paste in a group of tags for the reasons stated above. Count me as a plus 1 on this feature. Thanks.

Me too! This would be a game-changer for me. I’m working with a team of students to collect data tags from a collection of 2,000 letters. Each letter generates about 20-50 data tags. Currently I have to: 1) cut/past the data tag block from the MS Word document into the Tropy tag entry box 2) highlight and cut all tags except for one 3) hit “enter” 4) Cut/paste again etc., 20-50 times, before I can move on to the next letter.

If this feature was available somehow, all I’d have to do would be to instruct my students to put a comma between each tag. And if commas aren’t the best for others, then I suppose any character could do–maybe a double comma? Or this: ` ?

I expect this feature could save me 4 minutes per letter (and keep me from accidentally making bad tags by lazy cutting/pasting), which would end up saving 130 hours or so?

Another +1 for this, commas or semi colons are both commonly used on other software

OK this convinced me. Adding multiple tags separated by a comma or semicolon just landed in the dev version and will go into 1.8.1. We might revise add an option for this to the preferences in case it causes issues (for users how want to use commas in tag names mostly).

Yay! This is a huge game-changer for me. Fantastic. If I may ask, when will 1.8.1 come out? I’ll need to inform my student researchers to start including commas in their data tag blocks.

almost forgot: THANK YOU!!!

Definitely in October.

That’s fantastic. Thanks again so much. So if I may ask one more follow up question:

My students are already deep into the letters and have 100+ MS Word pages of data tag blocks. Going back and manually entering commas between tags would be a huge time suck. However, I think I can use MS Word’s Find/Replace feature to find all of my standardized tags and replace them with the same tags, but with commas before them. Here’s an example:

Before Commas: SUBJECT STATUS INFECTED SUBJECT AGE 14 SUBJECT GENDER MALE SUBJECT PAST LOCATION LONDON ENGLAND

After Commas: SUBJECT STATUS INFECTED , SUBJECT AGE 14 , SUBJECT GENDER MALE , SUBJECT PAST LOCATION LONDON ENGLAND

Using Find/Replace seems to get the job done of separating tags with commas, however, it puts a space before and after each comma. My question is: Will empty spaces before/after a comma matter? From what I can tell at present, Tropy ignores all spaces before and after tags. For instance, if I drop “SUBJECT AGE 21” into the tag entry field, with two spaces before “SUBJECT” and two spaces after “21”, it will ignore those fore/aft spaces. So will the new release also ignore all spaces before/after my commas? Is my plan to retroactively add commas in MS Word an effective solution vis-a-vis Tropy?

I just want to tell my students what to do–whether they need to start entering commas immediately after the tags or if I can retroactively batch paste them in. Thanks again!

I’ll keep checking back for the update!

I think we also figured out a way to make this work with existing tags that have commas in them, so this is just going to be the default behavior with no opt-in. The way it’s going to work is that it will try to match your input as whole against existing tags – that is, if you have tags with commas, it would match those – only if there’s no match, will it try to split the input into multiple tags to match or create individually. This means you can work with tags that contain commas, but you have to create those first in the sidebar.

@jpeicher in answer to your question, the separator is going to be a comma or semicolon with optional whitespace in front and after. That is to say, inputs like: “SUBJECT AGE 21, SUBJECT STATUS INFECTED” “SUBJECT AGE 21,SUBJECT STATUS INFECTED” and similar variations would all result in the two canonical tags without leading or trailing white space. It also does not matter if there is more than one space.

Pasting your example above (with the commas) in the dev version results in these tags being created:
Screenshot from 2020-10-22 10-43-00

However, white space within the tag does matter. Currently “AGE 21” and “AGE 21” would be two different tags. Maybe this is something we should address? But it’s definitely a separate issue.

Hi!

Sorry I did not see your reply earlier. All of this sounds great! I don’t have any commas in my tags, nor do I intend to, so no problem there. I also don’t believe I have double spaces within entries. Looking forward to the new edition!

Best,
JE

Hi,

I just saw the new version is published! However, when I updated my software, I encountered an error:

I can’t seem to open my database now, as it routes me back to the error page. How shall I proceed?

I also copied the log. Here it is:
{“level”:30,“time”:1603892351351,“type”:“browser”,“name”:“main”,“opts”:{“version”:“1.8.1”,“data”:“/Users/johneicher/Library/Application Support/Tropy”,“cache”:“/Users/johneicher/Library/Caches/Tropy”,“logs”:“/Users/johneicher/Library/Logs/Tropy”,“env”:“production”,“autoUpdates”:true,“webgl”:false,“debug”:false,“trace”:false,“port”:null},“version”:“1.8.1”,“msg”:“main.init 1.8.1 Darwin 19.6.0 (x64)”}
{“level”:30,“time”:1603892351515,“type”:“browser”,“name”:“main”,“msg”:“plugins scanned: 0”}
{“level”:30,“time”:1603892351517,“type”:“browser”,“name”:“main”,“msg”:“app state restored”}
{“level”:30,“time”:1603892351518,“type”:“browser”,“name”:“main”,“file”:“/Users/johneicher/Pictures/Spanish Flu.tpy”,“msg”:“open new project window”}
{“level”:30,“time”:1603892351584,“type”:“browser”,“name”:“main”,“msg”:“ready after 7094.64697265625ms”}
{“level”:30,“time”:1603892351638,“type”:“browser”,“name”:“main”,“msg”:“switch to "light" theme”}
{“level”:30,“time”:1603892352288,“type”:“renderer”,“name”:“project”,“dpx”:2,“opts”:{“aqua”:“graphite”,“contrast”:false,“dark”:false,“env”:“production”,“documents”:“/Users/johneicher/Documents”,“maximizable”:true,“minimizable”:true,“pictures”:“/Users/johneicher/Pictures”,“scrollbars”:true,“theme”:“light”,“file”:“/Users/johneicher/Pictures/Spanish Flu.tpy”,“recent”:[“/Users/johneicher/Pictures/Spanish Flu.tpy”],“data”:“/Users/johneicher/Library/Application Support/Tropy”,“debug”:false,“dev”:false,“cache”:“/Users/johneicher/Library/Caches/Tropy”,“plugins”:“/Users/johneicher/Library/Application Support/Tropy/plugins”,“fontSize”:“13px”,“frameless”:true,“level”:“info”,“locale”:“en”,“log”:“/Users/johneicher/Library/Logs/Tropy/tropy.log”,“uuid”:“cd0f1100-5c17-11e8-839f-8bbc01d56efb”,“update”:{},“version”:“1.8.1”,“webgl”:true,“zoom”:1},“msg”:“project.init”}
{“level”:30,“time”:1603892352320,“type”:“renderer”,“name”:“project”,“msg”:“plugins scanned: 0”}
{“level”:30,“time”:1603892352320,“type”:“renderer”,“name”:“project”,“msg”:“plugins loaded: 0”}
{“level”:30,“time”:1603892352667,“type”:“renderer”,“name”:“project”,“msg”:“restoring recent@tropy”}
{“level”:30,“time”:1603892352669,“type”:“renderer”,“name”:“project”,“msg”:“restoring settings@tropy”}
{“level”:30,“time”:1603892352669,“type”:“renderer”,“name”:“project”,“msg”:“restoring ui@tropy”}
{“level”:30,“time”:1603892352671,“type”:“renderer”,“name”:“project”,“mode”:“w+”,“msg”:“open db /Users/johneicher/Library/Application Support/Tropy/ontology.db”}
{“level”:30,“time”:1603892352837,“type”:“renderer”,“name”:“project”,“msg”:“Esper.instance created using webgl renderer”}
{“level”:30,“time”:1603892352850,“type”:“renderer”,“name”:“project”,“mode”:“w”,“msg”:“open db /Users/johneicher/Pictures/Spanish Flu.tpy”}
{“level”:30,“time”:1603892352907,“type”:“renderer”,“name”:“project”,“msg”:“migrating Spanish Flu.tpy to #2005271953”}
{“level”:30,“time”:1603892352907,“type”:“renderer”,“name”:“project”,“msg”:“migrating ontology.db to #1912052116”}
{“level”:30,“time”:1603892352912,“type”:“renderer”,“name”:“project”,“msg”:“project ready 1336ms [dom:720ms win:37ms req:332ms]”}
{“level”:30,“time”:1603892353057,“type”:“renderer”,“name”:“project”,“msg”:“db query took 128ms”,“query”:“PRAGMA integrity_check(10)”,“ms”:128}
{“level”:40,“time”:1603892353057,“type”:“renderer”,“name”:“project”,“stack”:“wrong # of entries in index idx_photos_checksum”,“msg”:“integrity check failed!”}
{“level”:40,“time”:1603892353061,“type”:“renderer”,“name”:“project”,“stack”:“Error: 1 integrity check(s) failed\n at Connection.check (/Applications/Tropy.app/Contents/Resources/app.asar/lib/db-a62f2083.js:12373:15)”,“msg”:“unexpected error in *open”}

I tried to restore my old version with Time Machine, but it keeps giving me the same message. Yikes! I should have made an off-site copy before I updated!

This is an integrity check we run after the update. It’s a safety measure we added about a year ago to catch potential issues with a project database early; previously, this would only have been logged and Tropy would have opened the project so it’s hopefully not something to be too concerned about. But there is definitely an issue with the SQLite db integrity and it would be best for me to take a look at the file – could you share it with me? Ideally the current version as well as the one from the Time Machine backup?

Sure–how shall I do that? Should I send you a link to a Google folder perhaps?

At this point, I still can’t access anything, just an endless loop of warnings.

Yes, a link would be perfect. You can send it as a direct message here if you’d rather not share this publicly.

And, yes, currently Tropy will refuse to open the project file if it fails the integrity check. As mentioned earlier, we added this check about a year ago and were not sure if we should be this strict (previous versions of Tropy just opened the file without the check after all) – but this is a situation that could easily lead to data loss later on, so our current preference is to fail hard, and let users send us the files for inspection. (This is actually the first time this happened.)

Ah, good point about not sharing it publically. Apologies–how do I send you a DM? Or is this thread already private? Sorry!