Results 1 - 10
of
28
Locating Matches of Tree Patterns in Forests
- Foundations of Software Technology and Theoretical Computer Science, Lecture Notes in Computer Science
, 1998
"... . We deal with matching and locating of patterns in forests of variable arity. A pattern consists of a structural and a contextual condition for subtrees of a forest, both of which are given as tree or forest regular languages. We use the notation of constraint systems to uniformly specify both kind ..."
Abstract
-
Cited by 52 (5 self)
- Add to MetaCart
. We deal with matching and locating of patterns in forests of variable arity. A pattern consists of a structural and a contextual condition for subtrees of a forest, both of which are given as tree or forest regular languages. We use the notation of constraint systems to uniformly specify both kinds of conditions. In order to implement pattern matching we introduce the class of pushdown forest automata. We identify a special class of contexts such that not only pattern matching but also locating all of a forest's subtrees matching in context can be performed in a single traversal. We also give a method for computing the reachable states of an automaton in order to minimize the size of transition tables. 1 Introduction In Standard Generalized Markup Language (SGML) [Gol90] documents are represented as trees. A node in a document tree may have arbitrarily many children, independent of the symbol at that node. A sequence of documents or subdocuments is called a forest. A main task in do...
Hedge automata: a formal model for XML schemata
, 1999
"... Introduction This note shows preliminaries of the hedge automaton theory. In the XML community, this theory has been recently recognized as a simple but powerful model for XML schemata. In particular, the design of two schema languages for XML, namely RSL(Regular Schema Language) and DSD (Document ..."
Abstract
-
Cited by 36 (2 self)
- Add to MetaCart
Introduction This note shows preliminaries of the hedge automaton theory. In the XML community, this theory has been recently recognized as a simple but powerful model for XML schemata. In particular, the design of two schema languages for XML, namely RSL(Regular Schema Language) and DSD (Document Structure Description) , is directly based on this theory. 2 Hedges First, we introduce hedges. Informally, a hedge is a sequence of trees. In the XML terminology, a hedge is a sequence of elements possibly interevened by character data (or types of character data); in particular, an XML document is a hedge. A hedge over a finite set E (of symbols) and a finite set X (of variables) is: (1) e (the null hedge), (2) x, where x is a variable in X, (3) a(u), where a is a symbol in E and u is a hedge (the addition of a symbol as the root node), or (4) uv, where u and v are hedges (the concatenation of two hedges). Figure 1 depicts three hedges: a{e), a{x), and a{e)b{b{e)x). Observe that el
On the Undecidability of Second-Order Unification
- INFORMATION AND COMPUTATION
, 2000
"... ... this paper, and it is the starting point for proving some novel results about the undecidability of second-order unification presented in the rest of the paper. We prove that second-order unification is undecidable in the following three cases: (1) each second-order variable occurs at most t ..."
Abstract
-
Cited by 32 (16 self)
- Add to MetaCart
... this paper, and it is the starting point for proving some novel results about the undecidability of second-order unification presented in the rest of the paper. We prove that second-order unification is undecidable in the following three cases: (1) each second-order variable occurs at most twice and there are only two second-order variables; (2) there is only one second-order variable and it is unary; (3) the following conditions (i)#(iv) hold for some fixed integer n: (i) the arguments of all second-order variables are ground terms of size <n, (ii) the arity of all second-order variables is <n, (iii) the number of occurrences of second-order variables is #5, (iv) there is either a single second-order variable or there are two second-order variables and no first-order variables.
Explaining and Controlling Ambiguity in Dynamic Programming
, 2000
"... . Ambiguity in dynamic programming arises from two independent sources, the non-uniqueness of optimal solutions and the particular recursion scheme by which the search space is evaluated. Ambiguity, unless explicitly considered, leads to unnecessarily complicated, inflexible, and sometimes even ..."
Abstract
-
Cited by 21 (9 self)
- Add to MetaCart
. Ambiguity in dynamic programming arises from two independent sources, the non-uniqueness of optimal solutions and the particular recursion scheme by which the search space is evaluated. Ambiguity, unless explicitly considered, leads to unnecessarily complicated, inflexible, and sometimes even incorrect dynamic programming algorithms. Building upon the recently developed algebraic approach to dynamic programming, we formalize the notions of ambiguity and canonicity. We argue that the use of canonical yield grammars leads to transparent and versatile dynamic programming algorithms. They provide a master copy of recurrences, that can solve all DP problems in a well-defined domain. We demonstrate the advantages of such a systematic approach using problems from the areas of RNA folding and pairwise sequence comparison. 1 Motivation and Overview 1.1 Ambiguity Issues in Dynamic Programming Dynamic Programming (DP) solves combinatorial optimization problems. It is a classical p...
A Systematic Approach to Dynamic Programming in Bioinformatics
, 1999
"... Motivation: Dynamic programming is probably the most popular programming method in bioinformatics. Sequence comparison, gene recognition, RNA structure prediction and hundreds of other problems are solved by ever new variants of dynamic programming. Currently, the development of a successful dynamic ..."
Abstract
-
Cited by 21 (8 self)
- Add to MetaCart
Motivation: Dynamic programming is probably the most popular programming method in bioinformatics. Sequence comparison, gene recognition, RNA structure prediction and hundreds of other problems are solved by ever new variants of dynamic programming. Currently, the development of a successful dynamic programming algorithm is a matter of experience, talent, and luck. The typical matrix recurrence relations that make up a dynamic programming algorithm are intricate to construct, and difficult to implement reliably. No general problem independent guidance is available. Results: This article introduces a systematic method for constructing dynamic programming solutions to problems in biosequence analysis. By a conceptual splitting of the algorithm into a recognition and an evaluation phase, algorithm development is simplified considerably, and correct recurrences can be derived systematically. Without additional effort, the method produces an early, executable prototype expressed in a funct...
A discipline of dynamic programming over sequence data
- Science of Computer Programming
, 2004
"... Abstract. Dynamic programming is a classical programming technique, applicable in a wide variety of domains such as stochastic systems analysis, operations research, combinatorics of discrete structures, flow problems, parsing of ambiguous languages, and biosequence analysis. Little methodology has ..."
Abstract
-
Cited by 20 (9 self)
- Add to MetaCart
Abstract. Dynamic programming is a classical programming technique, applicable in a wide variety of domains such as stochastic systems analysis, operations research, combinatorics of discrete structures, flow problems, parsing of ambiguous languages, and biosequence analysis. Little methodology has hitherto been available to guide the design of such algorithms. The matrix recurrences that typically describe a dynamic programming algorithm are difficult to construct, error-prone to implement, and, in nontrivial applications, almost impossible to debug completely. This article introduces a discipline designed to alleviate this problem. We describe an algebraic style of dynamic programming over sequence data. We define its formal framework, based on a combination of grammars and algebras, and including a formalization of Bellman’s Principle. We suggest a language used for algorithm design on a convenient level of abstraction. We outline three ways of implementing this language, including an embedding in a lazy functional language. The workings of the
The Decidability of Simultaneous Rigid E-Unification with One Variable
- REWRITING TECHNIQUES AND APPLICATIONS
, 1997
"... We show that simultaneous rigid E-unification, or SREU for short, is decidable and in fact EXPTIME-complete in the case of one variable. This result implies that the ... fragment of intuitionistic logic with equality is decidable. Together with a previous result regarding the undecidability of the ..."
Abstract
-
Cited by 11 (11 self)
- Add to MetaCart
We show that simultaneous rigid E-unification, or SREU for short, is decidable and in fact EXPTIME-complete in the case of one variable. This result implies that the ... fragment of intuitionistic logic with equality is decidable. Together with a previous result regarding the undecidability of the 99-fragment, we obtain a complete classification of decidability of the prenex fragment of intuitionistic logic with equality, in terms of the quantifier prefix. It is also proved that SREU with one variable and a constant bound on the number of rigid equations is Pcomplete.
Confluence of Curried Term-Rewriting Systems
- Journal of Symbolic Computation
, 1995
"... Reduction Systems Definition 2.2. An Abstract Reduction System (short: ARS) consists of a set A and a sequence ! i of binary relations on A, labelled by some set I. We often drop the label if I is a singleton. We write A j= P if the ARS A = (A; ! i ; : : : ); i 2 I has the property P . Further we ..."
Abstract
-
Cited by 10 (0 self)
- Add to MetaCart
Reduction Systems Definition 2.2. An Abstract Reduction System (short: ARS) consists of a set A and a sequence ! i of binary relations on A, labelled by some set I. We often drop the label if I is a singleton. We write A j= P if the ARS A = (A; ! i ; : : : ); i 2 I has the property P . Further we write A j= P Q iff A j= P and A j= Q. An ARS A = (A; !) has the diamond property , A j= \Sigma, iff /;! ` !;/. It has the Church-Rosser property (is confluent), A j= CR, iff (A; !!) j= \Sigma. Given an ARS A = (A; !), we write CR(t) as shorthand for (fu j t !! ug; !) j= CR. 4 Stefan Kahrs Under most circumstances, confluence is a useful property of ARSs, mainly because: if (A; !) j= CR, and if two elements x; y 2 A are equivalent w.r.t. the smallest equivalence containing !, then there is a z 2 A such that x!! z //y. Roughly: the ARS decides the equivalence. An ARS A = (A; ! a ; ! b ) commutes directly , A j= CD, iff / a ; ! b ` ! b ; / a . To prove confluence of an ARS, it is sometimes...
Bottom-up Tree Acceptors
- Science of Computer Programming
, 1986
"... This paper deals with the formal derivation of an efficient tabulation algorithm for tabledriven bottom-up tree acceptors. Bottom-up tree acceptors are based on a notion of match sets. First we derive a naive acceptance algorithm using dynamic computation of match sets. Tabulation of match sets lead ..."
Abstract
-
Cited by 6 (3 self)
- Add to MetaCart
This paper deals with the formal derivation of an efficient tabulation algorithm for tabledriven bottom-up tree acceptors. Bottom-up tree acceptors are based on a notion of match sets. First we derive a naive acceptance algorithm using dynamic computation of match sets. Tabulation of match sets leads to an efficient acceptance algorithm, but tables may be so large that they can not be generated due to lack of space. Introduction of a convenient equivalence relation on match sets reduces this effect and improves the tabulation algorithm. 1 Introduction Nowadays, many parts of a compiler can be generated automatically. For instance, the automatic generation of lexical and syntactic analyzers using notations based on regular expressions and context-free grammars is commonly used (see e.g. [1]). However, much research is still going on in the field of universal code-generator generators, which take a description of a machine as input and deliver a (good) code generator for that machine. C...

