2008-11-11 13 views
8

मेरे पास उन वस्तुओं का संग्रह है जिन्हें उपयोगकर्ता को कई तरीकों से समूह/वर्गीकरण करने की आवश्यकता है।वस्तुओं को वर्गीकृत करने के लिए सबसे सुरुचिपूर्ण यूआई?

  • रंग (लाल, चांदी, नीले, काले, आदि)
  • शरीर का आकार: एक उदाहरण के लिए, मान लें कि यह कारों का एक संग्रह है और उपयोगकर्ता उन्हें निम्न तरीकों से वर्गीकृत करने के लिए चाहता है (पक्षियों के बच्चे, सेडान, कूप, stationwagon, आदि)
  • सीटें (2, 4, 5, 6, आदि)
  • आदि

क्या तुमने कभी ऐसा करने का एक विशेष रूप से सुरुचिपूर्ण तरीका के पार चलो है यह उपयोगकर्ता को अपनी श्रेणियों और मूल्य को परिभाषित करने की पूरी आजादी देता है es?

जाहिर है, किसी भी डिजाइन में बनाने के लिए कई व्यापार-बंद होंगे। उदाहरण के लिए, एक सीखने योग्य डिजाइन कुशल नहीं हो सकता है, और इसके विपरीत। या कुछ डिज़ाइन दूसरों की तुलना में रियल एस्टेट की अधिक मांग कर सकते हैं। और कुछ दूसरों की तुलना में विकसित होने में काफी समय लगेगा।

भले ही, यदि आपने देखा है - या डिज़ाइन किया गया है - इसके लिए एक अच्छा पैटर्न है, तो मुझे इसके बारे में सुनना होगा। यदि आपके पास स्क्रीनशॉट हैं, तो बेहतर है।

स्पष्टीकरण पर प्रयास: टैग वास्तव में चीजों को वर्गीकृत करने का एक शानदार तरीका है, लेकिन मैंने देखा है कि सभी प्रत्यारोपण में टैगिंग का केवल एक स्तर है। उपयोगकर्ता आमतौर पर उस श्रेणी में श्रेणी/संपत्ति और आइटम का मूल्य परिभाषित नहीं करता है। ऊपर दिए गए उदाहरण और स्टैक ओवरफ्लो की टैगिंग का उपयोग करने के लिए, आप एक कार को "नीला", "सेडान", "4", और इसी तरह टैग करेंगे। StackOverflow में कोई अंतर्निहित ज्ञान नहीं होगा कि एक आइटम को "सेडान" और "कूप" दोनों के रूप में टैग नहीं किया जा सका।

इंटरफ़ेस जो मैं सोच रहा हूं उसे उस तरह की चीज़ों को जानने की आवश्यकता होगी, इसलिए उपयोगकर्ता द्वारा परिभाषित विशेषताओं का सुझाव जो मैं सोच रहा हूं उसके अनुरूप है। मैं इस तरह के सिस्टम को सुंदर ढंग से कार्यान्वित किया जा सकता है (डेस्कटॉप ऐप में, अगर इससे कोई फर्क पड़ता है) का एक ठोस उदाहरण खोजने के लिए उत्सुक हूं।

क्या यह कोई स्पष्ट है? यदि नहीं, तो एक टिप्पणी छोड़ दो और मैं फिर से स्पष्टीकरण करने की कोशिश करूंगा। :)

+0

मुझे लगता है कि आप टैग के बारे में जानते थे और कंक्रीट यूआई के बारे में सोच रहे हैं, नहीं? चित्रों को कहां रखना है, टैग के लिए कैसे पूछना है, किस कंटेनर का उपयोग करना है और इसी तरह। –

उत्तर

9

ऐसा लगता है कि आपके पास दो कार्य हैं: कार्य 1 ऑब्जेक्ट्स को वर्गीकृत करें, जहां वस्तुओं की एक श्रृंखला के लिए, उपयोगकर्ता प्रत्येक आयाम (विशेषता) पर प्रत्येक श्रेणी (मान) निर्दिष्ट करता है। कार्य 2: आयाम और श्रेणियां बनाएं और संशोधित करें।

