Edit Distance between XML and Probabilistic XML Documents

Similar documents
DRAFT. Un Système de gestion de données XML probabilistes * Pierre Senellart Asma Souihli

PathStack : A Holistic Path Join Algorithm for Path Query with Not-predicates on XML Data

Accelerating XML Structural Matching Using Suffix Bitmaps

An Efficient XML Index Structure with Bottom-Up Query Processing

Norwegian University of Science and Technology Technical Report IDI-TR-6/2004. The TDocGen temporal document generator

Modeling, Querying, and Mining Uncertain XML Data

Using Statistics for Computing Joins with MapReduce

Benchmarking the UB-tree

TwigList: Make Twig Pattern Matching Fast

Indexing XML Data with ToXin

A Schema Extraction Algorithm for External Memory Graphs Based on Novel Utility Function

Quadrant-Based MBR-Tree Indexing Technique for Range Query Over HBase

Ranking Web Pages by Associating Keywords with Locations

Efficient Range Query Processing on Uncertain Data

A Short Survey of Document Structure Similarity Algorithms

Answering XML Twig Queries with Automata

Conditioning Probabilistic Relational Data with Referential Constraints

CST-Trees: Cache Sensitive T-Trees

UNIVERSITY OF TWENTE. Querying Uncertain Data in XML

Threshold Interval Indexing for Complicated Uncertain Data

Structural Similarity between XML Documents and DTDs

Storing, Querying and Validating Fuzzy XML Data in Relational Database

Effective Pattern Similarity Match for Multidimensional Sequence Data Sets

A Study on Reverse Top-K Queries Using Monochromatic and Bichromatic Methods

On Label Stream Partition for Efficient Holistic Twig Join

Security-Conscious XML Indexing

New Optimal Load Allocation for Scheduling Divisible Data Grid Applications

SLAX : An Improved Leaf-Clustering Based Approximate XML Join Algorithm for Integrating XML Data at Subtree Classes

An Implementation of Tree Pattern Matching Algorithms for Enhancement of Query Processing Operations in Large XML Trees

Probabilistic XML: Models and Complexity

An Experimental Investigation into the Rank Function of the Heterogeneous Earliest Finish Time Scheduling Algorithm

Using an Oracle Repository to Accelerate XPath Queries

XML Grammar Similarity: Breakthroughs and Limitations

Compression of the Stream Array Data Structure

A probabilistic XML approach to data integration

High-Performance Holistic XML Twig Filtering Using GPUs. Ildar Absalyamov, Roger Moussalli, Walid Najjar and Vassilis Tsotras

Two-Phase Optimization for Selecting Materialized Views in a Data Warehouse

Clustering using Fast Structural Hierarchy Extraction from User-Defined Tags for Semi-Structural Languages

TwigINLAB: A Decomposition-Matching-Merging Approach To Improving XML Query Processing

A System for Storing, Retrieving, Organizing and Managing Web Services Metadata Using Relational Database *

Efficiency of Data Distribution in BitTorrent-Like Systems

XML Query Processing. Announcements (March 31) Overview. CPS 216 Advanced Database Systems. Course project milestone 2 due today

Efficient Circuit to CNF Conversion

Bottom-Up Evaluation of Twig Join Pattern Queries in XML Document Databases

Mining Data Streams. Outline [Garofalakis, Gehrke & Rastogi 2002] Introduction. Summarization Methods. Clustering Data Streams

Evaluating XPath Queries

A COMPLETE SEARCH ENGINE FOR EFFICIENT AND DATA INTEGRATION USING FUZZY SEARCH

An approach to the model-based fragmentation and relational storage of XML-documents

A Study of Graph Spectra for Comparing Graphs

Replication Routing Indexes for XML Documents

Efficient Similarity Search for Hierarchical Data in Large Databases

Sangam: A Framework for Modeling Heterogeneous Database Transformations

XML Data Stream Processing: Extensions to YFilter

9/23/2009 CONFERENCES CONTINUOUS NEAREST NEIGHBOR SEARCH INTRODUCTION OVERVIEW PRELIMINARY -- POINT NN QUERIES

Crossword Puzzles as a Constraint Problem

Some questions of consensus building using co-association

Detecting Structural Similarities between XML Documents

SFilter: A Simple and Scalable Filter for XML Streams

