it-swarm.com.de

Gute Lösungen für Boolesche Filter mit Unterbedingungen

Ich suche eine gute und klar dargestellte Lösung für einen Booleschen Filter mit Unterbedingungen (max. 5 Stufen). Am besten eine Variante mit Tabellen. Viele Apps verwenden den typischen Mac OSX-Filter (siehe Screenshot). Es ist jedoch schwierig, sich für eine Vielzahl von Bedingungen einen Überblick zu verschaffen.

Die Filter werden oft gewechselt. Daher ist es möglich, die Filtereinstellung in einer Voreinstellung zu speichern. Die Benutzer haben eine ausreichende Computererfahrung.
enter image description here

9
sysscore

Boolesche Logik ist von Natur aus schwierig, insbesondere wenn sie komplex wird (bis zu fünf Ebenen verschachtelt!). Es ist möglicherweise nicht möglich, eine einzige Darstellung zu erstellen, die sowohl leicht verständlich als auch kompakt genug ist, um einen Überblick zu bieten. Möglicherweise müssen Sie zwei Darstellungen haben.

Platzraubend, aber leichter zu verstehen

Die OSX-Lösung ist keine schlechte. Es ist wahrscheinlich eine gute Idee, "Alle" und "Alle" durch "Und" und "Oder" zu ersetzen, da letztere in der Umgangssprache nicht eindeutig sind. Es ist wahrscheinlich auch einfacher, verschachtelte Bedingungen/Kriterien mit der eingerückten Hierarchie zu sehen und zu verfolgen, als mit Klammerpaaren.

Das OSX ist trotz der Hierarchie eine ziemlich textintensive Darstellung. Vielleicht würden Ihre Benutzer mit einer grafischen Darstellung , die eine Sanitär- oder elektrische Metapher verwendet, besser abschneiden. Solche Darstellungen können Redundanzen und Widersprüche in den Gedanken des Benutzers besser hervorheben, um ihm zu helfen, die Kriterien zu verfeinern, um etwas Nützliches zu sein. In meiner Antwort auf Intuitive Schnittstelle zum Erstellen von Boolescher Logik? finden Sie Forschungsergebnisse und Prototypen dieses Ansatzes.