डेटा मॉडलर्स, ऑब्जेक्ट-ओरिएंटेड प्रोग्रामर और डेटाबेस डिज़ाइनर के बाहर, आयामों और श्रेणियों का विचार समझने के लिए एक बहुत कठिन अवधारणा है। आपको उन उपयोगकर्ताओं के लिए तैयार रहना चाहिए जिन्हें श्रेणियों और आयामों के बीच अंतर नहीं समझना चाहिए। हालांकि, उपयोगकर्ता आमतौर पर टेबल को समझेंगे, जहां प्रत्येक कॉलम एक आयाम होता है (जिसमें कई श्रेणियां होती हैं) और प्रत्येक पंक्ति एक वस्तु होती है। जितना संभव हो, टेबल के साथ काम करें।

पहला मुख्य प्रश्न उपयोगकर्ता शोध के माध्यम से पता लगाने के लिए है कि कार्य 1 और 2 एकीकृत या अलग हैं।

यदि कार्य एकीकृत होते हैं, तो उपयोगकर्ता अक्सर बिना किसी विचार के तरल से तरलता से स्विच कर रहे हैं, तो एक यूआई डिज़ाइन ऑब्जेक्ट-बाय-आयाम तालिका है, लेकिन एक खाली कॉलम प्रदान करें (या "सम्मिलित करें" बटन) उपयोगकर्ता को आयाम जोड़ने की अनुमति देता है। कॉलम हेडर में आयाम नाम होता है, जिसे उपयोगकर्ता संपादित कर सकता है। शीर्षलेख के तहत उस आयाम की श्रेणियों को सूचीबद्ध करने वाली एक जगह है। प्रत्येक श्रेणी का नाम संपादन योग्य है और एक नई श्रेणी जोड़ने के लिए एक खाली रेखा (या सम्मिलित करें बटन) है। नीचे वर्गीकृत करने के लिए ऑब्जेक्ट्स हैं, प्रत्येक आयाम के लिए प्रत्येक कॉलम में एक ड्रॉपडाउन सूची के साथ।

उपयोगिता परीक्षण में, ड्रॉपडाउन सूची से चयन करने के बजाय, श्रेणी सूची में किसी श्रेणी पर क्लिक करके किसी ऑब्जेक्ट की श्रेणी सेट करने का प्रयास करने वाले उपयोगकर्ताओं के लिए देखें। श्रेणी सूची को इसे रोकने के लिए दृश्यमान रूप से अलग दिखाई दें।

आप श्रेणी सूचियों को छिपाने/दिखाने के लिए एक बटन चाहते हैं, क्योंकि इसमें बहुत सी जगह हो सकती है (यहां तक ​​कि स्क्रॉलबार का उपयोग करते समय भी)। यहां तक ​​कि यदि कार्य 1 और 2 कड़ाई से एकीकृत हैं, तो मुझे लगता है कि आप पाएंगे कि उपयोगकर्ता कभी-कभी श्रेणी सूची को बाहर से प्राप्त करना चाहते हैं।

यदि आपको लगता है कि कार्य 1 और 2 अलग हैं, शायद ही कभी एक साथ किया जा रहा है (उदाहरण के लिए, उपयोगकर्ता आमतौर पर अपने आयाम सेट करते हैं तो वस्तुओं का एक समूह वर्गीकृत करते हैं), तो आप एक अलग विंडो (या पृष्ठ) से बेहतर हो जाते हैं। प्रत्येक कार्य के लिए, हालांकि उनके बीच आगे और आगे नेविगेट करना आसान होना चाहिए। उदाहरण के लिए, जबकि उपयोगकर्ता आम तौर पर अपने आयामों को पहले से स्थापित कर सकते हैं, तो शायद ही कभी उन्हें संशोधित करें, कभी-कभी उपयोगकर्ता को एहसास होगा कि एक असामान्य वस्तु को वर्गीकृत करते समय किसी को आयाम के लिए एक नई श्रेणी की आवश्यकता होती है, ताकि आप "श्रेणी जोड़ें" मेनू आइटम प्रदान कर सकें जो उपयोगकर्ता को लेता है श्रेणियों को प्रबंधित करने के लिए, मौजूदा आयाम के लिए डाली गई एक नई श्रेणी के साथ उपयोगकर्ता नाम देने के लिए प्रतीक्षा कर रहा है।

