Skip to main content

Empty strings

how to manage empty strings in W1
Created on April 11|Last edited on April 11


Case study: List of strings including ""

Here's a screenshot of the default Table appearance using Weave 0—look at the rightmost column, "all votes". Each row contains a list of key: value pairs, where the key is the id of the vote (they are ordered here, but they don't have to be) and the value is one of four labels for the vote: "", "NOT_ENOUGH_INFO", "SUPPORTS", or "REFUTES".

In Weave 0, here are the column settings for "all votes":


In Weave 1, the default display for "all votes" becomes a histogram (screenshot first):

The settings are:


With Weave 1, I can also get the "all votes" column into this nice form (though I don't think I can see the keys? just the values)

To summarize/prioritize the issues:
  • P0: intentional + correct default view: W1 defaults to the StringHistogram instead of the explicit content view. This could be ok, except in this particular case, W1 counts the empty string as a "null" as an extra label, which doesn't actually exist in my label options (NOT_ENOUGH_INFO, SUPPORTS, REFUTES). This again could be ok—maybe I defined the labels poorly to not have an explicit "null"—except the W1 StringHistogram sorts the bars in order from largest to smallest value—you can see this if you page through the arrows below. This makes the "all votes" column very hard to read, if not actively misleading—we want a stable fixed single ordering across all rows, or at least to give the user that option, so they can compare the "all votes" column at a glance
  • P1: show keys explicitly: if I logged strings as keys instead of the list of ordered integer keys, would they show up? hard to tell—would be nice to have that option
  • P2: StringHistogram UX/customization: ok now I'm getting into feature requests, just since we're here, it would be nice to set a fixed custom x scale on the "all votes" column, in addition to the fixed ordering of bars—and maybe have different colors for the different labels...? eventually

Live examples


CF 20% Sample
1


Case study: List of Histograms

This is the correct Table in W0 (screenshot)—this is grouped by "vote" and we're focused on the second-from right column "votes" now:

Here it is in W1 (screenshot):

Here the problem is super super subtle—if you look at the x-axis scale, the counts for W0 (top screenshot) are much much much higher than for W1 (second screenshot). I think this is because W0 is correctly grouping by the winning vote first, then aggregating across all the histograms in the list (hundreds of votes total), where as W1 is actually just showing the first histogram (max 5 votes, including those "null"s we discussed in the first part).
I can imagine a user wanting both behavior patterns. In this case, I think the correct one/the one I want is the W0 one—group by "vote", then aggregate across the entire list—not show a scrollable list of the hundreds of individual histograms. I don't know how to get this UX flow back in W1, but perhaps the missing MultiStringHistogram has something to do with it.
W0 settings:



W1 settings:




Live example


CF 20% sample
1


Note: Filter Nulls option doesn't solve this

This is cool, I haven't noticed it before! Also cool that it's on by default! But because we have an extra list in this case, it doesn't solve my problem :(