2009-02-14 7 views
10

Überall, wo ich sehe, sehe ich, dass wann immer eine Site ein Tag-System implementiert, sie die Tags-Namen in Kleinbuchstaben konvertieren. Auch hier in StackOverflow.Warum sind Tags normalerweise Kleinbuchstaben?

Ich dachte darüber nach, warum es so ist. Abgesehen von der Vermeidung von Doppelungen kann ich mir keinen Grund vorstellen, Kleinbuchstaben zu verwenden. Ich glaube, es schmerzt den praktischen Aspekt der Tags. Leute sind gewohnt, "IBM" nicht "ibm" und "C#" nicht "C#" zu lesen. Es dauert ein bisschen mehr Zeit für den Benutzer zu verstehen, was die Bedeutung des Tags ist, und ich frage mich, ob ich Capitals in meinem Tag-System zulassen sollte, oder ist es eine Konvention und ich habe alles falsch verstanden.

Ich möchte Ihre Meinung hören.

+1

Ich denke es ist nur eine Frage von * wie-viel-wir-denken-es-zählt * vs * wie-viel-extra-Arbeit-es-Ursachen *. Diese Art von Unannehmlichkeiten werden akzeptiert, weil die begrenzte Menge an Ressourcen bereits mit wichtigeren Dingen überzeichnet sind ... –

+0

Related: http://ux.stackexchange.com/questions/29498/why-is-a-tags-first-letter -in-low-case – unor

Antwort

4

Fragen Sie einen Ingenieur den Grund, warum etwas auf eine bestimmte Art und Weise ist, und sie werden große Anstrengungen unternehmen, um es herauszufinden. ;) In diesem Fall würde ich geneigt sein, die Prävalenz von Kleinbuchstaben durch eine Kombination von Faulheit (Programmierer, die nicht bereit sind, die Punkte zu berücksichtigen, die ich erstelle) und Nachahmung zu erklären (sobald Sie es auf eine bestimmte Weise gemacht sehen) Site S, tendieren Sie dazu, sie für Site S 'mit ähnlichen Annahmen neu zu implementieren.

Es scheint sicherlich machbar Speicher-Tags in einer Weise, dass Fall keine Rolle spielt (zum Zwecke der Sortierung, Abfragen und so weiter), aber Anzeige die Tags mit der Aktivierung ursprünglich beabsichtigt.

0

Das klingt wie ein gültiger Punkt für mich. Ich bin mir sicher, dass sie mit einem einfachen Parsing kommen könnten, um jedes Wort (getrennt durch Bindestriche) zu kapitalisieren, aber woher weißt du, dass es IBM statt Ibm sein sollte? Ich denke, jemand müsste die Tag-Lookup-Tabelle manuell ändern, um dies zu erreichen.

+0

Ja, aber da die Redakteure von Websites normalerweise diejenigen sind, die über die Tags entscheiden, wissen sie, ob es sich um IBM oder IBM handelt. Und wenn Benutzer das Tagging durchführen, wählen sie normalerweise aus einer gegebenen Menge von Tags. Ich sage nur, dass eine Kapitalisierung mehr als ein Nachteil ist. –

+0

Die meisten Websites, die ich gesehen habe, die Tags verwenden, verwenden Freiform-Tags - gib einfach das gewünschte Tag ein. Fälle wie Sie beschreiben, wo Admins/Editoren eine Liste aller Tags erstellen und Benutzer Tags aus dieser Liste auswählen, sind meiner Erfahrung nach die Ausnahme. –

28

Wie Sie bereits bemerkt haben, verhindert es die Duplizierung. Menschen sind in ihrer Großschreibung nicht konsistent. Schauen Sie sich die Tags hier an und beachten Sie, dass die Leute nicht entscheiden können, ob es sich um "objective-c", "objc" oder "objecc" handelt. Werfen Sie "Objective-C", "Objective-c" und so weiter ein, und Sie hätten ein echtes Durcheinander.

Hinweis Ich sage nicht, dass es unmöglich wäre, mit Großbuchstaben umzugehen, nur schwierig. Zum Beispiel, woher kennen Sie die korrekte Großschreibung? Einfach die erste als richtig eingegeben akzeptieren? Auf Moderatoren aufräumen?