कार्य 1 के लिए विंडो पहले की तरह ही है: प्रत्येक आयाम के लिए ड्रॉपडाउन सूचियों के कॉलम वाले ऑब्जेक्ट्स की तालिका, लेकिन श्रेणी सूचियों, आयाम नामों के संपादन, और एक नया आयाम जोड़ने की क्षमता को छोड़ दें। यह सबसे प्रभावी है यदि उपयोगकर्ता को वर्गीकरण या पुन: वर्गीकरण की आवश्यकता वाले ऑब्जेक्ट्स को स्कैन करने की आवश्यकता है, या यदि आम तौर पर उपयोगकर्ता को किसी अन्य ऑब्जेक्ट के विरुद्ध एक ऑब्जेक्ट की तुलना करने की आवश्यकता होती है (उदाहरण के लिए, ऑब्जेक्ट को वर्गीकृत करने का निर्णय लेना)। हालांकि, यदि उपयोगकर्ता का कार्य वास्तव में को को किसी बाहरी समय की जानकारी के आधार पर एक ऑब्जेक्ट को वर्गीकृत करता है (उदाहरण के लिए, कागज़ से जानकारी को ट्रांसक्रिप्ट करना), फिर तालिका के बजाय एक फॉर्म पर विचार करें, जिसमें सूची बॉक्स की एक सरणी दिखाई दे रही है, एक प्रत्येक विशेषता के लिए। प्रत्येक श्रेणी को सेट करने के लिए प्रत्येक सूची बॉक्स के एक क्लिक के साथ, यह ड्रॉपडाउन सूचियों का उपयोग करने से तेज़ है।

कार्य 2 के लिए विंडो कार्य के लिए शीर्षलेख भाग की तरह हो सकती है। यह कार्य 1 के लिए उपयोग की जाने वाली तालिका के अनुरूप है और उपयोगकर्ताओं को एक बार में कई आयामों के लिए श्रेणियां देखने की अनुमति देता है, जिससे उन्हें सर्वश्रेष्ठ वर्गीकरण योजना (उदाहरण के लिए, उन्हें खोजने में सहायता करें जहां अनिवार्य रूप से एक ही श्रेणी दो अलग-अलग आयामों में दिखाई देती है)। यदि अंतरिक्ष एक समस्या है, तो, मास्टर-विस्तार संबंध में श्रेणियों की सूची दिखाते हुए आयामों की एक सूची पर विचार करें।

टास्क 2 के लिए उपयोगकर्ता शक्ति और लचीलापन में अंतिम पेड़ की तरह नियंत्रण है। पेड़ के मूल स्तर में आयाम होते हैं और पदानुक्रम में अगले चरण में प्रत्येक आयाम के भीतर श्रेणियां शामिल होती हैं। मुख्य लाभ यह है कि यह श्रेणियों पर निर्भर पर आयामों का समर्थन करता है। उदाहरण के लिए, किसी के पास वाहन प्रकार आयाम हो सकता है जिसमें कार, नाव, विमान इत्यादि जैसी श्रेणियां शामिल हैं। कार श्रेणी के लिए, उसके बाद किसी श्रेणी के साथ बॉडी टाइप आयाम हो सकता है जो केवल उस श्रेणी पर लागू होता है (कूप, हैचबैक इत्यादि।)। एक श्रेणी से शाखाओं द्वारा पेड़ में निर्भर आयामों का प्रतिनिधित्व किया जाता है। नतीजा यह है कि वृक्ष प्रत्येक स्तर के साथ आयामों और श्रेणियों के बीच वैकल्पिक होता है।

