2008-11-11 29 views
8

我有一些用戶需要以多種方式進行分組/分類的項目集合。舉一個例子起見,讓我們說這是汽車的集合,用戶希望它們歸類在以下幾個方面:用於分類項目的最優雅的用戶界面?

  • 顏色(紅色,銀色,藍色,黑色等)
  • 體型(艙口,轎車,跑車,旅行車等)
  • 座位(2,4,5,6等)

你有沒有遇到過這樣的一個特別優雅的方式這使得用戶可以完全自由地定義他們自己的類別和價值ES?

顯然,在任何設計中都會有很多折衷。例如,可學習的設計可能效率不高,反之亦然。或者某些設計可能比其他設計對房地產的要求更高。有些人需要更長的時間才能發展。無論如何,如果你已經看到 - 或設計 - 這是一個很好的模式,我很樂意聽到它。如果你有截圖,那就更好了。

嘗試澄清:標籤確實是對事物進行分類的好方法,但是在我看到的所有實踐中,只有一個級別的標籤。用戶通常不會定義類別/屬性,並且該項目的值在該類別中。要使用上面的示例和StackOverflow的標籤,您可以將汽車標記爲「藍色」,「轎車」,「4」等等。 StackOverflow沒有固有的知識,即一件物品不能被標記爲「轎車」和「轎跑車」。

我在想的界面需要知道那種東西,所以用戶定義的屬性建議更符合我的想法。我只是想找到一個具體的例子來說明如何實現這種系統的優雅(在桌面應用程序中,如果這有所作爲)。

這是否更清晰?如果不是,留下評論,我會再次澄清。 :)

+0

我想你知道標籤,想知道具體的用戶界面,不是嗎?就像在哪裏放置圖片一樣,如何查詢標籤,使用哪些容器等等。 – 2008-11-11 16:09:26

回答

9

聽起來您有兩項任務:任務1對對象進行分類,對於一系列對象,用戶在多個維度(屬性)的每一個上爲每個對象分配一個類別(值)。任務2:創建和修改維度和類別。

除了數據建模師,面向對象的程序員和數據庫設計師之外,維度和類別的概念是一個非常難以理解的概念。您應該爲不瞭解類別和維度之間差異的用戶做好準備。但是,用戶通常會理解表,其中每列是一個維度(包含多個類別),每行都是一個對象。儘可能使用表格。

第一個關鍵問題是通過用戶研究來弄清楚程度,任務1和2是整合還是分離。

如果這些任務是集成的,用戶通常不需要太多思考就可以流暢地從一個切換到另一個,那麼一個UI設計就是有一個逐維的表格,但提供一個空白列(或「插入」按鈕)允許用戶添加一個尺寸。列標題具有用戶可以編輯的維度名稱。標題下方是列出該維度類別的空間。每個類別名稱都是可編輯的,並且有一個空白行(或插入按鈕)來添加新類別。在下面是要分類的對象,每個對象在維度的每個列中都有一個下拉列表。

在可用性測試,注意用戶試圖通過點擊一個類別在類別列表中,而不是從下拉列表中選擇要設置對象的類別。使分類列表在視覺上分開以防止出現這種情況。

您可能需要一個按鈕來隱藏/顯示類別列表,因爲這可能會(使用滾動條時甚至)採取了很多的空間。即使任務1和2緊密集成,我認爲您會發現用戶可能希望有時候將類別列表排除在外。

如果您發現任務1和2是分開的,很少一起完成(例如,用戶通常設置其維度,然後對一堆對象進行分類),那麼您最好使用單獨的窗口(或頁面)對於每個任務來說,儘管在它們之間來回導航應該很容易。例如,當用戶可能通常會建立自己的尺寸事先然後很少修改它們,有時用戶會意識到人們需要一個維度的新類別而分類,一個不尋常的對象,所以你提供需要的用戶「添加類」菜單項到「管理類別」窗口,爲當前維插入一個新類別,等待用戶提供名稱。

任務1的窗口與以前相同:包含每個維度的下拉列表列,但排除類別列表,編輯維度名稱以及添加新維度的能力的對象表。如果用戶需要掃描需要分類或重新分類的對象,或者通常用戶需要比較一個對象與其他對象(例如,決定如何對對象進行分類),則這是最有效的。但是,如果用戶的任務是真正限於基於外界的信息在每次只分類對象之一(例如,轉錄從紙張的信息),然後再考慮一個形式,而不是一個表格,顯示的列表框的數組,一個爲每個屬性。通過單擊每個列表框來設置每個類別,這比使用下拉列表更快。

爲任務2的窗口可以像任務之一報頭部分。它與用於任務1的表一致,並允許用戶一次查看多個維度的類別,幫助他們找出最佳的分類方案(例如,幫助他們找到基本上同一類別在兩個不同維度中出現的地方)。但是,如果空間是一個問題,那麼請考慮一個維度列表,每個維度都顯示主從關係中的類別列表。

在用戶功率和任務2靈活性最終是樹狀控制。樹的根級包含維度,層次結構中的下一步包括每個維度內的類別。主要優勢在於它支持尺寸爲,依賴於類別上的。例如,可以具有包括類別如汽車,小船,平面等的車輛類型維度。對於汽車類別,可以具有僅適用於該類別的類別的體型類型(Coupe,Hatchback等)。 )。相關維度通過分類表示在樹中。結果是樹在每個級別的尺寸和類別之間交替。

