然而正由於目前沒有一致性的標籤標準,人們對於標籤的使用也很隨興,所以會常常看到下面三種情形:
同一個概念以不同的詞語組合方式標籤
例如一篇文章中同時加入了 win7
, Windows 7
, MS windows 7
, windows-7
等標籤,有縮寫、有全名、有各種不同的連接詞。這種現象在以搜尋流量為主的媒體網站中尤為常見。上面的圖就是一個活生生血淋淋(?)的例子,這組關鍵字取自 Engadget 的這篇文章。
同一個概念以不同的單字形式標籤
以英文做標籤的網站中很容易發生這種情形,因為一個概念在不同的詞性表現下就是不同的單字,因而成為不同的標籤關鍵字。例如我想要加上「部落格」這個標籤,用英文寫時就可能同時把名詞、動詞、動名詞,還有單數型複數型全部通通填上去,像這樣: blog
, blogging
, blogs
。
同一個概念以不同的語言標籤
這個就是多語言使用者的苦惱了。例如像我這樣的宅宅就會因為以下 動畫
, アニメ
, Anime
, 動画
等標籤到底要用哪個好而苦惱,而最後的結果通常就是全部都用。
這三種情形都是用不同的方式去標籤同一個概念,雖然初衷是為了將來方便搜尋,但往往反而導致搜尋時的困難。考慮以下情形:假設我的一篇部落格文章用了 win7
與 Window 7
作為標籤,另一篇主題近似的文章卻是用了 Windows 7
與 win-7
作為標籤。這種不一致性會讓讀者在前篇文章中點下 win7
這個標籤連結時,無法將所有主題相關的文章列出。
另外一個問題則是製造不必要的心力浪費。因為沒有一個標準來選擇用哪個單詞做標籤,因此也不知道自己將來要回頭找資料時,會用哪個單詞來做搜尋,只好想辦法把所有自己想得到的所有相關字一股腦兒全部填入。
為了避免上述問題,雖然目前每個網站的標籤機制如同多頭馬車各行其道,制定一個自己個人使用的標籤習慣(或規範)倒是可行的一個作法。這個問題相信困擾的不只是我,上網找了一下,有兩篇值得參考的文章,第一個是 Calvin C. Yu 所寫的 Taggin Guidelines (在投影片中的第 13 頁),主要原則如下:
- 簡練
- 小寫
- 單數
另一個參考是由 Hutch Carpenter 所提出的,他認為標籤機制應該有個標準,而這個標準就是複數詞組,逗號分隔 (Multi Word, Comma Seperated)。
而我自己所使用標籤的標準如下:
簡便性
盡量簡單。
方便輸入。所以標籤時會以英文為主,例如用 browser
而不用 瀏覽器
。
自己容易想起。通常第一個想到的字詞就是了。
使用容易理解的詞。
一致性
一個概念一個詞。所以 動畫
, アニメ
, Anime
, 動画
就只剩下用一個 anime
。
小寫。同樣是為了方便輸入。
用單數,用名詞。當然,這免不了會遇到例外情況,主要還是要依照使用情境判斷。
人名的標記盡可能從主人。例如使用 菅野よう子
而非 菅野洋子
, 韩寒
而非 韓寒
。除非該人名的原始拼寫方式我不熟悉,例如我總是想不起來戈巴契夫怎麼拼,那就直接用戈巴契夫
吧。同樣是以自己方便為最高原則。
除非是自己口語常用的縮寫,不然不使用縮寫作標記。nds
win7
xbox360
都很好理解,可是用 resp
req
來做為 response
request
標籤的替代,就太過頭了。現在連寫程式都不鼓勵這種縮寫了。
格式
省略單字間空白。也就是說用 macosx
而非 mac os x
。不過英文人名是例外;日常用字如 smartphone
我們容易斷字,相對的人名如果省略空白有時候就不容易逆推。其他如果空白省略會造成歧異的話,也應該保留空白於關鍵字中。
以逗號區隔關鍵字。正確來說應該是以「逗號加空白」區隔關鍵字。
以上便是我個人使用的標籤規則。如果你有不錯的標籤習慣,也歡迎一起討論分享。
]]>「標籤」功能,在今天的網站應用中,已經是極為普遍的一種機制,甚至在許多桌面的應用上也可以見到「標籤」的蹤跡。在不同的地方,標籤可能有不同的名字,例如:
tag
: Picasa, Flickr, YouTube, amazon, WordPress, 豆瓣label
: Gmail, Bloggerkeyword
: iPhoto, Aperturehashtag
: Twitter, Google+category
: 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 到現在,都六、七年了,標籤功能其實仍舊處於混沌未明的時代。
]]>除了在 Finder 中按空白鍵外,有時候在 Terminal 底下工作時,也可以利用指令來開啟快速檢視,這樣可以減少鍵盤滑鼠的切換以提升效率。開啟的指令如下:
$ qlmanage -p [FILE]
把 [FILE] 替換成要開啟的檔名即可。不過這指令也不算短,要更方便的話,可以在 ~/.bashrc
中加入以下指令別名 (alias),這樣只要輸入 ql [FILE]
就可以立刻檢視了:
sh
alias ql='qlmanage -p'
對了,設定檔 .bashrc 預設在 Mac OS X 中是不起作用的,可以參考這篇文章來讓 .bashrc work。
快速檢視本身支援文字、圖片、音樂、影片等基本檔案格式,至於其他不支援的格式則只會顯示一個大大的檔案 icon。透過以下 Plugin 可以增加快速檢視支援的檔案格式,安裝很簡單,只要將下載下來的 *.qlgenerator
檔案放到下面路徑之一:
(Macintosh HD)/Library/QuickLook/
安裝給本機的所有使用者~/Library/QuickLook/
只安裝給自己使用BetterZip 2 - The Next Generation of Archiving
上面這個外掛預設是暗色背景的,如果喜歡白色背景的(如同文章開頭那張圖),可以考慮下面這個修改版本:
farfanoide/BetterZ-QuickLook-plugin-theme-for-Lion
qlcolorcode - A Quick Look plugin for source code with syntax highlighting - Google Project Hosting
按空白鍵檢視文字檔案內容很方便,可是有時候如果想要複製文字,就得另外再開啟文字編輯,相當麻煩。在 Terminal 下輸入以下指令,可以讓你在快速檢視文字檔時,也能選取想要的片段,然後按 Cmd+C 複製出來。
$ defaults write com.apple.finder QLEnableTextSelection -bool TRUE; killall Finder
在快速檢視時,右上方會有個按鈕讓你以預設關連的應用程式開啟。如果你想要用其他的應用程式開啟,例如用 Photoshop 開啟圖檔,那麼只要按著右上方按鈕不放,就會出現選單供你選擇想要開啟的應用程式。
選取檔案,然後按下 Cmd+Opt+Y
,就可以直接以全螢幕方式進入快速檢視,這對影像或是影片格式相當有用。
其實也可以在按著 Opt 的狀態下按空白鍵進入全螢幕的快速檢視,不過像我有安裝 Alfred, Opt+空白鍵
預設會啟動 Alfred 的輸入視窗,因此就沒辦法用來開啟快速檢視了。
Byte Order Mark 在 UTF-16 Big Endian 是 "FE FF",Little Endian 是 "FF FE"。其中 Mac 系統主要是 Big Endian, PC 系統則是使用 Little Endian。
UTF-8 由於本身特性,不管 Big Endian 或 Little Endian,其 BOM 一律為 "EF BB BF"。
不過個人建議,文字文件要儲存的話,盡量以 UTF-8 格式存。而以 UTF-8 儲存的文件,盡量不要放 BOM 進去。為什麼呢?因為 UTF-8 的一個特色就是能與 ASCII 系統相容,如果文件中沒有包含非拉丁字元的話;要是放了 BOM 進去,就破壞了這相容性。
:set bomb
:set nobomb
:set bomb?
$ grep -rIl $'^\xEF\xBB\xBF' [FILE]
$ grep -rIl $'^\xEF\xBB\xBF' [FILE] | xargs sed -i 's/^\xEF\xBB\xBF//;g'
$ iconv -f [FROM_ENCODING] -t [TO_ENCODING] [FILE]
其中 ENCODING 的部份可以是以下數值:
更多 ENCODING 代碼可以透過 iconv --list
查詢。
不過每個人常用網站不同,在軟體的預設網站之外一定有遺珠之憾。好在 Alfred 也有提供自定搜尋選項的功能,以下就來分享我自己設定的 Alfred Custom Search。
這些 Custom Search 的安裝方式很簡單,只要將底下以 alfredapp 開頭的一串文字複製起來,叫出 Alfred 的指令視窗(預設是使用 ⌥Space),貼上剛才複製的文字,按下 Enter 就好了。
dict
alfredapp://customsearch/Yahoo%21%E5%A5%87%E6%91%A9%E5%AD%97%E5%85%B8%E6%9F%A5%E8%A9%A2/dict/utf8/url=http://tw.dictionary.yahoo.com/dictionary?p={query}
fcc
alfredapp://customsearch/Search%20Flickr%20CC%20for/fcc/ascii/url=http://www.flickr.com/search/?q={query}&l=commderiv&ss=0&ct=0&mt=all&w=all&adv=1
time
time tokyo
或 time 東京
的語法來查詢當地時間。
alfredapp://customsearch/%E7%9B%AE%E5%89%8D%E7%9A%84%E6%99%82%E9%96%93%EF%BC%8C%E5%9C%A8/time/ascii/url=http://time.is/{query}
gs
alfredapp://customsearch/Search%20Grooveshark%20for/gs/ascii/url=http://grooveshark.com/#/search?q={query}
so
alfredapp://customsearch/Search%20Stack%20Overflow%20for/so/ascii/url=http://stackoverflow.com/search?q={query}
adc
alfredapp://customsearch/Search%20ADC%20for/adc/ascii/url=http://developer.apple.com/library/mac/search/?q={query}
pchome
alfredapp://customsearch/Search%20PChome%20for/pchome/ascii/url=http://ecshweb.pchome.com.tw/search/v1/{query}
mas
alfredapp://customsearch/%10Search%20Mac%20App%20Store%20for/mas/ascii/url=macappstore://ax.search.itunes.apple.com/WebObjects/MZSearch.woa/wa/search?q={query}
books
alfredapp://customsearch/Search%20%E5%8D%9A%E5%AE%A2%E4%BE%86%E6%9B%B8%E7%B1%8D%20for/books/ascii/url=http://search.books.com.tw/exep/prod_search.php?cat=BKA&key={query}&apid=books&areaid=head_wel_search
bkl
alfredapp://customsearch/Search%20%E5%8D%9A%E5%AE%A2%E4%BE%86%20for/bkl/ascii/url=http://search.books.com.tw/exep/prod_search.php?cat=all&key={query}&apid=books&areaid=head_wel_search