Elk said
Thanks, Ted! I believe you got me past my mental roadblock.
I was stuck, thinking the issue was what should Octave do when importing user data and it comes across the data string “soul & funk.” It seemed obvious to me that Octave should simply leave the string alone and accept the string as entered by the user, no matter how misguided. 
But, instead, the actual issue Richard was raising is how should Octave search the genre field after the field is populated with the user’s data.
To this point, I like the ability to use any string (including recognition of a universal character such as !), with connectors such as And, Or, But Not (%).
This may be because my experience is computers do merely what you tell them to, not necessarily what you want. I thus prefer making explicit decisions rather than making assumptions as to what the software may do.
My guess is the average user who tags something “soul & funk,” or “soul/funk” would like the piece to show up when searching on “soul,” “funk,” or using both terms. If he wants the most narrow result, he searches on both.
Actually, no! I
was talking about importing the user data. The problem is that what doesn’t make sense to you might well make sense to someone else, and vice-versa, and Octave needs to try to be cognizant of all the possibilities. But either way, Ted’s expression of the dilemma is still a totally valid one.
Octave has to make a serious effort to understand what it is that your tags actually mean. One approach may be to recognize “Soul/Funk” as conveying both [Soul] and [Funk] independently, but to also recognize the possibility that [Soul/Funk] itself is a third valid genre attribute for that track. However, to do so would mean recognizing something like [Classical/Concerto/Cello/Piano/Violin] as a valid genre attribute, and that looks like a bit of a rabbit hole. Likewise, recognizing [Soul & Funk] as a valid genre would logically imply recognizing [Classical & Concerto & Cello & Piano & Violin] as an equally valid genre. But is that as much of a rabbit hole? Those are the sorts of issues we are trying to deal with. Not only are we asking ourselves if we’re getting it right, we are also asking ourselves whether, if we get it wrong, our error is still going to be close enough to the user’s original intent. These are a hundred decisions similar to this that need to be made, and each one needs to be shaken down in the same way that our Soul-Funk discussion has been shaken down here, if not always so publicly 
I should be clear that none of these decisions are yet cast in stone, and that at all times part of the decision-making process will involve deciding whether the benefit of supporting a certain feature, capability, or behavior, is outweighed by additional complexity (and resultant confusion) in the User Interface.