最优雅的UI用于分类项目?

时间:2008-11-11 16:01:03

标签: user-interface usability

我有一组项目,用户需要以多种方式进行分组/分类。举个例子,假设它是汽车的集合,用户希望通过以下方式对它们进行分类:

  • 颜色(红色,银色,蓝色,黑色等)
  • 体形(舱口,轿车,轿跑车,旅行车等)
  • 座位(2,4,5,6等)

您是否曾经遇到过这样一种特别优雅的方式,让用户可以完全自由地定义自己的类别和价值观?

显然,在任何设计中都需要做出许多权衡。例如,可学习的设计可能效率不高,反之亦然。或者某些设计可能比其他设计对房地产要求更高。有些人的发展时间要比其他人长得多。

无论如何,如果你已经看到 - 或设计 - 一个很好的模式,我会有兴趣听到它。如果你有截图,那就更好了。

尝试澄清:标签确实是对事物进行分类的一种很好的方式,但在我看到的所有实践中,只有一个级别的标记。用户通常不会在该类别中定义类别/属性和项目的值。要使用上面的示例和StackOverflow的标记,您可以将汽车标记为“蓝色”,“轿车”,“4”等。 StackOverflow没有固有的知识,一个项目不能被标记为“轿车”和“轿跑车”。

我正在考虑的界面需要知道这种事情,因此用户定义的属性建议更符合我的想法。我只是想找到一个具体的例子,说明如何优雅地实现这种系统(在桌面应用程序中,如果这会产生影响)。

那更清楚吗?如果没有,请发表评论,我会再次澄清。 :)

7 个答案:

答案 0 :(得分:9)

答案 1 :(得分:4)

您可以使用标签:让用户标记每个图像,然后显示按标签排序的一组图像缩略图。

也许比标签更高级的是一组用户定义的属性。例如,不是用“红色”标记图片,而是使用属性“color = red”标记它。

答案 2 :(得分:1)

我建议使用类似于stackoverflow上的标记系统。允许他们标记图像,然后按标签或标签组合进行查看。查看页面时,显示图像的缩略图和其下方图像的标签。

编辑:根据您的说明,您可以使用标签类型。当用户定义自己的标记时,他们需要指定它从哪个类型派生。考虑到这一点,您需要将限制标记仅限于该类型中的一种。

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

当用户想要添加标记图像时,请使用TagType下拉标记。然后在下面给出TabSubTypes的另一个下拉列表。为他们提供“定义新”选项,这将导致文本框出现在他们可以键入新类型的位置。

我还将这些选项添加到上下文菜单中,以便用户可以在树状菜单中查看标记。 即使图像聚焦,您也可以抓取按键,查找TagType和TagSubType名称并显示可供选择的选项菜单。如果未找到匹配项,请提供“单击以添加新标记”选项。

答案 3 :(得分:1)

分面分类是一种对未得到应有关注的事物进行分类的方法。它允许您定义互斥类别,并为每个类别的每个内容项提供值。例如,您可以按地区,品种,年份和价格对葡萄酒进行分类,用户可以通过选择一个或多个类别中的一个或多个值来进行搜索。例如,“40美元以下的法国或意大利红葡萄酒”。假设您手头有类别数据,这通常是最强大的分类和搜索技术,比尝试将所有内容都适合单个层次结构或依赖标记更好。

要在后端实现此功能,请为每个类别创建表,并使用不同的值填充它们。然后创建一个表,其中包含每个类别表的外键以及包含该内容的字段。这类似于维度数据库设计中的“事实”表。

要了解这在UI中的工作原理,请查看Facetmap。我不能保证他们的产品,因为我没有使用它,但我已经为我自己的应用程序实现了类似的结果。

http://www.facetmap.com/

同样,分面分类背后的思想值得更多关注,我知道我在这里并没有做到这一点。对于Clay Shirky对该主题的娱乐性处理,请听“Ontology被高估”:

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

答案 4 :(得分:0)

我可能会误解你的问题,但如果不是确切的标签是什么(如在堆栈溢出和gmail中)则不是很相似。或者你在寻找比这更具体的东西吗?

答案 5 :(得分:0)

好吧,我倾向于继续这么做,但Tagging只是你可以用三重图表做的一个例子,例如使用RDF。 [插入维基百科的链接]。现在我知道你说根据嵌套要求,标签是不够的,但没有理由你不能进一步“标记标签”作为彼此的孩子。

Car|Tagged_with|Red
Red|Is_child_of|Colours

通过这种方式,您的数据仍然非常灵活,实际上数据和元数据之间的界限变得模糊。

答案 6 :(得分:0)

这似乎是一个需要解决的问题,尤其是让用户将维度数据分类为更多,更简化的维度(组或类别,无论您想要调用它们),以便他们可以通过简化的类别更好地可视化数据/尺寸。

用户需要能够导入列表,并且都为列表创建维度,然后根据这些维度直观地对列表进行分类。创建维度包括命名/重命名维度(列名称),然后添加/重命名/删除该维度的类别(列项目)。应该无缝地在创建新维度之间切换,并使用用户创建的新维度单独或批量分类列表项目。然后,用户可以使用包含新创建的类别的附加列或列(维度)导出列表。

这个想法是,只需拥有一个表并向其添加列就会更加用户友好。理想情况下,您可以选择列表中的项目,然后从用户创建的维度列表中为它们分配一个经过验证的类别项目,该列表将自动填充可以导出的只读表格。输入=列表,输出=综合分类列表。无需电子表格。