+1

Bei einem Vergleich könnte die Groß- und Kleinschreibung nicht berücksichtigt werden, und Personen mit Editor-Berechtigungen könnten alle neuen aufräumen - die Leute scheinen sich darüber zu freuen, Tippfehler in Posts zu korrigieren, ich denke, sie würden auch gerne Tags löschen. – Kristen

+0

Aber Sie könnten leicht einen tolower() - Vergleich der vorhandenen Tags hinzufügen ... oder sogar eine Spalte in der DB-Tabelle enthalten, die bereits die gesenkte Version der Zeichenfolge enthält. Dann gibt es nicht wirklich irgendeinen Overhead außer dem tatsächlichen Platz, den die zusätzliche Spalte einnimmt. –

+0

Ja, es kann ein Durcheinander verursachen. Aber wenn Sie ein Tag auswählen, können Sie sehen, ob es Duplikate gibt oder nicht, Sie erhalten ein Drop-Down-Menü. Ich meine, die Einschränkung der Funktionalität in diesem Fall wegen der Duplizierung klingt nicht ideal. Ich bin mir sicher, dass die Vermeidung von Doppelarbeit auf andere Weise gelöst werden kann. –

3

Verschiedene Fälle sollten immer als gleichwertig für Tags betrachtet werden.

Ein weiterer Grund, Ihre Tags normalisiert zu speichern. Die einzelne normalisierte Version enthält den akzeptierten Fall, und die Tags sind über eine Viele-zu-viele-Verbindungstabelle verknüpft. Beim Vergleich mit der Tag-Tabelle wird die Groß-/Kleinschreibung nicht berücksichtigt, so dass es niemals Duplikate gibt.

+1

Sie scheinen zu sagen, dass die Site-Administratoren eine Liste gültiger Tags erstellen müssen oder akzeptieren müssen, dass die erste Person, die ein neues Tag eingibt, die korrekte Großschreibung hat. –

+0

Ich denke, dass die Moderation auf Tags erfolgen sollte, genauso wie es bei anderen von Nutzern eingegebenen Inhalten gemacht wird. Und wenn es richtig gemacht wird, gibt es keinen Grund, die Tags auf Kleinbuchstaben zu beschränken. –

+0

@Paul Weder. Die erste Person, die das Tag erstellt, legt den Fall fest, der an das Tag angehängt wird (und kann von jedem Moderator geändert werden, genau wie ein Tag änderbar sein sollte). –

2

(Ich bin nicht für einen bestimmten Standort oder ein System in dieser Antwort Beratung - jedes spezifisches System seine eigenen Überlegungen haben kann)

Ich denke, der Grund, um Doppelarbeit zu vermeiden und erleichtert das Sortieren und die Identifikation (es ist einfacher, wenn Sie müssen nicht mehrere Optionen berücksichtigen). Und möglicherweise, um eine gewisse Konsistenz zu bewahren, da viele Web-Benutzeroberflächen auf Personen ausgerichtet sind, die sich manchmal Mühe geben, richtig zu kapitalisieren und ansonsten nicht.

Aber dann sind das sowieso Probleme, weil es allzu oft mehr als eine Möglichkeit gibt, auf etwas zu verweisen. Wenn Ihre Tags jemals als Symbole in einer Art von Skript, Konfiguration oder Code verwendet werden (z. B. E-Mail-Filter, Einstellungsdateien, Befehlszeilen), ist es gut, einige einfache Konventionen zu haben, und wenn alle Symbole von ähnlicher Bedeutung sind, das Zulassen oder Unterscheiden zwischen verschiedenen Fallvariationen, Begrenzungen usw. kann problematisch sein. Als Unix-Benutzer versuche ich, Dateinamen einfach, kurz, klein und ohne Sonderzeichen zu halten, und auch dann, wenn es sich um (zum Beispiel) Postfachnamen oder Quelldateien handelt, da sie wahrscheinlich eingegeben und spezifiziert werden müssen viele Kontexte, bei denen es sonst zu Unannehmlichkeiten kommen würde.

