Tags 为什么标签通常都是小写的?

Tags 为什么标签通常都是小写的?,tags,case-sensitive,Tags,Case Sensitive,无论我在哪里看到,每当一个站点实现一个标签系统时,它们都会将标签名称转换为小写。甚至在这里 我在想为什么会这样。除了防止重复,我想不出使用小写的理由。我相信这会损害标签的实用性。人们习惯于读“IBM”而不是“IBM”和“C”而不是“C”。用户需要更多的时间来理解标签的含义,我想知道我是否应该在我的标签系统中允许大写字母,或者这是一种惯例,我完全弄错了 我想听听你的意见。这对我来说似乎是一个正确的观点。我相信他们可以想出一些简单的解析方法来大写每个单词(用破折号分隔),但是你怎么知道它应该是IBM

无论我在哪里看到,每当一个站点实现一个标签系统时,它们都会将标签名称转换为小写。甚至在这里

我在想为什么会这样。除了防止重复,我想不出使用小写的理由。我相信这会损害标签的实用性。人们习惯于读“IBM”而不是“IBM”和“C”而不是“C”。用户需要更多的时间来理解标签的含义,我想知道我是否应该在我的标签系统中允许大写字母,或者这是一种惯例,我完全弄错了


我想听听你的意见。

这对我来说似乎是一个正确的观点。我相信他们可以想出一些简单的解析方法来大写每个单词(用破折号分隔),但是你怎么知道它应该是IBM,而不是IBM呢?我认为必须有人手动更改标记查找表才能完成此操作。

正如您已经注意到的,它可以防止重复。人们的资本化并不一致。只要看看这里的标签,就会发现人们无法决定它是“objective-c”、“objc”还是“objectivec”。再加上“Objective-C”、“Objective-C”等等,你会搞得一团糟


注意,我并不是说不可能与资本打交道,只是很难。例如,您如何知道正确的大写字母?只接受第一个输入的正确吗?依靠版主清理?

对于标签,不同的情况应始终被视为等效

存储标签的另一个原因是规范化。单一规范化版本包含接受的大小写,标记使用多对多链接表进行链接。与标记表的比较不区分大小写,因此不会有重复项。

(我在回答中不建议任何特定的站点或系统-每个特定的系统可能有自己的考虑因素)

我猜原因是为了防止重复和简化排序或识别(如果不需要考虑多个选项就容易了)。为了保持一定的一致性,许多web用户界面面向的是那些有时可能会费心正确地使用大写字母的人,否则就不会)

但是,无论如何,这些都是一个问题,因为有太多太多的方式来指代的东西。如果您的标记曾被用作某种脚本、配置或代码(例如邮件过滤器、设置文件、命令行)中的符号,最好有一些简单的约定来指定它们,如果所有符号都具有相似的意义,允许或区分不同的大小写变化、删除等可能会有问题。作为一个Unix用户,我尝试保持文件名简单、简短、小写,并且没有特殊字符,当文件名是(例如)邮箱名或源文件时更是如此,因为它们可能必须键入,并且在许多上下文中指定,否则将不方便

另一方面,当使用复杂的图形或基于web的界面时,允许在列表中轻松选择、完成键入的条目、建议最接近的匹配项等,允许某种映射是有意义的。给每个标签一个简短的小写标识名,但也允许给它一个“long”或“human”名称,这将显示在有意义的地方。标记可以通过其短名称进行唯一标识和指定,但通过其长名称读取更方便

这类似于用户名在许多系统中的工作方式。我不会选择大小写混合的用户名,而是将用户名视为不区分大小写的(因此我只会在我所在的系统上使用有意义的大小写,在Unix中是小写的,但在其他一些旧系统中是大写的)。然后,大多数系统都会存储一些关于用户的其他信息,比如他们的长名或全名,这更便于阅读,因此许多用户界面(例如Windows XP、Mac OS,我猜还有一些较新的Unix桌面界面,如GNOME和KDE)会显示在桌面登录选择器、消息等上


对于web上社区系统的标签,我想复制问题的解决方案是对标签进行一定程度的调整,即使只是由社区本身进行调整,并且能够重命名和合并标签(与大多数情况下的用户名不同)或编辑其长名,我同意原则上这可以用一种更复杂的方式来完成。例如,您可以实现一个相似性度量,该度量可以将所有这些都识别为可能的同义词:

  • IBM
  • ibm
  • ibm
  • I.B.M.
  • I.B.M.
然而,在增加的运行时间(更不用说开发工作)和增加的实用性之间有一个折衷


我的普遍经验是,随着启发式变得越来越复杂,它们的失败模式也变得越来越神秘和怪异。至少,将字母转换为标准大小写的技术对于人类来说是很容易理解的,当他们有问题时,也很容易在头脑中思考。

向工程师询问为什么某些事情是以某种方式发生的,他们会竭尽全力去解决它。

在这种情况下,我倾向于通过懒惰的组合来解释小写的流行(程序员不愿意考虑你提出的观点)和模仿(一旦你看到它在站点S上做了某种方式,你就倾向于用类似的假设重新为站点S重新实现它)。


存储标记的方式当然是可行的,这样大小写就不重要了(为了排序、查询等目的),而是显示带有大写字母的标记。

键入时,必须打开大写字母锁,使所有内容都大写。人们是懒惰的。

我希望标签能够代表他们的分类。在这方面,我认为