Notes on Binary Dumbbell Trees

Estimating the Selectivity of XML Path Expression with predicates by Histograms

A Simple Syntax-Directed Translator

Heading-Based Sectional Hierarchy Identification for HTML Documents

A FRAMEWORK FOR EFFICIENT DATA SEARCH THROUGH XML TREE PATTERNS

Performance Improvement of Hardware-Based Packet Classification Algorithm

Selectively Storing XML Data in Relations

Speeding Up Evaluation of Powers and Monomials

Data Distortion for Privacy Protection in a Terrorist Analysis System

CoXML: A Cooperative XML Query Answering System

I. Khalil Ibrahim, V. Dignum, W. Winiwarter, E. Weippl, Logic Based Approach to Semantic Query Transformation for Knowledge Management Applications,

Random projection for non-gaussian mixture models

Processing Rank-Aware Queries in P2P Systems

Keywords Data alignment, Data annotation, Web database, Search Result Record

DATA STRUCTURE : A MCQ QUESTION SET Code : RBMCQ0305

RESTORE: REUSING RESULTS OF MAPREDUCE JOBS. Presented by: Ahmed Elbagoury

An Optimal Regression Algorithm for Piecewise Functions Expressed as Object-Oriented Programs

Study of a Simple Pruning Strategy with Days Algorithm

DeLiClu: Boosting Robustness, Completeness, Usability, and Efficiency of Hierarchical Clustering by a Closest Pair Ranking

Parallelization of Depth-First Traversal using Efficient Load Balancing

Searching SNT in XML Documents Using Reduction Factor

A Genetic Approach for Solving Minimum Routing Cost Spanning Tree Problem

The Maude LTL Model Checker and Its Implementation

Finding Optimal Probabilistic Generators for XML Collections Serge Abiteboul, Yael Amsterdamer, Daniel Deutch, Tova Milo, Pierre Senellart

X-tree Diff+: Efficient Change Detection Algorithm in XML Documents *

Similarity Joins of Text with Incomplete Information Formats

Learning Probabilistic Ontologies with Distributed Parameter Learning

CHAPTER 3 LITERATURE REVIEW

A New Way of Generating Reusable Index Labels for Dynamic XML

HIGH-SPEED ACCESS CONTROL FOR XML DOCUMENTS A Bitmap-based Approach

AIIA shot boundary detection at TRECVID 2006

Analysis of Basic Data Reordering Techniques

GPU ACCELERATED SELF-JOIN FOR THE DISTANCE SIMILARITY METRIC

JSON Patch for turning a pull REST API into a push

Evaluating find a path reachability queries

Repeating Segment Detection in Songs using Audio Fingerprint Matching

Invited Talk: GraphSM/DBKDA About Reachability in Graphs

Monte Carlo Tree Search PAH 2015

DS504/CS586: Big Data Analytics Data Management Prof. Yanhua Li

An Extended Byte Carry Labeling Scheme for Dynamic XML Data

Path-based XML Relational Storage Approach

Symmetrically Exploiting XML

Transcription:

Edit Distance between XML and Probabilistic XML Documents Ruiming Tang 1,HuayuWu 1, Sadegh Nobari 1, and Stéphane Bressan 2 1 School of Computing, National University of Singapore {tangruiming,wuhuayu,snobari}@comp.nus.edu.sg 2 Center for Maritime Studies steph@nus.edu.sg Abstract. Probabilistic XML is a hierarchical data model capturing uncertainty of both value and structure. The ability to compute the similarity between an XML document and a probabilistic XML document is a building block of many applications involving querying, comparison, alignment and classification, for instance. The new challenge in efficiently computing such similarity is the multiplicity of the possible worlds represented by a probabilistic XML document. We devise and discuss an algorithm for the efficient computation of the similarity between an XML document and a probabilistic XML document. We empirically and comparatively evaluate the performance of the algorithm and its variants. 1 Introduction 1.1 Motivation Modern applications (see [13] and [16], for instance) wanting to exploit the now available numerous data sources face the challenge posed by uncertainty of information. Unfortunately there is little room for uncertainty in traditional database models and management systems. New models, new tools and techniques are needed (see [4]). Probabilistic XML is a hierarchical data model capturing uncertainty of both value and structure. The computation of similarity is an essential building block for the tasks at hand, namely comparison, alignment, clustering and classification of data. Several algorithms exist for measuring the structural similarity between XML documents among themselves or XML documents and XML document type definitions and schemas. The new challenge in efficiently computing the similarity between an XML document and a probabilistic XML document is the multiplicity of the possible worlds that a probabilistic XML document represents. In this paper, we devise and discuss an algorithm and its variants for computing the similarity between an XML document and a probabilistic XML document. The algorithms implement the expected value of the edit distance between an XML document and the documents in the set defined by the probabilistic XML document. We empirically and comparatively evaluate their performance. A. Hameurlain et al. (Eds.): DEXA 211, Part I, LNCS 686, pp. 448 456, 211. c Springer-Verlag Berlin Heidelberg 211