Auf der anderen Seite, wenn eine ausgeklügelte grafische oder webbasierte Schnittstelle verwendet wird, die eine einfache Auswahl zwischen Listen, die Eingabe von Eingaben usw. ermöglicht, ist es sinnvoll, eine Art Mapping zuzulassen. Geben Sie jedem Tag einen kurzen, einfachen Namen in Kleinbuchstaben, aber erlauben Sie ihm auch einen "langen" oder "menschlichen" Namen, der dort angezeigt wird, wo er sinnvoll ist. Tags können eindeutig identifiziert und durch ihren Kurznamen spezifiziert werden, aber bequemer durch ihren langen Namen gelesen werden.

Dies ist ähnlich wie Benutzernamen in vielen Systemen arbeiten. Ich würde keinen Benutzernamen mit gemischter Groß-/Kleinschreibung auswählen und Benutzernamen eher als Groß-/Kleinschreibung behandeln (also würde ich einfach den Fall verwenden, der für das System, in dem ich mich befinde, klein ist, in Großbuchstaben in einigen anderen alten Systemen)). Dann haben die meisten Systeme einige andere Informationen über Benutzer gespeichert, wie ihren langen oder vollständigen Namen, der besser zu lesen ist, und daher viele Benutzeroberflächen (zB Windows XP, Mac OS und ich denke auch einige neuere Unix Desktop Interfaces wie GNOME und KDE) Anzeige auf Desktop-Login-Wähler, Nachrichten, etc.

Im Falle von Tags für Community-Systeme im Internet, denke ich, die Lösung für das Duplizierungsproblem ist ein gewisses Maß an Moderation zu Tags, auch wenn nur von der Gemeinschaft selbst, und die Fähigkeit, Tags umzubenennen und zu verschmelzen (im Gegensatz zu Benutzernamen in den meisten Fällen) oder ihre langen Namen zu bearbeiten, falls etwas falsch war.

0

Ich stimme zu, dass dies im Prinzip auf eine ausgeklügeltere Art und Weise getan werden könnte. Zum Beispiel könnten Sie eine Ahnlichkeitsmetrik implementieren, die alle diese als wahrscheinlich Synonyme erkennen konnte:

  • IBM
  • ibm
  • I B M
  • I. B. M.
  • I.B.M.

jedoch Es gibt einen Kompromiss zwischen dem erhöhten Lauf Zeit (ganz zu schweigen von Entwicklungsaufwand) und die Zunahme der Nützlichkeit.

Es ist auch meine allgemeine Erfahrung, dass, während Heuristiken komplexer werden, ihre Fehlerarten mysteriöser und bizarrer werden. Zumindest ist die Technik der Konvertierung von Alphabet zu Standardfall für Menschen leicht zu verstehen und macht sie in ihren Köpfen, wenn sie Fragen haben.

-1

Wenn Sie tippen, müssen Sie die Feststelltaste aktivieren, um alles in Großbuchstaben zu schreiben. Die Leute sind faul.

+0

OP argumentiert für die Ermöglichung von Groß-Fall-Tags, nicht darauf hin, dass alle Kleinbuchstaben durch alle Großbuchstaben ersetzt werden sollte. –

1

Ich möchte Tags sehen, die für das, was sie kategorisieren, repräsentativ sind. In dieser Hinsicht sollten Tags genau der gleichen Form folgen wie das, was sie beschreiben.

Aus technischer Sicht sehe ich, wo die Probleme jedoch auftreten können; Ich sehe keinen Grund dafür, eine Lösung nicht vollständig zu untersuchen.

Ich arbeite im Digital Publishing und ich kann den Vorteil der richtigen Verwendung sehen. Auf der anderen Seite wäre es schwierig, voll-kleingeschriebene Artikel in Zeitschriften, Büchern oder Zeitungen zu verwenden (es sei denn, es war eine stilistische Entscheidung).

http://en.wikipedia.org/wiki/List_of_case-sensitive_English_words

Das heißt, die Schönheit des Englisch-Lexikon ist es Fähigkeit, sich anzupassen, zu verändern und zu entwickeln.