आयामों से श्रेणियों को अलग-अलग आइकन, और शायद अलग-अलग फ़ॉन्टों के साथ-साथ कुछ लोगों को यह बताने के लिए महत्वपूर्ण है कि पदानुक्रम में वैकल्पिक कदम अलग-अलग होते हैं (उदाहरण के लिए, यदि आप आयाम बनाते हैं, तो आपको कम से कम दो श्रेणियां बनाना चाहिए)। फिर भी, यदि उपयोगकर्ता श्रेणियों के साथ आयामों को भ्रमित करते हैं, तो आसान पुनर्प्राप्ति का साधन प्रदान करें (उदा।, उन्हें "आयामों" का एक समूह को दूसरे आयाम के नीचे स्थानांतरित करने की अनुमति दें, जो पूर्व को श्रेणियों में परिवर्तित कर दें)।

मैं लोगों को आयामों और श्रेणियों जैसे अमूर्तताओं के साथ फिर से कठिनाई पर जोर देना चाहता हूं। यहां तक ​​कि जब वे इसे समझते हैं, तब भी लोगों को आम तौर पर सभ्य आयामों और श्रेणियों को बनाने में बड़ी कठिनाई होती है। जटिल इंटरैक्शन हैं जिनके परिणामस्वरूप आपको सोचने की आवश्यकता है (उदाहरण के लिए, जब किसी श्रेणी को नए आयाम में स्थानांतरित किया जाता है तो ऑब्जेक्ट वर्गीकरण का क्या होता है?)। यदि आप प्रत्येक उपयोगकर्ता को अपने स्वयं के उपन्यास आयाम बनाने की उम्मीद कर रहे हैं, तो आप गंभीरता से अपने पूरे दृष्टिकोण को फिर से सोचना चाहेंगे। यह एक स्वाभाविक रूप से जटिल कार्य है।

यदि संस्कृति, संगठन या डोमेन (जैसे कि हमारे पास कारों के लिए है) में पहले से ही प्रासंगिक बहु-आयामी योजना है तो उपयोगकर्ता बेहतर काम करता है। बेशक, यदि पहले से ही कोई योजना है, तो आप इसे खोज सकते हैं और इसे अपने उत्पाद में आयामों के डिफ़ॉल्ट सेट के रूप में स्थापित कर सकते हैं। टास्क 2 को विशेषज्ञ उपयोगकर्ताओं को इसे ठीक-ठीक करने की अनुमति देने के लिए केवल समर्थित होना आवश्यक है।

+0

एक प्रभावशाली विस्तृत उत्तर। :) एक तस्वीर/स्केच ने मुझे कुछ पहलुओं को बेहतर तरीके से देखने में मदद की होगी, लेकिन यह अभी भी बहुत अच्छा है। मेरे मामले में, मुझे उप-आयामों का समर्थन करने की आवश्यकता नहीं है, लेकिन आपकी अधिकांश सलाह अभी भी लागू होती है। हालांकि, मैं किसी भी उत्तर को स्वीकार करने से पहले इसे एक हफ्ते या इससे पहले दे दूंगा। –

+0

अंत में इस पर वापस आएं और पुनः पढ़ें - और सही ढंग से समझा - आपका उत्तर। यह वास्तव में प्रभावशाली है। समय लेने के लिए शुक्रिया। मैं इसे अब स्वीकार किए गए उत्तर के रूप में चिह्नित करूंगा। –

0

मैं आपको प्रश्न गलत समझ सकता हूं, लेकिन यह बिल्कुल समान नहीं है अगर बिल्कुल टैग नहीं हैं (जैसे स्टैक ओवरफ़्लो और जीमेल में)। या आप उससे कुछ अधिक विशिष्ट खोज रहे हैं?

4

आप टैग का उपयोग कर सकते हैं: उपयोगकर्ता प्रत्येक छवि को टैग करें, फिर टैग द्वारा क्रमबद्ध छवि थंबनेल का एक सेट दिखाएं।

शायद टैग से अधिक उन्नत उपयोगकर्ता परिभाषित विशेषताओं का एक सेट होगा। उदाहरण के लिए, "लाल" के साथ एक तस्वीर टैग करने के बजाय, इसे "रंग = लाल" विशेषता के साथ टैग करें।