Abfrage anhand eines Beispiels ( [~ # ~] qbe [~ # ~] ) hat ziemlich viel Erfolg gehabt . Zu diesem Zweck verwenden Benutzer dieselben Formulare, die sie normalerweise verwenden, füllen sie jedoch mit Feldwerten aus, die die Arten von Ergebnissen darstellen, die sie einschließen möchten. Es behandelt ORs und ANDs besonders gut, aber Handhabungsbereiche (z. B. Größer als) können kludgey sein. Darüber hinaus kann die Verwendung von QBE zum Festlegen verschachtelter Kriterien sehr zeitaufwändig sein.

In jedem Fall kann die Benutzeroberfläche zum Speichern und Abrufen solcher Darstellungen/Filter der Benutzeroberfläche zum Speichern und Abrufen einer Datei sehr ähnlich sein.

Kompakte Übersicht

Die oben genannten Optionen verbrauchen alle viel Immobilien, sodass Ihr Problem der Bereitstellung eines Überblicks (z. B. in einer Liste gespeicherter Filter) nicht gelöst wird. Zu diesem Zweck ist es aufgrund seiner Kompaktheit schwierig, eine Zeichenfolge mit verschachtelten Klammern zu schlagen. Dies ist für Ihre Benutzer möglicherweise nicht so schlimm, da sie Erfahrung mit Excel haben. Wenn sie ihre eigenen Formeln schreiben, sind sie möglicherweise daran gewöhnt. Möglicherweise können Sie sogar Excel-ähnliche Symbole (z. B. =,>, <) anstelle von Wörtern für eine kompaktere Darstellung verwenden. Darüber hinaus können Sie die Vertrautheit der Benutzer mit Excel-Farbcodierung übereinstimmender Klammern nutzen, um die Verschachtelung besser zu visualisieren. Ich würde redundante Codierung untersuchen, z. B. die Verwendung von Unterstrichen. Vielleicht so etwas wie:

Nest parentheses matched by underscore

Cooper und Reimanns About Face enthält ein Beispiel dafür, wie eine solche Zeichenfolge zum Anpassen der Kriterien leicht bearbeitet werden kann (zumindest die zweite Ausgabe; die aktuelle Ausgabe wurde nicht angesehen). Für komplexe Logik ist es jedoch besser, die Zeichenfolge zu verwenden, um die Übersicht bereitzustellen. Wenn der Benutzer auf ein geeignetes Steuerelement klickt, wird die Zeichenfolge zu einer vollständigen Darstellung wie oben aufgeführt erweitert.

Sie können versuchen, die Zeichenfolge und die vollständige Darstellung automatisch zu vereinfachen, indem Sie sie mit logischen Operationen „optimieren“ und Redundanz beseitigen, indem Sie einer Reihe von Konvertierungen folgen. Die Kriterien in Ihrem OSX-Beispiel könnten beispielsweise wie folgt aussehen:

Criteria logically reduced to 2 levels

Dies hat den Nachteil, dass der Benutzer die Darstellung möglicherweise nicht mehr als gleichwertig mit seinem eigenen Konzept der Kriterien erkennt. Nicht jeder ist mit seiner symbolischen Logik vertraut. Habe ich erwähnt, dass dies eine von Natur aus schwierige Aufgabe ist? Sie möchten es unbedingt testen.

7

Die beiden vorgeschlagenen Lösungen haben meiner Meinung nach beide Nachteile. Die wichtigste ist, dass es notwendig ist, die boolesche Logik zu verstehen und wie man boolesche Bedingungen aufbaut. Ich akzeptiere voll und ganz, dass dies innerhalb der Fähigkeiten der Endbenutzer liegt, aber es ist immer noch keine gute UX-Lösung - es lässt den Benutzer wie den Computer denken, was immer eine schlechte Sache ist.

@colmcq ist richtig - es braucht eine sehr gute Lösung, um es zu lösen. Aus UX-Sicht wäre jedoch eine Art prädiktives Texteingabefeld sinnvoll, in das ich schreiben kann: "Der Name ist Prozac oder der Name ist Fluoxitin, und das Schlüsselwort enthält Schwangerschaft". Ausgewählte Optionen werden angezeigt, wenn Sie "the" eingeben Name ist/enthält/beginnt mit "den ganzen Weg. Nehmen Sie also pseudo-englischen Text und verwandeln Sie ihn in eine boolesche Logik. Auch die Interpunktion ist wichtig, wobei das Komma angibt, dass sowohl die vorherigen Einträge als auch das Schlüsselwort wahr sein sollten.

Das ist bei weitem nicht perfekt - es müsste viel überprüft und geklärt werden. Aber ich denke, dies ist der "richtige" Weg, um diese komplexe boolesche Logik zu erstellen - das englische Format zu verwenden und es zu übersetzen. Das ist nicht unbedingt das, was Sie für diesen Projektgedanken tun sollten, da er äußerst komplex ist.

2

Ich habe keine Ahnung von Best Practices, aber für mich wäre ein Raster eine weitaus bessere Lösung als das obige Bild.

Fünf Ebenen können fünf Zeilen sein.

Jede Spalte kann ein Feldname sein (Auswahl per Dropdown).

Links von jeder 'Zelle' kann ein Indikator für 'enthält', 'Übereinstimmungen' usw. sein.

Zwischen den Zeilen können Sie 'und', 'oder' Bedingungen hinzufügen.

0
GUI Junkie

Ich glaube ich habe eine Antwort:

enter image description here

Der Benutzer kann eine einfache Bedingung angeben und bei Bedarf so oft wie erforderlich eine boolesche Bedingung hinzufügen (durch Hinzufügen einer Bedingung wird ein doppelter Feldsatz angezeigt - wie gezeigt). Suche senden nach zuletzt qualifizierter Bedingung.

Dieser Ansatz wirklich vereinfacht die Schnittstelle und sollte genügend Kontrolle bieten.

edit: Die einzigen zwei Attribute, die ich nicht aufgenommen habe, sind alle und alle, die ich für überflüssig halte

0
colmcq