重要的是要通過不同的圖標在視覺上區分的類別從維度,也許,也許不同的字體,以及-something告訴用戶層次結構中的交替步驟是質的不同(例如,如果您創建一個維度,然後你應該創建至少兩個類別)。即便如此,如果用戶將維度與類別混淆(例如,允許他們將一些「維度」移動到另一維度下,將前者轉換爲類別),提供一種簡單恢復的方法。

我想再次強調人們對尺寸和類別等抽象的困難。即使他們確實瞭解它,人們通常很難自行創建體面的維度和類別。有些複雜的交互可能會導致需要仔細考慮(例如,當類別移動到新維度時,對象分類會發生什麼?)。如果您希望每個用戶真正創造自己的新穎維度,那麼您可能需要認真重新考慮您的整個方法。這是一項固有的複雜任務。

如果在文化,組織或領域(例如我們的汽車)中已經有相關的多維方案,用戶會做得更好。當然,如果已經有了一個方案,那麼你可以研究它並將其作爲你產品中的一組默認尺寸安裝。任務2只需要被支持以允許專家用戶對其進行微調。

0

我可能會誤解你的問題,但不是非常相似,如果不是確切的標籤是什麼(如在堆棧溢出和Gmail)。或者你在尋找比這更具體的東西?

4

您可以使用標籤:讓用戶標記每個圖像,然後顯示一組按照標籤排序的圖像縮略圖。

也許比標籤更先進會是一組用戶定義的屬性。例如,不是用「紅色」標記圖片,而是使用「color = red」屬性來標記它。

1

我會建議一個類似於這裏的標籤系統在stackoverflow。允許他們標記圖像,然後查看標記或標籤組合。在查看頁面時,顯示圖像縮略圖和其下方圖像的標籤。

編輯:根據你的說明,你可以有多種類型的標籤。當用戶定義自己的標籤時,他們需要指定它從哪個類型派生。考慮到這一點,您將需要限制標籤只有一種類型。

TagType { Color, Seats, BodyType, Seats } 
TabSubType { Color-Red, Color-Blue, Color-Green, Seats-2, Seats-4, ... } 

當用戶想要添加標籤圖像時,給他們一個下拉的標籤類型。下面給出了另一個TabSubTypes下拉菜單。給他們一個選擇「定義新的」,這將導致文本框出現在他們可以輸入新類型的地方。

我也將這些選項添加到上下文菜單,以便用戶可以查看樹樣式菜單中的標籤。 即使圖像聚焦時,您也可以抓住按鍵,查找TagType和TagSubType名稱並顯示可供選擇的選項菜單。如果找不到匹配項,請提供「點擊添加新標籤」選項。

1

分面分類是一種對未得到應有關注的事物進行分類的方法。它允許您定義相互排斥的類別併爲每個類別的每個內容項目提供一個值。例如,您可以按地區,品種,年份和價格對葡萄酒進行分類,用戶可以通過選擇一個或多個類別中的一個或多個值來進行搜索。例如,「法國或意大利的紅色低於40美元」。假設你手頭有類別數據,這通常是可用的最強大的分類和搜索技術,比試圖將所有內容都放入單個層次結構或依靠標籤更好。

要在後端實現此功能,請爲每個類別製作表格並填寫不同的值。然後創建一個表,每個類別表都有一個外鍵,以及一個包含內容的字段。這與維度數據庫設計中的「事實」表類似。

要了解在UI中這可以如何工作,請查看Facetmap。我不能擔保他們的產品,因爲我沒有使用它,但是我爲自己的應用程序實現了類似的功能,並取得了良好的效果。

http://www.facetmap.com/

再次,面式分類背後的想法應該得到更多的關注,我知道我沒有做他們正義在這裏。對於一個有趣的處理由克萊·舍基的主題,聽「本體是高估」:

http://itc.conversationsnetwork.org/shows/detail470.html

+0

*從facetmap網站上我可以告訴*的信息來看,他們的產品更多的是針對'用戶'編寫後端XML文件,然後由他們的應用翻譯並以多種不同格式呈現。不完全是我想的。我希望非技術用戶定義類別等。 – 2008-11-14 15:06:33

+0

換句話說,後端聽起來很好,但它是我所追求的前端。 – 2008-11-14 15:07:08

0

好了,好了,我傾向於去上這個太多,但標記只是一個例子什麼你可以使用三重圖,例如使用RDF。 [插入鏈接到維基百科]。現在我知道你說根據嵌套的要求,標籤是不夠的,但沒有理由不能進一步「標籤」作爲彼此的孩子。

Car|Tagged_with|Red 
Red|Is_child_of|Colours 

這樣,你的數據仍然超靈活,真是之間是什麼數據,什麼是數據變得模糊的鴻溝。

0

這似乎是一個需要解決的問題,尤其是要讓用戶將維度數據分類爲更加簡化的維度(無論您想要調用它們的組或類別),以便通過簡化來更好地可視化數據類別/尺寸。

用戶需要能夠導入列表,併爲列表創建維度,然後基於這些維度直觀地對列表進行分類。創建維度將包括命名/重命名維度(列的名稱),然後添加/重命名/刪除該維度的類別(列項)。它應該無縫地在創建新維度和實際使用用戶創建的新維度單獨或批量分類列表項目之間進行切換。然後用戶可以將列表導出爲包含新創建類別的附加列或列(維度)。

這個想法是,它會更方便用戶,只是有一個表和添加列。理想情況下,您可以選擇列表中的項目,然後從用戶創建的維度列表中爲其分配驗證的類別項目,該列表將自動填充可導出的只讀表格。輸入=列表,輸出=全面分類列表。不需要電子表格。