jducoeur: (Default)
jducoeur ([personal profile] jducoeur) wrote2012-11-21 09:53 am
Entry tags:

Singleton tags?

Okay, here's a question for thought and discussion. I'm currently designing the Tag feature. Every Thing in Querki can have fields that are "tags", in the usual sense -- they contain whatever short text you would like. Tags will be hierarchical (because that is sometimes useful). And here's the interesting question: should tags *always* be multi-value?

One of the great failings of older databases is that they tend to be single-valued -- you can have only one Author for a Book, and such silliness. The real world is typically much messier, and that's reflected in the fact that most modern systems use Tags as sets of values: you can generally have any number of tags for a given item. Tags are remarkably powerful, and I expect them to be much-used in Querki.

So I'm clearly going to implement TagSet. Is there any reason to have a data type that is only a *single* Tag? The engineer in me says that of course such a thing should exist, since conceptually it's obvious, but the UX designer in me says not to, since you shouldn't expose a concept that is always a bad idea to use.

Opinions? Are there non-strawman cases where you would specifically want to only allow a single Tag on something? Or is it more bother than it's worth to expose this through the UI -- should I just have TagSet as the type that you always use?

[identity profile] goldsquare.livejournal.com 2012-11-21 03:51 pm (UTC)(link)
But in that case, why not have a primary name, and tag it with a set (0-infinite) of nicknames?
ext_81047: (Default)

[identity profile] kihou.livejournal.com 2012-11-21 05:05 pm (UTC)(link)
For names, I'd be fine having any number of names with one marked as a unique primary, though that seems more complicated than a single-value name tag and a multi-value nickname tag. For, like, ability effects, it doesn't make sense for there to be more than one, at least with the standard way of typesetting them. And either way, I'd want it to be clean to refer to the unique primary name.