Edit Distance between XML and Probabilistic XML Documents 449 In the absence of established corpora and benchmarks for probabilistic XML, we also propose and use several random probabilistic XML models together with the associated random generation algorithms. 1.2 Probabilistic XML Fig. 1 shows a probabilistic XML document in the model of [13]. A probabilistic XML document is an XML document with special nodes. In the figure the special nodes are labeled mux and ind. These nodes are called distributional nodes. ports port name Hong Kong container_throughput ind.7.8.9 27 28 29 name ports port container_throughput 23.998 million 24.494 million TEUs TEUs 21.4 million TEUs mux.8.2 2.9 million TEUs (a) one probabilistic XML document Hong Kong 28 29 24.494 million TEUs (b) one possible world 21.4 million TEUs Fig. 1. A Probabilistic XML Document and one of its Possible World A distributional node labeled mux denotes a mutually exclusive choice among its children (or none of the children if the sum of probabilities is less than one) with a probability associated to each child. A distributional node labeled ind denotes an independent choice among its children with a probability associated to each child. There are also models with two additional distributional nodes, i.e., exp and cie, as reviewed in Section 2. In our work, we only consider probabilistic XML documents with mutually exclusive and independent distributional nodes. In general, a probabilistic XML document U is a random model of XML documents. It is a probability space that defines an assignment of probabilities to all ordinary XML documents or, in other words, a probability distribution over XML documents. Each XML document with a non zero probability, Pr(d) >, is called a possible world of the probabilistic document U. Wesaythata possible world d, has a probability Pr(d) tobelongtopwd(u), representing the set of possible worlds defined by the probabilistic XML document U. Clearly d pwd(u) Pr(d) =1. 1.3 Organization In the following, related work is synthesized in Section 2. We define similarity and present the algorithms for its computation in Section 3. Section 4 presents

45 R. Tang et al. and discusses the results of the evaluation of our algorithms. It also discusses the generation of synthetic probabilistic XML data. Finally, we conclude in Section 5. 2 Related Work 2.1 Probabilistic XML Models [1] surveys the different probabilistic XML data models that have been proposed in the literature. These models differ in the distributional nodes that they consider: mutually exclusive choices, independent choices, explicit choices and conjunction of independent events. Following [1], we refer to these models according to the distributional nodes that they consider. The mostly used models are PrXML mux, PrXML mux,ind, PrXML exp and PrXML cie, respectively. The authors of [13] introduce the PrXML mux and PrXML mux,ind models, the latter being more expressive than the former. They propose query processing techniques for these models. The authors of [2] introduce the notion of independent events and the PrXML cie model. They show the added expressiveness of PrXML cie over PrXML mux,ind. They define query evaluation and update techniques for both PrXML mux,ind and PrXML cie. The authors of [7] introduce the PrXML exp model together with semantics, algebra and efficient algorithms for query processing. The model proposed in [16] is similar to PrXML mux,ind.itis used to integrate disparate data. The authors of [9] study the evaluation of twig queries for probabilistic XML in the PrXML mux,ind model. They broaden their study to PrXML mux, PrXML mux,ind, PrXML exp,andprxml cie in [8]. There seems to be a natural tradeoff between the expressiveness of a model and the efficient of query evaluation. PrXML mux is the least expressive model while the most expressive are PrXML cie and PrXML exp. Their combination PrXML cie,exp subsumes all the other models. We believe that PrXML mux,ind strikes a good balance between the expressiveness and efficiency. This model is also the most commonly adapted. 2.2 Similarity Similarity metrics and distances attempt to quantify the resemblance of different objects. The edit distance, introduced for strings in [11] and [17], quantifies this resemblance as the minimum cost of transforming one object into another. The lower the cost is, the more similar the objects. The idea of a tree edit distance is introduced by Tai in [14] in 1979. Zhang and Shasha [18] propose definition and algorithm for edit distance of trees. In this paper we consider the tree edit distance proposed in [5] that allows update of any vertex in the tree but restricts deletions and insertions to leaves. Different similarity definitions and the algorithms to effectively and efficiently compute them have been used for data clustering [12], change detection [6], schema integration [1], etc.