1

मैं स्टैक ओवरफ्लो पर एक जैसा टैगिंग सिस्टम सुझाता हूं। उन्हें छवियों को टैग करने की अनुमति दें, फिर टैग, या टैब के संयोजन से देखें। पृष्ठ को देखते समय, छवियों के थंबनेल और उसके नीचे की छवि के टैग दिखाएं।

संपादित करें: आपकी स्पष्टीकरण के आधार पर आपके पास टैग के प्रकार हो सकते हैं। जब उपयोगकर्ता अपना टैग परिभाषित करता है, तो उन्हें यह निर्दिष्ट करना होगा कि यह किस प्रकार से निकला है। इसे ध्यान में रखते हुए, आपको केवल उस प्रकार के टैग को सीमित करने की आवश्यकता होगी।

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

जब कोई उपयोगकर्ता एक टैग टैग जोड़ना चाहता है तो उसे टैगटाइप के साथ ड्रॉप डाउन दें। इसके नीचे TabSubTypes के साथ एक और ड्रॉप छोड़ दें। उन्हें "नया परिभाषित करें" का विकल्प दें जो टेक्स्टबॉक्स को प्रदर्शित करने का कारण बनेंगे जहां वे एक नए प्रकार में टाइप कर सकते हैं।

मैं इन विकल्पों को संदर्भ मेनू में भी जोड़ूंगा ताकि उपयोगकर्ता पेड़ शैली मेनू में टैग देख सकें। जब कोई छवि केंद्रित होती है तब भी आप कीप्रेस को पकड़ सकते हैं, टैगटाइप और टैग्सब टाइप नाम देखें और विकल्पों का मेनू चुनें। यदि कोई मिलान नहीं मिलता है, तो "नया टैग जोड़ने के लिए क्लिक करें" विकल्प प्रदान करें।

1

Faceted वर्गीकरण उन चीजों को वर्गीकृत करने का एक तरीका है जो ध्यान देने योग्य नहीं हैं। यह आपको परस्पर अनन्य श्रेणियों को परिभाषित करने और प्रत्येक श्रेणी के लिए प्रत्येक सामग्री आइटम के लिए मूल्य प्रदान करने की अनुमति देता है। उदाहरण के लिए, आप क्षेत्र, विविधता, विंटेज और मूल्य द्वारा वाइन वर्गीकृत कर सकते हैं, और एक उपयोगकर्ता एक या अधिक श्रेणियों में एक या एक से अधिक मूल्यों को चुनकर अपनी खोज का संचालन करेगा। उदाहरण के लिए, "$ 40 के तहत फ्रेंच या इतालवी लाल रंग"। मान लें कि आपके पास श्रेणी डेटा है, यह अक्सर एक शक्तिशाली पदानुक्रम और खोज तकनीक उपलब्ध है, जो कि एक पदानुक्रम में सब कुछ फिट करने या टैग पर भरोसा करने की कोशिश करने से बेहतर है।

बैकएंड पर इसे लागू करने के लिए, प्रत्येक श्रेणी के लिए टेबल बनाएं और उन्हें अलग-अलग मानों से भरें। फिर एक सारणी बनाएं जिसमें सामग्री को शामिल करने वाले फ़ील्ड के साथ प्रत्येक श्रेणी तालिका में एक विदेशी कुंजी हो। यह आयामी डेटाबेस डिज़ाइन में "तथ्य" तालिका के समान है।

यह जानने के लिए कि यह यूआई में कैसे काम कर सकता है, Facetmap पर एक नज़र डालें। मैं उनके उत्पाद के लिए झुकाव नहीं कर सकता क्योंकि मैंने इसका उपयोग नहीं किया है, लेकिन मैंने अच्छे परिणामों के साथ अपने स्वयं के अनुप्रयोगों के लिए कुछ ऐसा ही लागू किया है।

http://www.facetmap.com/

