2012年8月8日 星期三

標籤的用法/善用標籤幫你的部落格文章或相片分類

傳統分類像政黨或宗教: 一旦你歸屬於某一個, 就不能再歸屬於另一個。 標籤則像大學社團: 隨便你參加幾個。 幫部落格上的文章或自己的相片貼標籤 (tagging) 就像幫書本分類一樣, 方便日後一口氣抓出所有相關文章或相片, 只不過它比傳統分類更彈性靈活。 幫文章 (圖片) 選標籤時請注意幾個原則:

  1. 從讀者的角度思考: 「一位讀者如果點選這個標籤, 他可能會對本站的哪幾篇文章 (哪幾張圖片) 有興趣?
  2. 從不同的角度/面向思考, 各給一個標籤。 例如一張圖片可能既屬於 「森林」 也屬於 「建築物」 又屬於 「美國」; 另一張圖片可能既有 「動物」 也有 「彩虹」 又有 「交通工具」。
  3. 只曾在一篇文章或一張圖片出現過, 而且以後沒什麼機會再出現的標籤, 沒什麼用處。 一個標籤, 應該要有機會 (將來可能) 被好幾篇文章 (圖片) 用到, 才有意義。
  4. 相反地, 一個幾乎每篇文/每張圖都會用到的標籤, 因為太欠缺選擇力, 可能也沒有什麼用處。 例如 「宇宙」 在 NASA 的網站, 或是 「自由軟體」 在自由軟體基金會的網站, 都很欠缺選擇力, 可能就不是很好的標籤。
  5. 避免同時使用幾個近乎相同的標籤 -- 例如有時用 「微軟」 有時用 「Microsoft」 有時用 「MS」。 用哪一個都可以, 只要建構網站的社群同意就好; 重點是要保持一致性。
  6. 標籤可以批次更改。 不需要怕犯錯 (例如害怕違反本頁所列的原則) 一開始大家的標法不太一致, 並沒有關係。 經過一段時日, 文章 (圖片) 夠多、 標籤夠多之後, 再來視狀況調整也沒關係。
  7. 幫文章 (圖片) 選標籤, 有助於日後調整網站的架構 (有層次的樹狀結構)。 但是網站架構並不一定要跟其中幾個標籤完全吻合。 就像書本的 「目次」 (table of contents) 跟 「索引」 之間不需要有必然的對應關係一樣 -- 索引當中某個詞彙 (例如 「偏導數」 或 「太陽能」) 所拉出來的所有頁面, 並不見得一定都要收錄到同樣標題的章節當中。

更具體的例子, 請見 善用 Piwigo 的標籤功能整理相片。 以下是一些 「如何使用標籤」 的參考文章。也請搜尋 「tagging practice」。

  1. Tag, You're It! Best Practices for Tagging on the Web
  2. Top 10 Tagging Best Practices for Anything Web 2.0