3 Proposal 3.1 Edit Distance Edit Distance between XML and Probabilistic XML Documents 451 The edit distance between two trees is the minimum cost of the operations needed to transform one tree into another. In this paper we consider the definition of [5] in which three unit cost operations are considered: deletion of a leaf, insertion of a leaf and update of a node anywhere in the tree. We refer to this edit distance between two XML document as δ d. δ d can be relatively efficiently computed using dynamic programming. A probabilistic XML document is a probability space. The edit distance between an XML document d and a probabilistic XML document U can be defined as the minimum, maximum or average distance between the XML document and the possible worlds. In this paper we choose to define it as the expected value of the edit distance between the XML document and the possible worlds. We refer to this edit distance as δ p. It is the sum of the tree edit distances between the XML document and the possible worlds weighted with probabilities, as given in Equation 1. δ p (d, U) = Pr(w) δ d (d, w) (1) w pwd(u) In this paper we use and adapt the tree edit distance and the algorithm of [5]. The technique and the data structure, called the edit graph in [5], is itself an extension to trees to the original dynamic programming approach and the matrix data structure used in [17] for string edit distance. Next we present the stack algorithm to compute the edit distance between an XML document and a probabilistic XML document 1. In order to illustrate it, we first present the naive enumeration algorithm and the multidimensional algorithm. 3.2 Enumeration Algorithm The enumeration algorithm, E, generates the possible worlds for the probabilistic XML document U with their respective probabilities. Then, it computes the edit distance between the XML document and each of the possible world. Finally it sums the products of the distances with the respective probabilities. In this algorithm, all the pairwise distances between the XML document and the possible worlds are needed. 3.3 Multidimensional Algorithm The main idea for an efficient edit distance algorithm for probabilistic XML is to share common computations. Indeed, while distributional nodes correspond to branching to possible worlds, all other nodes in a probabilistic XML are normal 1 Due to the space limitation, the pseudo-codes of the algorithms are omitted in this paper. They are available from our technical report [15].

452 R. Tang et al. XML nodes and can be processed as such. The algorithm, that we call the multidimensional algorithm or MA for short, copies the dynamic programming sub matrices when it encounters distributional nodes. It branches the computation to the possible worlds or dimensions. This allows the sharing of computation until the next distributional node. The algorithm is further improved by noticing that the dynamic programming approach does not require to memorizing the entire matrix but rather one column at a time. 3.4 Stack Algorithm Fig. 2 illustrates the successive data structures needed in the computation of the edit distance between an XML document and a probabilistic XML document. The figure immediately suggests reconsidering the strategy of the MA algorithm. Instead of memorizing the possible worlds and copying the columns of the dynamic programming matrix we can compute the distance by a depth first strategy that only requires remembering the data structures at the branching points in the tree. This is classically done with a stack. Based on this idea, we improve the MA algorithm to be the MAS algorithm. P11 P12 P12*P21 P12*P22 Possible world Possible world Possible world Fig. 2. MA and MAS Data Structure 4 Performance Evaluation 4.1 Experimental Setup The three algorithms are implemented in Java. All experiments are run on a Centos 5.5 2 x Quad-Core Xeon E552 2.2GHz with 24.GB RAM. The experiments are conducted with synthetic data. In order to control the generation of synthetic data we propose three random models for probabilistic XML: P X (doc, n), P X (doc, p) andp X (doc, p, f). These random probabilistic XML models are probability spaces of XML documents.

