SlowGuess/ACL_2020_OCR huggingface dataset:
Token Granularity for Prediction. We consider three different token granularity settings for mapping between TPSpecs and actual token sequences on both the input and output side: PAIR, SINGLE and SPLIT. In the PAIR strategy, the token for the slot name and slot value are concatenated to create one single token of the form: "slot_name:slot_value". In SINGLE, each slot name and slot value is predicted independently. In SPLIT, slot and value names are split into actual words. For example, predicting that the slot "x_axis_scale" takes on the value "log" under the PAIR strategy involves one prediction, "x_axis_scale:log". Under SINGLE, this involves two predictions, "x_axis_scale" and then "log". Under SPLIT, the expected prediction becomes "x", "axis", "scale", "... and "log".
7.2 Evaluation Metrics
We evaluate performance using two metrics: Exact Match (EM) and Slot change F1. Exact Match measures how accurate the models are at updating the plots exactly as expected. It is defined as the percentage of datapoints whose current TPSpec, when updated with the model-predicted  $\Delta$  TPSpec, can exactly match the gold target TPSpec. Slot change F1 measures accuracy on individual slots. Let  $S_{p}$  be the set of slot-value pairs in the predicted  $\Delta$  TPSpec and  $S_{g}$  be the set of slot-value pairs in the gold  $\Delta$  TPSpec, precision  $P = \frac{|S_p\cap S_g|}{|S_p|}$ , recall  $R = \frac{|S_p\cap S_g|}{|S_g|}$  and  $F1 = \frac{2PR}{P + R}$ .
7.3 Performance (P1)
We report Exact Match performance in Table 2, and Slot change F1 in Table 3. From the tables, it is clear that seq2seq-based models generally perform better than classification models. A possible reason is that, by modeling  $\Delta$ TPSpec as a whole in the decoder, the models implicitly learned dependencies between different slots and thus improved the overall performance. Also, neural classification methods including RNN+MLP and Transformer+MLP displayed poor performance, not even beating MaxEnt with bag-of-words. Further, as an ablation study, the S2S-NoState and S2S-NoUtterance performed significantly worse than S2S-TXT, confirming that both the current state and the user utterance are necessary to seq2seq methods in performing this task.
Both S2S-TXT and S2S-PLOT+TXT perform the best at the SINGLE token granularity. On this granularity, there is no significant difference between their performance on exact match. For slot F1, S2S-TXT even performs significantly better than S2S-PLOT+TXT, with  $p = 0.033$  in an unequal variance T-test, which implies that for seq2seq methods adding the image modality does not add much on top of the text modality in this task.
Table 4 shows performance of the best performing methods, S2S-PLOT+TXT and S2S-TXT, per plot type. We ran 5 experiments and reported the means and standard deviations in order to gain a better comparison between their performances. We can see that, as expected for our above results, for most plot types, performance of the two methods is similar.
Due to the BPE encoding used in BERT, SINGLE and PAIR inputs are tokenized to be almost identical as SPLIT, therefore we do not report their performance.
Plot type	S2S-TXT	S2S-PLOT+TXT
Exact Match	Slot F1	Exact Match	Slot F1
Line	0.602±0.026	0.889±0.005	0.605±0.011	0.888±0.006
Bar	0.572±0.022	0.873±0.004	0.565±0.020	0.866±0.004
Pie	0.685±0.009	0.896±0.005	0.691±0.005	0.894±0.008
Contour	0.618±0.006	0.916±0.004	0.624±0.015	0.913±0.004
Streamline	0.610±0.016	0.901±0.009	0.598±0.023	0.895±0.007
Histogram	0.476±0.048	0.886±0.007	0.505±0.026	0.890±0.019
Scatter	0.492±0.026	0.849±0.014	0.492±0.017	0.851±0.014
Matrix	0.717±0.022	0.944±0.006	0.683±0.033	0.939±0.004
3D Surface	0.733±0.047	0.910±0.023	0.768±0.041	0.928±0.023
Total	0.613±0.005	0.893±0.002	0.613±0.005	0.890±0.002
7.4 Agreement Among Workers (P2)
In order to further inspect the quality and difficulty of our dataset, we sampled a subset of 444 partial dialogs. Each partial dialog consists of the first several turns of a dialog, and ends with a Descriptor utterance. The corresponding Operator response (plot update) is omitted. Thus, the human has to predict what the Operator (the plotting agent) will plot, given this partial dialog. We created a new MTurk task, where we presented each partial dialog to 3 workers and collected their responses. We calculated the agreements between the newly collected responses and the original Operator response, results shown in Table 5.
The cases in which the majority of the workers (3/3 or 2/3) exactly match the original Operator, corresponding to the first two rows, happen  $72.6\%$  of the time. The cases when at least 3 out of all 4 humans (including the original Operator) agree, corresponding to row 1, 2 and 5, happen  $80.6\%$  of the time. This setting is also worth considering because the original Operator is another MTurk worker, who can also make mistakes. Both of these numbers show that a large fraction of the utterances in our dataset are intelligible implying an overall good quality dataset.
Fleiss' Kappa among all 4 humans is 0.849; Cohen's Kappa between the original Operator and the majority among 3 new workers is 0.889. These numbers indicate a strong agreement as well.
7.5 Models vs. Gold Human Performance (P3)
The gold human performance was obtained by having one of the authors perform the same task as described in the previous subsection, on a subset
Table 4: Exact match and Slot F1 score by plot type, under the SINGLE granularity.
Original	New	Proportion
✓	✓✓✓	55.1%
✓	✓✓×	17.5%
✓	✓××	2.4%
✓	×××	0.0%
×	✓✓✓	8.0%
×	✓✓×	10.3%
×	✓××	4.4%
×	×××	2.3%
Total	100.0%
Table 5: Agreement evaluation result.  $\sqrt{}$  stands for "exact match with majority" and  $\times$  for "no exact match with majority". The majority is obtained slot-wise, i.e. the majority for each slot is obtained separately.
of 180 samples. The result is a  $76.8\%$  exact match. That is, our best model is 15.5 percentage points behind gold human performance, showing there is room for models to improve on this dataset.
7.6 Comparison to Performance on Image Editing
The best accuracy reported on the aforementioned conversational image editing dataset was  $74\%$  on intent classification, ignoring actual attribute values (Manuvinakurike et al., 2018a). This result is not directly comparable to the best accuracy  $61.3\%$  on our dataset due to the difference in accuracy definition. To our knowledge, no comparable results has been reported on the image editing dataset, and the dataset is not publicly available.
8 Error Analysis
We inspected the output of our best-performing models in order to identify the most common
causes of errors. Here we used S2S-TXT with SINGLE granularity as a representative; the error categories are similar for S2S-PLOT+TXT or other granularity.
8.1 Ambiguity
Sometimes the Descriptor utterance is ambiguous and makes different actions all reasonable. We spotted two kinds of ambiguities: the unspecified new slot and the value, exemplified in Table 6a and 6b respectively. 1) Unspecified new slot. The Descriptor added a new component to the plot (the grid lines), which activated new slots ("grid_line_type") whose values are unspecified. Therefore, any value for these slots should be correct. 2) Ambiguous value. The Descriptor asked to change the size of a component (the font), but did not specify the value. As in the example, the font size was "large"; to make it "smaller", both "medium" and "small" are correct.
8.2 Human Errors
We report some of the errors that are due to mistakes made by MTurk workers. Operators can overlook part of the Describer's instruction. These erroneous actions are recorded and in turn be counted as errors of models in our automatic evaluation process.
8.3 Model Errors
In addition to human errors, many cases were also due to the model itself. We show examples of model errors in Table 7. 1) Multi-turn dialog history. In most samples, the dialog history consists of only one utterance, the Descriptor's instruction. As a result, when confronted with multiple utterances concatenated, the model may get confused. 2) Complex slot value. Some slot values are relatively hard to describe in natural language, such as "colormap" in example 7b. They can cause the models to make mistakes. 3) Infrequent expressions. When the user expresses their request in an unusual way (in example 7c, "log style" for log scale), the model may not understand since it is rarely seen in the training data.
In this paper, we defined the problem of conversational plotting agents, which is of great practical
Previous State	(no grid lines)
Dialog History	invert y axis , red dashed gridlines , markers should be down triangle
Gold Output	grid_line_type horizontal
Model Output	grid_line_type both
(a) Ambiguity: unspecified new slot
Previous State	font_size large
Dialog History	make font size smaller again, sorry
Gold Output	font_size medium
Model Output	font_size small
(b) Ambiguity: ambiguous value
Table 6: Examples of different kinds of ambiguities.
Previous State	line_style dotted
Dialog History	[Desc]7 dot line dot line
[Op] this is dot, do you mean dot-dash?
[Desc] that would be it ... sorry
Gold Output	line-style dashed_dots
Model Output	line-style dotted
(a) Error: multi-turn dialog history
Previous State	(empty plot)
Dialog History	matrix display , yellow to red , x axis inverted on top , y axis inverted on right
Gold Output	color_map transparent_yellow_to_solid_red
Model Output	color_map red_to_yellow
(b) Error: complex slot value
Previous State	(empty plot)
Dialog History	hello, we have a bar plot ... orange bars with a black outline, log style please
Gold Output	y_axis_scale log
Model Output	y_axis_scale linear
(c) Error: infrequent expression
Table 7: Examples of different kinds of model errors.
importance considering the large volume of questions online about plotting library usage. We also presented a dataset, CHARTDIALOGS, to facilitate the development of such agents. Our experiments have demonstrated the feasibility of seq2seq-based methods to produce working models for dataset; however, there is still a large gap between our best performing methods and human performance.
Future work includes methods that get closer to human performance on the dataset. A practical line of future work is embedding our plotting agent in interactive environments such as Jupyter Lab.
This work was partially supported by a Hellman Fellowship. We also appreciate constructive feedback from our anonymous reviewers.
7Interlocutor signs are shown only for clarity; they are not input for models.
Layla El Asri, Hannes Schulz, Shikhar Sharma, Jeremie Zumer, Justin Harris, Emery Fine, Rahul Mehrotra, and Kaheer Suleman. 2017. Frames: a corpus for adding memory to goal-oriented dialogue systems. In Proceedings of the 18th Annual SIG-dial Meeting on Discourse and Dialogue, pages 207-219.
Christina L. Bennett and Alexander I. Rudnicky. 2002. The carnegie mellon communicator corpus. In 7th International Conference on Spoken Language Processing, ICSLP2002 - INTERSPEECH 2002, Denver, Colorado, USA, September 16-20, 2002.
Antoine Bordes, Y-Lan Boureau, and Jason Weston. 2017. Learning end-to-end goal-oriented dialog. In 5th International Conference on Learning Representations, ICLR 2017, Toulon, France, April 24-26, 2017, Conference Track Proceedings.
Pawel Budzianowski, Tsung-Hsien Wen, Bo-Hsiang Tseng, Inigo Casanueva, Stefan Ultes, Osman Ramadan, and Milica Gasic. 2018. Multiwoz - A largescale multi-domain wizard-of-oz dataset for task-oriented dialogue modelling. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing, pages 5016-5026.
A Church. 1957. Applications of recursive arithmetic to the problem of circuit synthesis—summaries of talks. Institute for Symbolic Logic, Cornell University.
Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. 2019. BERT: pre-training of deep bidirectional transformers for language understanding. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, NAACL-HLT 2019, Minneapolis, MN, USA, June 2-7, 2019, Volume 1 (Long and Short Papers), pages 4171-4186.
Vasant Dhar. 2013. Data science and prediction. Commun. ACM, 56(12):64-73.
Mihail Eric, Lakshmi Krishnan, Francois Charette, and Christopher D. Manning. 2017. Key-value retrieval networks for task-oriented dialogue. In Proceedings of the 18th Annual SIGdial Meeting on Discourse and Dialogue, Saarbrücken, Germany, August 15-17, 2017, pages 37-49.
Mihail Eric and Christopher D. Manning. 2017. Key-value retrieval networks for task-oriented dialogue. In SIGDIAL Conference.
Tong Gao, Mira Dontcheva, Eytan Adar, Zhicheng Liu, and Karrie G Karahalios. 2015. Datatone: Managing ambiguity in natural language interfaces for data visualization. In Proceedings of the 28th Annual ACM Symposium on User Interface Software & Technology, pages 489-500. ACM.
Milica Gašić, Dongho Kim, Pirros Tsiakoulis, Catherine Breslin, Matthew Henderson, Martin Szummer, Blaise Thomson, and Steve Young. 2014. Incremental on-line adaptation of pomdp-based dialogue managers to extended domains. In Fifteenth Annual Conference of the International Speech Communication Association.
Charles T Hemphill, John J Godfrey, and George R Doddington. 1990. The atis spoken language systems pilot corpus. In Speech and Natural Language: Proceedings of a Workshop Held at Hidden Valley, Pennsylvania, June 24-27, 1990.
Matthew Henderson, Blaise Thomson, and Jason D. Williams. 2014. The second dialog state tracking challenge. In Proceedings of the SIGDIAL 2014 Conference, The 15th Annual Meeting of the Special Interest Group on Discourse and Dialogue, pages 263-272.
Anthony JG Hey, Stewart Tansley, Kristin M Tolle, et al. 2009. The fourth paradigm: data-intensive scientific discovery, volume 1. Microsoft research Redmond, WA.
Julia Hirschberg and Christopher D Manning. 2015. Advances in natural language processing. Science, 349(6245):261-266.
Min-Yen Kan, Xiangnan He, Wenqiang Lei, Xisen Jin, Zhaochun Ren, and Dawei Yin. 2018. Sequicity: Simplifying task-oriented dialogue systems with single sequence-to-sequence architectures. In ACL.
J. F. Kelley. 1984. An iterative design methodology for user-friendly natural language office information applications. ACM Trans. Inf. Syst., 2(1):26-41.
Guillaume Klein, Yoon Kim, Yuntian Deng, Jean Senellart, and Alexander M. Rush. 2017. OpenNMT: Open-source toolkit for neural machine translation. In Proc. ACL.
Fei Li and Hosagrahar Visvesvaraya Jagadish. 2014. Nalir: an interactive natural language interface for querying relational databases. In International Conference on Management of Data, SIGMOD, pages 709-712.
Ryan Lowe, Nissan Pow, Iulian Serban, and Joelle Pineau. 2015. The ubuntu dialogue corpus: A large dataset for research in unstructured multi-turn dialogue systems. In Proceedings of the SIGDIAL 2015 Conference, The 16th Annual Meeting of the Special Interest Group on Discourse and Dialogue, 2-4 September 2015, Prague, Czech Republic, pages 285-294.
Ramesh Manuvinakurike, Trung Bui, Walter Chang, and Kallirroi Georgila. 2018a. Conversational image editing: Incremental intent identification in a new dialogue task. In Proceedings of the 19th Annual SIGdial Meeting on Discourse and Dialogue, pages 284-295.
Ramesh R. Manuvinakurike, Jacqueline Brixey, Trung Bui, Walter Chang, Doo Soon Kim, Ron Artstein, and Kallirroi Georgila. 2018b. Edit me: A corpus and a framework for understanding natural language image editing. In Proceedings of the Eleventh International Conference on Language Resources and Evaluation, LREC 2018, Miyazaki, Japan, May 7-12, 2018.
A. H. Miller, W. Feng, A. Fisch, J. Lu, D. Batra, A. Bordes, D. Parikh, and J. Weston. 2017. Parlai: A dialog research software platform. arXiv preprint arXiv:1705.06476.
Alec Radford, Jeffrey Wu, Rewon Child, David Luan, Dario Amodei, and Ilya Sutskever. 2019. Language models are unsupervised multitask learners. OpenAI Blog, 1(8).
Antoine Raux, Brian Langner, Dan Bohus, Alan W. Black, and Maxine Eskenazi. 2005. Let's go public! taking a spoken dialog system to the real world. In INTERSPEECH 2005 - Eurospeech, 9th European Conference on Speech Communication and Technology, Lisbon, Portugal, September 4-8, 2005, pages 885-888.
Lina Maria Rojas-Barahona, Milica Gasic, Nikola Mrkusic, Pei-Hao Su, Stefan Ultes, Tsung-Hsien Wen, Steve J. Young, and David Vandyke. 2017. A network-based end-to-end trainable task-oriented dialogue system. In Proceedings of the 15th Conference of the European Chapter of the Association for Computational Linguistics, EACL 2017, Valencia, Spain, April 3-7, 2017, Volume 1: Long Papers, pages 438-449.
Stephanie Seneff and Joseph Polifroni. 2000. Dialogue management in the mercury flight reservation system. In Proceedings of the 2000 ANLP/NAACL Workshop on Conversational systems-Volume 3, pages 11-16. Association for Computational Linguistics.
Vidya Setlur, Sarah E Battersby, Melanie Tory, Rich Gossweiler, and Angel X Chang. 2016. Eviza: A natural language interface for visual analysis. In Proceedings of the 29th Annual Symposium on User Interface Software and Technology, pages 365-377. ACM.
Pararth Shah, Dilek Z. Hakkani-Tür, Bing Liu, and Gökhan Tür. 2018. Bootstrapping a neural conversational agent with dialogue self-play, crowdsourcing and on-line reinforcement learning. In *NAACL-HLT*.
Armando Solar-Lezama and Rastislav Bodik. 2008. Program synthesis by sketching. CiteSeer.
Arjun Srinivasan and John Stasko. 2017. Natural language interfaces for data analysis with visualization: Considering what has and could be asked. In Proceedings of the Eurographics/IEEE VGTC Conference on Visualization: Short Papers, pages 55-59. Eurographics Association.
Yiwen Sun, Jason Leigh, Andrew E. Johnson, and Sangyoon Lee. 2010. Articulate: A semi-automated model for translating natural language queries into meaningful visualizations. In Smart Graphics.
Ilya Sutskever, Oriol Vinyals, and Quoc V Le. 2014. Sequence to sequence learning with neural networks. In Advances in neural information processing systems, pages 3104-3112.
Oriol Vinyals and Quoc Le. 2015. A neural conversational model. arXiv preprint arXiv:1506.05869.
Wei Wei, Quoc V. Le, Andrew M. Dai, and Jia Li. 2018. Airdialogue: An environment for goal-oriented dialogue research. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing, pages 3844-3854.
Tsung-Hsien Wen, Milica Gasic, Nikola Mrksic, Lina Maria Rojas-Barahona, Pei hao Su, Stefan Ultes, David Vandyke, and Steve J. Young. 2017. A network-based end-to-end trainable task-oriented dialogue system. In EACL.
Jason D. Williams, Antoine Raux, Deepak Ramachandran, and Alan W. Black. 2013. The dialog state tracking challenge. In Proceedings of the SIGDIAL 2013 Conference, The 14th Annual Meeting of the Special Interest Group on Discourse and Dialogue, 22-24 August 2013, SUPELEC, Metz, France, pages 404-413.
Thomas Wolf, Lysandre Debut, Victor Sanh, Julien Chaumont, Clement Delangue, Anthony Moi, Pierric Cistac, Tim Rault, R'emi Louf, Morgan Funtowicz, and Jamie Brew. 2019. Huggingface's transformers: State-of-the-art natural language processing. ArXiv, abs/1910.03771.
Navid Yaghmazadeh, Yuepeng Wang, Isil Dillig, and Thomas Dillig. 2017. Squizler: query synthesis from natural language. PACMPL, 1(OOPSLA):63:1-63:26.
Bowen Yu and Cláudio T Silva. 2019. Flowsense: A natural language interface for visual data exploration within a dataflow system. IEEE transactions on visualization and computer graphics.
John M Zelle and Raymond J Mooney. 1996. Learning to parse database queries using inductive logic programming. In Proceedings of the national conference on artificial intelligence, pages 1050-1055.
A Plot Types and Slots
We show all plot types and slots related to each type in Table 8. All the plot types and slots are illustrated in Figure 6.
Model implementations are based on OpenNMT (Klein et al., 2017) and HuggingFace Transformers (Wolf et al., 2019).
B.1 S2S-TXT
LSTM hidden size is 128, batch size is 16. Model is trained for 100,000 steps. Learning rate is initialized to 1.0; starting from step 50,000, the learning rate is halved every 10,000 steps.
B.2 S2S-PLOT+TXT
Text Encoder and Decoder have the same configuration as in S2S-TXT. The Plot (image) Encoder is a CNN with following layers: conv1 (64x3x3) - pooling1 (2x2) - conv2 (128x3x3) - pooling2 (2x2) - conv3 (128x3x3) - batch normalization3 - conv4 (256x3x3) - pooling4 (2x1) - conv5 (256x3x3) - batch normalization5 - pooling5 (1x2) - conv6 (256x3x3) - pooling6 (5x5). The output size from CNN is original image size reduced 40 times on both height and width. After CNN, a row-wise RNN is applied and the output for each row are concatenated to form the plot image encoding. The learning rate scheme is the same as in S2S-TXT.
B.3 RNN+MLP
LSTM hidden size is 64, batch size is 32. Each MLP head has 2 layers, mapping from 128 (LSTM cell and output concatenated) to 32 and from 32 to number of classes. Model is trained for 100,000 steps. Learning rate is initialized to 1.0; starting from step 50,000, the learning rate is halved every 10,000 steps.
B.4 Transformer+MLP
The version of pretrained BERT we used is bert-base-uncased. It is fine-tuned with our classification heads. Batch size is 8 and gradient is accumulated over every 4 steps. Each MLP head has only 1 layer, mapping from BERT hidden size (768) to
number of classes. Learning rate is 2e-5. Model is trained for 30 epochs.
C Amazon Mechanical Turk HIT Screenshot
We show several screenshots of our HIT in Figure 7 and 8.
Top level constituents of utterances
Figure 5: Most common top-level constituent combinations and their proportions (punctuations ignored).
This model structure is adapted from OpenNMT.
Plot Types	Slots
1.	Axes	Polarize, X-axis Scale, Y-axis Scale, X-axis Position, Y-axis Position, Invert X-axis, Invert Y-axis, Grid Line Type, Grid Line Style,Grid Line Width, Grid Line Color, Font Size
2.	3D Surface	Color map, Invert X-axis, Invert Y-Axis, Invert Z-Axis
3.	Bar Chart	Bar Orientation, Bar Height, Bar Face Color, Bar Edge Width, Bar Edge Color, Show Error Bar, Error Bar Color, Error Bar Cap Size, Error Bar, Cap Thickness, Data Series Name
4.	Contour/Filled	Contour Plot Type, Number of levels, Color Map, Color Bar Orientation, Color Bar Length, Color Bar Thickness
5.	Contour/Lined	Contour Plot Type, Lined Style, Line Width
6.	Histogram	Number of Bins, Bar Relative Width, Bar Face Color, Bar Edge Width, Bar Edge Color, Data Series Name
7.	Matrix	Color Map, Invert X-axis, Invert Y-axis
8.	Line Chart	Line Style, Line Width, Line Color, Marker Type, Marker Size, Marker Face Color, Marker Edge Color, Marker Interval, Data Series Name, Show Error Bar, Error Bar Color, Error Bar Cap Size, Error Bar Cap Thickness
9.	Pie Chart	Exploding Effect, PrecisionDigits, Percentage tags' distance from center, Label tag's distance from center, Radius, Section Edge Width, Section Edge Color
10.	Polar	Polarize, Grid Line Type, Grid Line Style, Grid Line Width, Grid Line Color, Font Size
11.	Scatter	Polarize, Marker Type, Marker Size, Marker Face Color, Marker Edge Width, Marker Edge Color, Color Map, Color Bar Orientation, Color Bar Length Color Bar Thickness
12.	Streamline	Density, Line Width, Line Color, Color Map, Arrow Size, Arrow Style
Table 8: Plot types and slots in our dataset
Bar Plot Illustration
Related Field values
Plot Type	Bar plot
Bar Orientation	Horizontal
Bar Height	0.8
Bar Face Color	Magenta
Bar Edge Width	Medium
Bar Edge Color	Blue
Show Error Bar	True
Error Bar Color	Orange
Error Bar Cap Size	Large
Error Bar Cap Thickness	Thin
Data Series Name	Data Size
Matrix Display Illustration
Related Field values
Plot Type	3D surface
Color Map	Transparent to Solid Blue
Invert X axis	True
Invert Y-axis	False
Scatter Plot Illustration
Related Field values
Plot Type	Scatter plot
Polarize	True
Marker Type	Diamond
Marker Size	Different
Marker Face Color	Different
Marker Edge Width	Thin
Marker Edge Color	Black
Color Map	Transparent to Solid Red
Color Bar Orientation	Horizontal
Color Bar Length	Short
Color Bar Thickness	Thin
Streamline Plot Illustration