1 00:00:02,400 --> 00:00:07,160 Data visualizations are a powerful tool  for communicating and exploring data. 2 00:00:07,160 --> 00:00:10,440 However, for blind or low vision  users most data visualizations   3 00:00:10,440 --> 00:00:14,720 are unusable because they are  not designed to support them. 4 00:00:14,720 --> 00:00:18,760 A simple remedy is to provide text  descriptions of visualizations. 5 00:00:18,760 --> 00:00:23,720 This however is frequently omitted  especially for complex scientific charts. 6 00:00:23,720 --> 00:00:26,800 In this paper we introduce a  method to automatically generate   7 00:00:26,800 --> 00:00:31,160 text descriptions for upset. UpSet is  a visualization technique for set data   8 00:00:31,160 --> 00:00:34,680 that is commonly used in scientific publications. 9 00:00:34,680 --> 00:00:39,880 In our paper we analyze the types of patterns  that are frequently found in upset plots and   10 00:00:39,880 --> 00:00:44,520 develop a library that detects these patterns  and generates text descriptions for them. 11 00:00:44,520 --> 00:00:46,880 In this video, however, we want to show you how   12 00:00:46,880 --> 00:00:50,440 text descriptions are integrated  into our web-based upset tool. 13 00:00:50,440 --> 00:00:54,360 It leverages our library to  dynamically generate text descriptions. 14 00:00:54,360 --> 00:00:59,280 We will be using a dataset about movies for  the purpose of this demonstration. This data   15 00:00:59,280 --> 00:01:08,680 set shows the overlap between movie genres. We can  change sorting or add and remove sets to the plot. 16 00:01:08,680 --> 00:01:12,360 We can reveal the text description  in a side panel. We initially see   17 00:01:12,360 --> 00:01:16,200 a short description which shows  important at-a-glance information,   18 00:01:16,200 --> 00:01:21,400 such as a description of the data set  and the most important intersections. 19 00:01:21,400 --> 00:01:23,840 For more in-depth information, we can display a   20 00:01:23,840 --> 00:01:28,320 long description. This longer form of  the text description contains multiple   21 00:01:28,320 --> 00:01:33,420 subsections which are all navigable  with a keyboard and a screen reader. 22 00:01:33,420 --> 00:01:40,400 VoiceOver: Introduction. Heading level  3. Upset introduction. This is an upset   23 00:01:40,400 --> 00:01:43,360 plot that shows the intersections of six sets. 24 00:01:43,360 --> 00:01:50,360 Heading level 3. Data set properties. The  data set contains 17 sets and 6,303 elements   25 00:01:50,360 --> 00:01:55,480 of which six sets are shown in the plot. Heading level 3. Set properties. List 2   26 00:01:55,480 --> 00:02:02,400 items. Bullet. The largest set is action with  503 elements followed by thriller with 492. 27 00:02:03,000 --> 00:02:07,360 Heading level 3. Intersection properties.  List three items. Bullet. The plot is sorted   28 00:02:07,360 --> 00:02:10,600 by size and descending order. Bullet. There are 28 non-empty   29 00:02:10,600 --> 00:02:15,880 intersections all of which are shown  in the plot. Clickable. Voice over off. 30 00:02:15,880 --> 00:02:19,920 Our text descriptions are meant to be  a template to be improved by humans.  31 00:02:19,920 --> 00:02:24,560 We can provide a title and a caption to tell  a story about the data set, but also provide   32 00:02:24,560 --> 00:02:29,240 information about the data set that we can  leverage to improve our text descriptions. 33 00:02:29,240 --> 00:02:35,080 The text description itself provides details  about the data set, the properties of the sets,   34 00:02:35,080 --> 00:02:39,520 and the properties of the intersections.  We also provide higher level information   35 00:02:39,520 --> 00:02:46,280 in the statistical information  and trend analysis sections. 36 00:02:46,280 --> 00:02:51,040 Note that the text description updates  as we change the upset plot. For example,   37 00:02:51,040 --> 00:02:59,840 when we remove a set or change the  sort order, the text is updated. 38 00:03:02,920 --> 00:03:08,480 Additionally, the generated text can be  edited and saved. This enables users to   39 00:03:08,480 --> 00:03:13,320 leverage the generated text as a baseline  for them to provide additional insights,   40 00:03:13,320 --> 00:03:23,120 modify generated stats, or simply  create their own text description. 41 00:03:23,120 --> 00:03:27,480 Oour text generation is available as a  language-independent web API, as well   42 00:03:27,480 --> 00:03:33,480 as a python package. For example,we can generate  text descriptions for a Python version of upset.  43 00:03:33,480 --> 00:03:46,560 Here we generate an upset plot  using the UpSetPlot python package. 44 00:03:46,560 --> 00:03:49,920 We can retrieve text descriptions  in markdown format by simply calling   45 00:03:49,920 --> 00:03:54,680 one function after creating the upset object. 46 00:03:54,680 --> 00:03:56,800 This text can now be customized and,   47 00:03:56,800 --> 00:04:01,200 for example, included as the text  description for a figure in a paper. 48 00:04:01,200 --> 00:04:05,280 To learn more about the validation of  our approach please check out the paper. 49 00:04:05,280 --> 00:04:06,840 Thank you for watching our video.