Edit Distance between XML and Probabilistic XML Documents 453 A probabilistic XML document in the P X (doc, n) model is derived from the original XML document doc by inserting independently n internal distributional nodes. A probabilistic XML document in the P X (doc, p) model is derived from the original XML document doc by inserting independently distributional nodes below each internal node with probability p. Finally, in order to control the depth at which distributional nodes appear, we propose the P X (doc, p, f) modelin which a probabilistic XML document is derived from the original XML document doc by inserting independently distributional nodes below each internal node with probability p f(q), where q is the level of the node in the XML tree. For each of these models we devise an algorithm that generates uniformly at random a probabilistic XML document in the model. We use these three models and the corresponding algorithms for our experiments. In the experiments doc is a synthetic XML document generated using ToXGene [3]. It has 43 nodes, 19 internal nodes, a maximum depth of 4, an average depth of 2.558, a maximum number of children for the internal nodes of 4, and an average number of children of 2.211. 4.2 Experiments Possible Worlds. In this first experiment we measure the number of possible worlds as a function of the distributional nodes. We consider the three PrXML mux, PrXML ind and PrXML mux,ind models. We generate 1 probabilistic XML documents (there may not be so many different possible probabilistic XML documents, however by generating so many we get a better uniformity of the sample) in the P X (doc, n) modelforn varying from 1 to 19. We plot the average value and its standard deviation. average number of possible worlds 6 5 4 3 2 1 1 3 5 7 9 11 13 15 17 19 (a) PrXML mux average number of poosible worlds 4 35 3 25 2 15 1 5 1 3 5 7 9 11 13 15 17 19 (b) PrXML ind average number of possible worlds 16 14 12 1 8 6 4 2 1 3 5 7 9 11 13 15 17 19 (c) PrXML mux,ind Fig. 3. Number of possible worlds as a function of the distributional nodes Fig. 3.a shows that, in the case of PrXML mux, the number of possible worlds increases until it reaches a maximum (n = 13) and decreases again. This is because as the number of distributional nodes increases beyond 13 these modes are more likely to be nested and generate less possible worlds. Fig. 3.b shows that, in the case of PrXML ind, the number of possible worlds increases. There is no peak. This is because even if distributional nodes of type ind are nested the

454 R. Tang et al. p 1.2 1.8.6.4.2 1 2 3 depth (q) f=1 f1=.2x+.2 f2=.1x+.35 f3=.5 f4=.1x+.65 f5=.2x+.8 (a) six different functions 18 16 14 12 1 8 6 4 2.1.2.3.4.5.6.7.8.9 p f f1 f2 f3 f4 f5 (b) number of distributional nodes against p with different functions Fig. 4. Number of distributional nodes as a function of the probability number of possible worlds that they generate is still combinatorial. Fig. 3.c shows that, in the case of PrXML ind,mux, the number of possible worlds increases. There is no peak. This is because the effect of distributional nodes of type ind dominates the effect of distributional nodes of type mux. Number of Distributional Nodes. In this second experiment we measure the number of distributional nodes as a function of the probability of the nodes to be inserted at certain levels. We generate 1 probabilistic XML documents in the P X (doc, p, f) modelforp varying from.1 to.9. We plot the average valueforthesixfunctionsf, f 1, f 2, f 3, f 4 and f 5 of Fig. 4.a. Notice that in the cases of f being a constant function (f (q) =1andf 3 (q) =.5) P X (doc, p, f) is P X (doc, p f) and, therefore is in the P X (doc, p) model. Fig. 4.b shows that for the same compound probability (sum of the probabilities for each level: f 1 to f 5 ) the larger the slope the more distributional nodes. The case of f also shows that the larger the probabilities the more distributional nodes. Running Time. In this third experiment we measure the running time as a function of the number of distributional nodes. We consider the three PrXML mux, PrXML ind and PrXML mux,ind models. We generate 1 probabilistic XML documents in the P X (doc, n) forn varying from 5 to 9. We plot the average value and its standard deviation for the three algorithms: enumeration algorithm, E, multidimensional algorithm, MA, and the stack algorithm, MAS. The average running time is increasing with the number of distributional nodes. On Fig. 5.a,b,c we see that the MA and MAS are significantly faster than E. On Fig. 5.d,e,f, zooming in the performance of MA and MAS, we see that the stack algorithm is faster. Although MA and MAS are just a breadth-first and depth-first traversal of the same tree, respectively, there is overhead in copying and memorizing the data structures in MA as opposed to pushing and popping the strictly necessary ones to and from the stack in MAS. MAS is the most efficient algorithm for computing the edit distance between an XML document and a probabilistic XML document.