फिर, faceted वर्गीकरण से संबंधित विचारों और अधिक ध्यान लायक है, और मैं जानता हूँ कि मैं उन्हें न्याय यहाँ नहीं कर रहा हूँ। क्ले से इस विषय की एक मनोरंजक उपचार के लिए, सुनने के लिए "आंटलजी ओवररेटेड है":

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

+0

* जो मैं बता सकता हूं * फ़ेसमैप साइट पर, उनके उत्पाद का उद्देश्य 'उपयोगकर्ताओं' को बैकएंड एक्सएमएल फ़ाइल लिखना अधिक है, जिसका अनुवाद उनके ऐप द्वारा किया जाता है और कई अलग-अलग प्रारूपों में प्रस्तुत किया जाता है। बिल्कुल ठीक नहीं था कि मैं क्या सोच रहा था। मैं गैर-तकनीकी उपयोगकर्ताओं को श्रेणियों को परिभाषित करना चाहता हूं, आदि –

+0

दूसरे शब्दों में, बैक एंड ठीक लगता है, लेकिन यह सामने वाला अंत है जिसके बाद मैं हूं। –

0

ठीक है, ठीक है, मैं बहुत अधिक इस बारे में पर जाने के लिए करते हैं, लेकिन टैगिंग बस का एक उदाहरण है क्या आप एक ट्रिपल ग्राफ के साथ कर सकते हैं, उदाहरण के लिए आरडीएफ का उपयोग करना। [विकिपीडिया को लिंक डालें]। अब मुझे पता है कि आपने कहा है कि टैग घोंसले की आवश्यकताओं के आधार पर पर्याप्त नहीं हैं, लेकिन कोई कारण नहीं है कि आप एक दूसरे के बच्चों के रूप में "टैग टैग" आगे नहीं बढ़ा सकते हैं।

Car|Tagged_with|Red 
Red|Is_child_of|Colours 

इस तरह अपने डेटा अल्ट्रा लचीला रहता है, और वास्तव में डेटा है, और क्या मेटाडाटा है धुंधला हो जाता है क्या के बीच विभाजन।

0

ऐसा लगता है कि विशेष रूप से उपयोगकर्ता को आयामी डेटा को आगे, अधिक सरलीकृत, आयाम (समूह या श्रेणियां जो भी आप उन्हें कॉल करना चाहते हैं) में वर्गीकृत करने के लिए संबोधित करने की आवश्यकता है ताकि वे सरलीकृत के माध्यम से डेटा को बेहतर तरीके से देख सकें श्रेणियों/आयाम।

उपयोगकर्ता को एक सूची आयात करने में सक्षम होना चाहिए, और दोनों सूची के लिए आयाम बनाएं और फिर उन आयामों के आधार पर सूची को सहजता से वर्गीकृत करें। आयामों का निर्माण आयाम (कॉलम का नाम) नामकरण/नामकरण और फिर उस आयाम की श्रेणियों (कॉलम आइटम) को जोड़ना/पुनर्नामित करना/निकालना शामिल होगा। यह नए आयाम बनाने और उपयोगकर्ता द्वारा बनाए गए नए आयामों का उपयोग करके व्यक्तिगत रूप से या थोक में सूची आइटम को वर्गीकृत करने के बीच स्विच करने के लिए निर्बाध होना चाहिए। उपयोगकर्ता तब बनाई गई श्रेणियों वाले अतिरिक्त कॉलम या कॉलम (आयाम) के साथ सूची निर्यात कर सकता है।

विचार यह है कि यह अधिक उपयोगकर्ता के अनुकूल होगा कि इसमें केवल एक टेबल हो और इसमें कॉलम जोड़ना होगा। आदर्श रूप से आप सूची में आइटम का चयन करने में सक्षम होंगे, और उसके बाद उपयोगकर्ता द्वारा बनाई गई आयाम सूची से एक मान्य श्रेणी आइटम असाइन करें जो निर्यात की जा सकने वाली केवल पढ़ने वाली तालिका को स्वत: पॉप्युलेट करेगा। इनपुट = सूची, आउटपुट = व्यापक रूप से वर्गीकृत सूची। कोई स्प्रेडशीट आवश्यक नहीं है।

संबंधित मुद्दे