1 則留言:

  1. 感謝貴哥這篇文章部份地方給我的啟發!

    * 受啟發的地方是:

    1. 一個標籤,牽涉的範圍要適當,太大 (給出太多結果,沒有作用) 或太小 (使用者可能一開始不知道這麼精確的字詞存在,特別是它想要做 "模糊查詢" 時) 都不適當。
    2. americanbar.org 的建議
    ( https://www.americanbar.org/publications/law_practice_home/law_practice_archive/lpm_magazine_articles_v36_is1_pg26.html )
    中提到,"Think in terms of the “Five Ws” - who, what, when, where and why",好建議,但我覺得比較精確的設計是 "Colon classification"
    ( https://en.wikipedia.org/wiki/Colon_classification )
    裡面的 "personality" (the most specific subject), "matter", "energy", "space, and "time" (PMEST).

    * 但我覺得不正確的地方是:

    armchairtheorist.com 裡面
    ( https://web.archive.org/web/20140116173230/http://armchairtheorist.com/top-10-tagging-best-practices-for-anything-web-20/ )
    提到的,"Use nouns whenever possible"。因為名詞是具象的而不是抽象的,在描述一個目標時,具象和抽象都是必要的。只用名詞代表只描述一個目標的部份屬性,而缺少其他屬性的描述,是不全面的。更何況,抽象的字詞,所帶來的組合更大,這在底下會繼續說明。

    * Enumerative classification 和 Faceted classification 是最主要的兩大資訊分類方式.

    我最近看到 Faceted classification
    ( https://en.wikipedia.org/wiki/Faceted_classification )
    才發現這門領域,裡面提到 Enumerative classification 和 Faceted classification 這兩個最主要的分類方式。

    1. Enumerative classification 是傳統樹狀分類 (hierarchy)。這類似貴哥說的一本書的 "table of contents" 的概念。像圖書館書架上常常看到的阿拉伯數字分類法,找書時很方便 (改良版的 Dewey Decimal Classification),那個其實是嘗試把人類所有知識完全做樹狀分類。但是我們都知道這種樹狀分類常常有結構上的問提,就是貴哥提到的多重屬性,一張 "美國森林小木屋" 的照片到底要分類在 森林?建築?美國?

    2. Faceted classification 是用多重屬性來描述一個完整的概念,最後可以構建出一個清楚的目標。這類似貴哥說的一本書的 "index" 的概念,還有相片標籤的概念。但是貴哥說的標籤,其實還不夠完整,光是用標籤會有 "ambiguous" 跟 "semantic wrong" 的問題。"ambiguous" 的問題,比如 "apache" 可能是指 "A member of a group of North American Indian peoples",可能是指 "Apache HTTP Server" 也可能是指 "Boeing AH-64 Apache attack helicopter"。"semantic wrong" 的問題比如,要給 "rails" package 加標籤,如果是這樣加 "programming-language, ruby",這樣是語意錯誤的 (更別說 ruby 可以代表一種礦石,或是女性人名) 因為 rails 本身跟程式語言的 "直接關聯性" 很低,儘管你同時用 "programming-language ruby" 2 個標籤還是找的到資料。正確的方式是這樣加 "programming-language::ruby",甚至在 debtags 是這樣加的 "devel::lang:ruby" ( "lang:ruby" 要視為一整體,完整的一個 value,而不是多一個階層的關係)。

    所以光是 tag (標籤) 還不夠,要引進 { facet: facet value } 的概念。這也是我這裡主要要說的東西,我以 Debian 上管理 package tags 的 "debtags" 做例子
    ( https://wiki.debian.org/Debtags/FAQ )
    ,比如,用 "aptitude show vlc" 後,會看到最底下出現這些資訊

    Tags: hardware::storage, hardware::storage:dvd, hardware::video, implemented-in::c, implemented-in::c++, interface::graphical, interface::x11, protocol::ipv6, protocol::ssl, role::program, scope::application, sound::compression, sound::player, uitoolkit::ncurses, uitoolkit::qt, use::converting, use::playing, works-with-format::TODO, works-with-format::mp3, works-with-format::oggtheora, works-with-format::oggvorbis, works-with-format::wav, works-with::TODO, works-with::audio, works-with::video, x11::application

    根據 debian debtags 網站的說明,每個 facet tag 是由 facet name 和 facet value 組成的,寫法是 name::value. 然後就可以用 "aptitude search ?tag(key::value)" (甚至可以同時放好幾個 facet tag) 找到資料。
    而且可以發現,vlc 並沒有用 "video player" 或 "audio player" 來做 tag 喔!而是用各種 facet tag (facet name and facet value),用最 "atomic" 的方式來構件出完整的目標 - vlc program。

    所以我想 debian debtags 的這個例子,可以說明,單用 tag (標籤) 是不夠的,不僅 "ambiguous",還可能造成 "semantic wrong"。
    Drupal 我不知道但是 joomla 我試過,可以在 tag name 裡面使用特殊字元,包括 "::",所以不須修改 CMS 系統的任何部份,以後只須用類似 "magazine:time" 這樣的方式,精確/正確 的找到資料。

    回覆刪除