形形色色的標籤機制
「標籤」功能,在今天的網站應用中,已經是極為普遍的一種機制,甚至在許多桌面的應用上也可以見到「標籤」的蹤跡。在不同的地方,標籤可能有不同的名字,例如:
tag
: Picasa, Flickr, YouTube, amazon, WordPress, 豆瓣label
: Gmail, Bloggerkeyword
: iPhoto, Aperturehashtag
: Twitter, Google+category
: Anobii, WordPress
考慮到中文翻譯的話,又更加混亂:
- 標籤:Flickr, Gmail, Blogger, 豆瓣, WordPress
- 標記:Picasa, YouTube
- 關鍵字:iPhoto
- 分類:Anobii, WordPress
針對以上的清單進行耙梳,我們可以得到下面幾個觀察:
-
這些類似的功能中,最常見的英文名字是 “tag”,中文名字是「標籤/标签」。
-
然而在 Google 的產品中,“tag” 通常翻作「標記」;「標籤」這詞則是用在 “label” 上(儘管他們兩者功能接近)。
-
hashtag 有其自有的形式:
#somewordswithoutspace
, 不過其使用的方式與目的和單純的標籤(tag)並無太大差別。 -
有些應用服務存在著 category 與 tag 兩種機制,一個物件(例如部落格文章)可能只隸屬於單一分類(category)但可擁有多個標籤(tag)。但是現在越來越多的應用服務都可以讓使用者將單一物件同時歸屬於多個分類之下,使得分類與標籤的界線漸趨模糊。
-
可以從另外一個角度來釐清分類與標籤的不同:分類屬於事先規劃好的清單,標籤則是依照物件內容隨意添加的清單。
-
不過在只有「分類」沒有「標籤」機制的網站中(如 Anobii),「分類」的使用方式其實跟「標籤」是沒有兩樣的。
-
反之,只有標籤機制的網站,如 Blogger, 某種程度上也可以透過標籤來模擬分類的機制(可以參考此網站的右側選單)。
蠻混亂的,不是嗎?為了方便起見,我這邊用「分類 (category)」、「標籤 (tag)」與「Hashtag」來稱呼上面一大堆名字所代表的功能,其中「標籤 (tag)」同時也代表了 label 與 keyword。
分類、標籤與 Hashtag 三者的功能接近又互相重疊,命名也是各家網站各自為政,沒有個準。不過混亂還沒結束,讓我們針對「標籤」的部份,繼續深入研究下去。
標籤格式
標籤的格式牽扯的問題既廣且深,它不僅決定了使用者在輸入欄位中填入標籤的方法,也涉及到了資料儲存在資料庫中的方式。標籤的格式有以下幾個考量層面:
-
間隔方式
常見的間隔方式分兩種:空白與逗號。Flickr 採用空白間隔,Blogger 與 YouTube 則是逗號間隔。這邊還看不出什麼大問題,請接著看下去。
-
允許空白與否
基本上,大多數的標籤功能都允許標籤內含空白,我們免不了會遇到例如
"White House"
或"Windows Vista"
這樣的標籤。這時候不同的間隔方式就會帶來不同的考量了。-
以空白間隔的標籤,為了要允許空白字元作為標籤的一部分,所以必須引入引號,被引號包住的詞算做一個標籤,這是 Flickr 的作法。所以一張有「
white
house
」標籤的照片,也許是張白色的房子;而一張有「"white house"
」標籤的照片,則可能是美國白宮。不過這樣會使得引號無法作為標籤的一部分,比方說「5'7"
」(五呎七吋)這樣的詞就不能拿來當標籤了。 -
以逗號間隔的標籤,在含有空白間隔的標籤問題上看起來比較單純。但實作上其實有一點要注意,就是真正的間隔符號並非單單只有逗號,而是逗號加上一個空白。因為人們在輸入時習慣在逗號後面加入空白,如果說空白是合法標籤字元的話,那麼為什麼只有單字間的空白才被記入,單字前後的空白都被忽略呢?
-
-
大小寫
這邊再以 Flickr 與 YouTube 為例子作比較。YouTube 對於標籤的大小寫是照單全收,所以
"TREE"
標籤點下去的搜尋就是 “TREE”,而反之全小寫標籤的搜尋文字就是小寫的,反正搜尋結果無視大小寫,所以不成問題。Flickr 的作法稍微複雜些,除了你所輸入的之外,Flickr 還會另外將標籤簡化,然後儲存。你可以在三張照片分別使用
"TREE"
與"Tree"
與"tree"
這三種大小不同的標籤名,顯示時也是顯示各自不同的大小寫,然而他們都是代表著同樣的一個標籤。所以,如果你在一張照片中使用了"TREE"
的標籤後,接著再輸入"tree"
標籤,會發現沒有任何反應,因為標籤重複了。 -
內部處理
Flickr 在輸入標籤時所做的處理,除了大小寫外,也套用在空白上。因此,
"White House"
,"whitehouse"
,"WhiteHouse"
這三個標籤同樣都是指向"whitehouse"
這個內部處理的標籤。Flickr 內部運作時的標籤,是會把空白去掉並且全部轉為小寫字母。Youtube 就不同了,如前所述,你輸入什麼標籤它就存什麼,所以
"White House"
跟"whitehouse"
是不同的。事實上,你用這兩組字串去 YouTube 搜尋,也會得到不一樣的結果。
延伸閱讀:Tag formats: Can’t we all just get along? - Signal vs. Noise (by 37signals)
2005 年的文章。估計是 37signals 要實作標籤系統時,研究了當時幾個主流網站的標籤機制,對象包括 del.icio.us, 43things, Yahoo’s My Web, flickr 與 Amazon。這篇文章底下也有頗多值得一看的討論。文章的最後提到:
當新科技剛出現時,不一致是免不了的。然而這些不同的格式是否會持續下去,或是終將會有個標準一統天下呢?
2005 到現在,都六、七年了,標籤功能其實仍舊處於混沌未明的時代。