Edit Distance between XML and Probabilistic XML Documents 455 4 35 3 25 2 15 1 5 6 5 4 3 2 1 14 12 1 8 6 4 2 MAS MA E (a) PrXML mux MAS MA E (b) PrXML ind MAS MA E (c) PrXML mux,ind 3 25 2 15 1 5 25 2 15 1 5 5 45 4 35 3 25 2 15 1 5 MAS MA (d) zooming in (a) MAS MA (e) zooming in (b) MAS MA (f) zooming in (c) Fig. 5. Running time as a function of the number of distributional nodes 5 Conclusion We have defined the similarity between an XML and a probabilistic XML document as the expected value of the edit distance between the XML document and the set of XML documents denoted by the probabilistic XML document. We have devised an original dynamic programming algorithm, MAS, and empirically shown that it outperforms the baseline approaches. In the absence of established corpora and benchmarks for probabilistic XML, we have also proposed several random probabilistic XML models and their corresponding random generation algorithms for the generation of synthetic probabilistic XML data. References 1. Abiteboul, S., Kimelfeld, B., Sagiv, Y., Senellart, P.: On the Expressiveness of Probabilistic XML models. VLDB J. 18(5), 141 164 (29) 2. Abiteboul, S., Senellart, P.: Querying and updating probabilistic information in XML. In: Ioannidis, Y., Scholl, M.H., Schmidt, J.W., Matthes, F., Hatzopoulos, M., Böhm, K., Kemper, A., Grust, T., Böhm, C. (eds.) EDBT 26. LNCS, vol. 3896, pp. 159 168. Springer, Heidelberg (26) 3. Barbosa, D., Mendelzon, A.O., Keenleyside, J., Lyons, K.A.: ToXgene: An Extensible Template-Based Data Generator for XML. In: WebDB, pp. 49 54 (22) 4. Cavallo, R., Pittarelli, M.: The Theory of Probabilistic Databases. In: VLDB, pp. 71 81 (1987) 5. Chawathe, S.S.: Comparing Hierarchical Data in External Memory. In: VLDB, pp. 9 11 (1999)

456 R. Tang et al. 6. Cobena, G., Abiteboul, S., Marian, A.: Detecting Changes in XML Documents. In: ICDE, pp. 41 52 (22) 7. Hung, E., Getoor, L., Subrahmanian, V.S.: PXML: A Probabilistic Semistructured Data Model and Algebra. In: ICDE, pp. 467 479 (23) 8. Kimelfeld, B., Kosharovsky, Y., Sagiv, Y.: Query Efficiency in Probabilistic XML models. In: SIGMOD Conference, pp. 71 714 (28) 9. Kimelfeld, B., Sagiv, Y.: Matching Twigs in Probabilistic XML. In: VLDB, pp. 27 38 (27) 1. Leonardi, E., Hoai, T.T., Bhowmick, S.S., Madria, S.K.: DTD-Diff: A Change Detection Algorithm for DTDs. Data Knowl. Eng. 61(2), 384 42 (27) 11. Levenshtein, V.I.: Binary Codes Capable of Correcting Deletions, Insertions and Reversals. Soviet Physics Doklady 1, 77 (1966) 12. Nierman, A., Jagadish, H.V.: Evaluating Structural Similarity in XML Documents. In: WebDB, pp. 61 66 (22) 13. Nierman, A., Jagadish, H.V.: ProTDB: Probabilistic Data in XML. In: VLDB, pp. 646 657 (22) 14. Tai, K.-C.: The Tree-to-Tree Correction Problem. J. ACM 26(3), 422 433 (1979) 15. Tang, R., Wu, H., Nobari, S., Bressan, S.: Technical Report: Edit Distance between XML and Probabilistic XML Documents, from http://www.comp.nus.edu.sg/~tang1987 16. van Keulen, M., de Keijzer, A., Alink, W.: A Probabilistic XML Approach to Data Integration. In: ICDE, pp. 459 47 (25) 17. Wagner, R.A., Fischer, M.J.: The String-to-String Correction Problem. J. ACM 21(1), 168 173 (1974) 18. Zhang, K., Shasha, D.: Simple Fast Algorithms for the Editing Distance Between Trees and Related Problems. SIAM J. Comput. 18(6), 1245 1262 (1989)