text:
Parsing expression grammar

In computer science, a parsing expression grammar (PEG) is a type of analytic formal grammar, i.e. it describes a formal language in terms of a set of rules for recognizing strings in the language. The formalism was introduced by Bryan Ford in 2004 and is closely related to the family of top-down parsing languages introduced in the early 1970s. Syntactically, PEGs also look similar to context-free grammars (CFGs), but they have a different interpretation: the choice operator selects the first match in PEG, while it is ambiguous in CFG. This is closer to how string recognition tends to be done in practice, e.g. by a recursive descent parser.

Unlike CFGs, PEGs cannot be ambiguous; a string has exactly one valid parse tree or none. It is conjectured that there exist context-free languages that cannot be recognized by a PEG, but this is not yet proven. PEGs are well-suited to parsing computer languages (and artificial human languages such as Lojban) where multiple interpretation alternatives can be disambiguated locally, but are less likely to be useful for parsing natural languages where disambiguation may have to be global.

Definition
A parsing expression is a kind of pattern that each string may either match or not match. In case of a match, there is a unique prefix of the string (which may be the whole string, the empty string, or something in between) which has been consumed by the parsing expression; this prefix is what one would usually think of as having matched the expression. However, whether a string matches a parsing expression may (because of look-ahead predicates) depend on parts of it which come after the consumed part. A parsing expression language is a set of all strings that match some specific parsing expression.

A parsing expression grammar is a collection of named parsing expressions, which may reference each other. The effect of one such reference in a parsing expression is as if the whole referenced parsing expression was given in place of the reference. A parsing expression grammar also has a designated starting expression; a string matches the grammar if it matches its starting expression.

An element of a string matched is called a terminal symbol, or terminal for short. Likewise the names assigned to parsing expressions are called nonterminal symbols, or nonterminals for short. These terms would be descriptive for generative grammars, but in the case of parsing expression grammars they are merely terminology, kept mostly because of being near ubiquitous in discussions of parsing algorithms.

Syntax
Both abstract and concrete syntaxes of parsing expressions are seen in the literature, and in this article. The abstract syntax is essentially a mathematical formula and primarily used in theoretical contexts, whereas concrete syntax parsing expressions could be used directly to control a parser. The primary concrete syntax is that defined by Ford, although many tools have their own dialect of this. Other tools can be closer to using a programming-language native encoding of abstract syntax parsing expressions as their concrete syntax.

Atomic parsing expressions
The two main kinds of parsing expressions not containing another parsing expression are individual terminal symbols and nonterminal symbols. In concrete syntax, terminals are placed inside quotes (single or double), whereas identifiers not in quotes denote nonterminals: In the abstract syntax there is no formalised distinction, instead each symbol is supposedly defined as either terminal or nonterminal, but a common convention is to use upper case for nonterminals and lower case for terminals.

The concrete syntax also has a number of forms for classes of terminals: In abstract syntax, such forms are usually formalised as nonterminals whose exact definition is elided for brevity; in Unicode, there are tens of thousands of characters that are letters. Conversely, theoretical discussions sometimes introduce atomic abstract syntax for concepts that can alternatively be expressed using composite parsing expressions. Examples of this include:
 * A  (period) is a parsing expression matching any single terminal.
 * Brackets around a list of characters  form a parsing expression matching one of the numerated characters. As in regular expressions, these classes may also include ranges   written as a hyphen with the range endpoints before and after it. (Unlike the case in regular expressions, bracket character classes do not have   for negation; that end can instead be had via not-predicates.)
 * Some dialects have further notation for predefined classes of characters, such as letters, digits, punctuation marks, or spaces; this is again similar to the situation in regular expressions.
 * the empty string ε (as a parsing expression, it matches every string and consumes no characters),
 * end of input E (concrete syntax equivalent is ), and
 * failure $$\bot$$ (matches nothing).

In the concrete syntax, quoted and bracketed terminals have backslash escapes, so that "line feed or carriage return" may be written. The abstract syntax counterpart of a quoted terminal of length greater than one would be the sequence of those terminals;  is the same as. The primary concrete syntax assigns no distinct meaning to terminals depending on whether they use single or double quotes, but some dialects treat one as case-sensitive and the other as case-insensitive.

Composite parsing expressions
Given any existing parsing expressions e, e1, and e2, a new parsing expression can be constructed using the following operators: Operator priorities are as follows, based on Table 1 in:
 * Sequence: e1 e2
 * Ordered choice: e1 / e2
 * Zero-or-more: e*
 * One-or-more: e+
 * Optional: e?
 * And-predicate: &e
 * Not-predicate: !e
 * Group: (e)

Grammars
In the concrete syntax, a parsing expression grammar is simply a sequence of nonterminal definitions, each of which has the form The  is the nonterminal being defined, and the   is the parsing expression it is defined as referencing. The  varies a bit between dialects, but is generally some left-pointing arrow or assignment symbol, such as ,  ,  , or. One way to understand it is precisely as making an assignment or definition of the nonterminal. Another way to understand it is as a contrast to the right-pointing arrow → used in the rules of a context-free grammar; with parsing expressions the flow of information goes from expression to nonterminal, not nonterminal to expression.

As a mathematical object, a parsing expression grammar is a tuple $$(N,\Sigma,P,e_S)$$, where $$N$$ is the set of nonterminal symbols, $$\Sigma$$ is the set of terminal symbols, $$P$$ is a function from $$N$$ to the set of parsing expressions on $$N \cup \Sigma$$, and $$e_S$$ is the starting parsing expression. Some concrete syntax dialects give the starting expression explicitly, but the primary concrete syntax instead has the implicit rule that the first nonterminal defined is the starting expression.

It is worth noticing that the primary dialect of concrete syntax parsing expression grammars does not have an explicit definition terminator or separator between definitions, although it is customary to begin a new definition on a new line; the  of the next definition is sufficient for finding the boundary, if one adds the constraint that a nonterminal in an   must not be followed by a. However, some dialects may allow an explicit terminator, or outright require it.

Example
This is a PEG that recognizes mathematical formulas that apply the basic five operations to non-negative integers. In the above example, the terminal symbols are characters of text, represented by characters in single quotes, such as  and. The range  is a shortcut for the ten characters from   to. (This range syntax is the same as the syntax used by regular expressions.) The nonterminal symbols are the ones that expand to other rules: Value, Power, Product, Sum, and Expr. Note that rules Sum and Product don't lead to desired left-associativity of these operations (they don't deal with associativity at all, and it has to be handled in post-processing step after parsing), and the Power rule (by referring to itself on the right) results in desired right-associativity of exponent. Also note that a rule like Sum ← Sum (('+' / '-') Product)? (with intention to achieve left-associativity) would cause infinite recursion, so it cannot be used in practice even though it can be expressed in the grammar.

Semantics
The fundamental difference between context-free grammars and parsing expression grammars is that the PEG's choice operator is ordered. If the first alternative succeeds, the second alternative is ignored. Thus ordered choice is not commutative, unlike unordered choice as in context-free grammars. Ordered choice is analogous to soft cut operators available in some logic programming languages.

The consequence is that if a CFG is transliterated directly to a PEG, any ambiguity in the former is resolved by deterministically picking one parse tree from the possible parses. By carefully choosing the order in which the grammar alternatives are specified, a programmer has a great deal of control over which parse tree is selected.

Parsing expression grammars also add the and- and not- syntactic predicates. Because they can use an arbitrarily complex sub-expression to "look ahead" into the input string without actually consuming it, they provide a powerful syntactic lookahead and disambiguation facility, in particular when reordering the alternatives cannot specify the exact parse tree desired.

Operational interpretation of parsing expressions
Each nonterminal in a parsing expression grammar essentially represents a parsing function in a recursive descent parser, and the corresponding parsing expression represents the "code" comprising the function. Each parsing function conceptually takes an input string as its argument, and yields one of the following results:
 * success, in which the function may optionally move forward or consume one or more characters of the input string supplied to it, or
 * failure, in which case no input is consumed.

An atomic parsing expression consisting of a single terminal (i.e. literal) succeeds if the first character of the input string matches that terminal, and in that case consumes the input character; otherwise the expression yields a failure result. An atomic parsing expression consisting of the empty string always trivially succeeds without consuming any input. An atomic parsing expression consisting of a nonterminal A represents a recursive call to the nonterminal-function A. A nonterminal may succeed without actually consuming any input, and this is considered an outcome distinct from failure.

The sequence operator e1 e2 first invokes e1, and if e1 succeeds, subsequently invokes e2 on the remainder of the input string left unconsumed by e1, and returns the result. If either e1 or e2 fails, then the sequence expression e1 e2 fails (consuming no input).

The choice operator e1 / e2 first invokes e1, and if e1 succeeds, returns its result immediately. Otherwise, if e1 fails, then the choice operator backtracks to the original input position at which it invoked e1, but then calls e2 instead, returning e2's result.

The zero-or-more, one-or-more, and optional operators consume zero or more, one or more, or zero or one consecutive repetitions of their sub-expression e, respectively. Unlike in context-free grammars and regular expressions, however, these operators always behave greedily, consuming as much input as possible and never backtracking. (Regular expression matchers may start by matching greedily, but will then backtrack and try shorter matches if they fail to match.) For example, the expression a* will always consume as many a's as are consecutively available in the input string, and the expression (a* a) will always fail because the first part (a*) will never leave any a's for the second part to match.

The and-predicate expression &e invokes the sub-expression e, and then succeeds if e succeeds and fails if e fails, but in either case never consumes any input.

The not-predicate expression !e succeeds if e fails and fails if e succeeds, again consuming no input in either case.

More examples
The following recursive rule matches standard C-style if/then/else statements in such a way that the optional "else" clause always binds to the innermost "if", because of the implicit prioritization of the '/' operator. (In a context-free grammar, this construct yields the classic dangling else ambiguity.)

The following recursive rule matches Pascal-style nested comment syntax, (* which can (* nest *) like this *). Recall that. matches any single character.

The parsing expression foo &(bar) matches and consumes the text "foo" but only if it is followed by the text "bar". The parsing expression foo !(bar) matches the text "foo" but only if it is not followed by the text "bar". The expression !(a+ b) a matches a single "a" but only if it is not part of an arbitrarily long sequence of a's followed by a b.

The parsing expression ('a'/'b')* matches and consumes an arbitrary-length sequence of a's and b's. The production rule S ← 'a' S? 'b' describes the simple context-free "matching language" $$ \{ a^n b^n : n \ge 1 \} $$. The following parsing expression grammar describes the classic non-context-free language $$ \{ a^n b^n c^n : n \ge 1 \} $$:

Implementing parsers from parsing expression grammars
Any parsing expression grammar can be converted directly into a recursive descent parser. Due to the unlimited lookahead capability that the grammar formalism provides, however, the resulting parser could exhibit exponential time performance in the worst case.

It is possible to obtain better performance for any parsing expression grammar by converting its recursive descent parser into a packrat parser, which always runs in linear time, at the cost of substantially greater storage space requirements. A packrat parser is a form of parser similar to a recursive descent parser in construction, except that during the parsing process it memoizes the intermediate results of all invocations of the mutually recursive parsing functions, ensuring that each parsing function is only invoked at most once at a given input position. Because of this memoization, a packrat parser has the ability to parse many context-free grammars and any parsing expression grammar (including some that do not represent context-free languages) in linear time. Examples of memoized recursive descent parsers are known from at least as early as 1993. This analysis of the performance of a packrat parser assumes that enough memory is available to hold all of the memoized results; in practice, if there is not enough memory, some parsing functions might have to be invoked more than once at the same input position, and consequently the parser could take more than linear time.

It is also possible to build LL parsers and LR parsers from parsing expression grammars, with better worst-case performance than a recursive descent parser without memoization, but the unlimited lookahead capability of the grammar formalism is then lost. Therefore, not all languages that can be expressed using parsing expression grammars can be parsed by LL or LR parsers.

Bottom-up PEG parsing
A pika parser uses dynamic programming to apply PEG rules bottom-up and right to left, which is the inverse of the normal recursive descent order of top-down, left to right. Parsing in reverse order solves the left recursion problem, allowing left-recursive rules to be used directly in the grammar without being rewritten into non-left-recursive form, and also confers optimal error recovery capabilities upon the parser, which historically proved difficult to achieve for recursive descent parsers.

No compilation required
Many parsing algorithms require a preprocessing step where the grammar is first compiled into an opaque executable form, often some sort of automaton. Parsing expressions can be executed directly (even if it is typically still advisable to transform the human-readable PEGs shown in this article into a more native format, such as S-expressions, before evaluating them).

Compared to regular expressions
Compared to pure regular expressions (i.e., describing a language recognisable using a finite automaton), PEGs are vastly more powerful. In particular they can handle unbounded recursion, and so match parentheses down to an arbitrary nesting depth; regular expressions can at best keep track of nesting down to some fixed depth, because a finite automaton (having a finite set of internal states) can only distinguish finitely many different nesting depths. In more theoretical terms, $$ \{a^n b^n\}_{n \geqslant 0} $$ (the language of all strings of zero or more $$a$$'s, followed by an equal number of $$b$$s) is not a regular language, but it is easily seen to be a parsing expression language, matched by the grammar

Here  is the starting expression. The  part enforces that the input ends after the , by saying “there is no next character”; unlike regular expressions, which have magic constraints   or   for this, parsing expressions can express the end of input using only the basic primitives.

The,  , and   of parsing expressions are similar to those in regular expressions, but a difference is that these operate strictly in a greedy mode. This is ultimately due to  being an ordered choice. A consequence is that something can match as a regular expression which does not match as parsing expression:

is both a valid regular expression and a valid parsing expression. As regular expression, it matches, but as parsing expression it does not match, because the   will match the  , then   will match the  , leaving nothing for the  , so at that point matching the sequence fails. "Trying again" with having  match the empty string is explicitly against the semantics of parsing expressions; this is not an edge case of a particular matching algorithm, instead it is the sought behaviour.

Even regular expressions that depend on nondeterminism can be compiled into a parsing expression grammar, by having a separate nonterminal for every state of the corresponding DFA and encoding its transition function into the definitions of these nonterminals — is effectively saying "from state A transition to state B if the next character is x, but to state C if the next character is y" — but this works because nondeterminism can be eliminated within the realm of regular languages. It would not make use of the parsing expression variants of the repetition operations.

Compared to context-free grammars
PEGs can comfortably be given in terms of characters, whereas context-free grammars (CFGs) are usually given in terms of tokens, thus requiring an extra step of tokenisation in front of parsing proper. An advantage of not having a separate tokeniser is that different parts of the language (for example embedded mini-languages) can easily have different tokenisation rules.

In the strict formal sense, PEGs are likely incomparable to CFGs, but practically there are many things that PEGs can do which pure CFGs cannot, whereas it is difficult to come up with examples of the contrary. In particular PEGs can be crafted to natively resolve ambiguities, such as the "dangling else" problem in C, C++, and Java, whereas CFG-based parsing often needs a rule outside of the grammar to resolve them. Moreover any PEG can be parsed in linear time by using a packrat parser, as described above, whereas parsing according to a general CFG is asymptotically equivalent to boolean matrix multiplication (thus likely between quadratic and cubic time).

One classical example of a formal language which is provably not context-free is the language $$ \{a^n b^n c^n\}_{n \geqslant 0} $$: an arbitrary number of $$a$$s are followed by an equal number of $$b$$s, which in turn are followed by an equal number of $$c$$s. This, too, is a parsing expression language, matched by the grammar

For  to match, the first stretch of $$a$$s must be followed by an equal number of $$b$$s, and in addition   has to match where the $$a$$s switch to $$b$$s, which means those $$b$$s are followed by an equal number of $$c$$s.

Memory consumption
PEG parsing is typically carried out via packrat parsing, which uses memoization to eliminate redundant parsing steps. Packrat parsing requires internal storage proportional to the total input size, rather than to the depth of the parse tree as with LR parsers. Whether this is a significant difference depends on circumstances; if parsing is a service provided as a function then the parser will have stored the full parse tree up until returning it, and already that parse tree will typically be of size proportional to the total input size. If parsing is instead provided as a generator then one might get away with only keeping parts of the parse tree in memory, but the feasibility of this depends on the grammar. A parsing expression grammar can be designed so that only after consuming the full input will the parser discover that it needs to backtrack to the beginning, which again could require storage proportional to total input size.

For recursive grammars and some inputs, the depth of the parse tree can be proportional to the input size, so both an LR parser and a packrat parser will appear to have the same worst-case asymptotic performance. However in many domains, for example hand-written source code, the expression nesting depth has an effectively constant bound quite independent of the length of the program, because expressions nested beyond a certain depth tend to get refactored. When it is not necessary to keep the full parse tree, a more accurate analysis would take the depth of the parse tree into account separately from the input size.

Computational model
In order to attain linear overall complexity, the storage used for memoization must furthermore provide amortized constant time access to individual data items memoized. In practice that is no problem — for example a dynamically sized hash table attains this – but that makes use of pointer arithmetic, so it presumes having a random-access machine. Theoretical discussions of data structures and algorithms have an unspoken tendency to presume a more restricted model (possibly that of lambda calculus, possibly that of Scheme), where a sparse table rather has to be built using trees, and data item access is not constant time. Traditional parsing algorithms such as the LL parser are not affected by this, but it becomes a penalty for the reputation of packrat parsers: they rely on operations of seemingly ill repute.

Viewed the other way around, this says packrat parsers tap into computational power readily available in real life systems, that older parsing algorithms do not understand to employ.

Indirect left recursion
A PEG is called well-formed if it contains no left-recursive rules, i.e., rules that allow a nonterminal to expand to an expression in which the same nonterminal occurs as the leftmost symbol. For a left-to-right top-down parser, such rules cause infinite regress: parsing will continually expand the same nonterminal without moving forward in the string. Therefore, to allow packrat parsing, left recursion must be eliminated.

Practical significance
Direct recursion, be that left or right, is important in context-free grammars, because there recursion is the only way to describe repetition: People trained in using context-free grammars often come to PEGs expecting to use the same idioms, but parsing expressions can do repetition without recursion: A difference lies in the abstract syntax trees generated: with recursion each  or   can have at most two children, but with repetition there can be arbitrarily many. If later stages of processing require that such lists of children are recast as trees with bounded degree, for example microprocessor instructions for addition typically only allow two operands, then properties such as left-associativity would be imposed after the PEG-directed parsing stage.

Therefore left-recursion is practically less likely to trouble a PEG packrat parser than, say, an LL(k) context-free parser, unless one insists on using context-free idioms. However, not all cases of recursion are about repetition.

Non-repetition left-recursion
For example, in the arithmetic grammar above, it could seem tempting to express operator precedence as a matter of ordered choice —  would mean first try viewing as   (since we parse top–down), second try viewing as , and only third try viewing as   — rather than via nesting of definitions. This (non-well-formed) grammar seeks to keep precedence order only in one line:

Unfortunately matching an  requires testing if a   matches, while matching a   requires testing if an   matches. Because the term appears in the leftmost position, these rules make up a circular definition that cannot be resolved. (Circular definitions that can be resolved exist—such as in the original formulation from the first example—but such definitions are required not to exhibit pathological recursion.) However, left-recursive rules can always be rewritten to eliminate left-recursion. For example, the following left-recursive CFG rule:

can be rewritten in a PEG using the plus operator:

The process of rewriting indirectly left-recursive rules is complex in some packrat parsers, especially when semantic actions are involved.

With some modification, traditional packrat parsing can support direct left recursion, but doing so results in a loss of the linear-time parsing property which is generally the justification for using PEGs and packrat parsing in the first place. Only the OMeta parsing algorithm supports full direct and indirect left recursion without additional attendant complexity (but again, at a loss of the linear time complexity), whereas all GLR parsers support left recursion.

Unexpected behaviour
A common first impression of PEGs is that they look like CFGs with certain convenience features — repetition operators  as in regular expressions and lookahead predicates   — plus ordered choice for disambiguation. This understanding can be sufficient when one's goal is to create a parser for a language, but it is not sufficient for more theoretical discussions of the computational power of parsing expressions. In particular the nondeterminism inherent in the unordered choice  of context-free grammars makes it very different from the deterministic ordered choice.

The midpoint problem
PEG packrat parsers cannot recognize some unambiguous nondeterministic CFG rules, such as the following: Neither LL(k) nor LR(k) parsing algorithms are capable of recognizing this example. However, this grammar can be used by a general CFG parser like the CYK algorithm. However, the language in question can be recognised by all these types of parser, since it is in fact a regular language (that of strings of an odd number of x's).

It is instructive to work out exactly what a PEG parser does when attempting to match against the string. As expected, it recursively tries to match the nonterminal  at increasing positions in this string, until failing the match against the , and after that begins to backtrack. This goes as follows: Position: 123456 String: xxxxxq Results:      ↑ Pos.6: Neither branch of S matches ↑ Pos.5: First branch of S fails, second branch succeeds, yielding match of length 1. ↑ Pos.4: First branch of S fails, second branch succeeds, yielding match of length 1. ↑ Pos.3: First branch of S succeeds, yielding match of length 3. ↑ Pos.2: First branch of S fails, because after the S match at 3 comes a q.              Second branch succeeds, yielding match of length 1. ↑ Pos.1: First branch of S succeeds, yielding match of length 3. Matching against a parsing expression is greedy, in the sense that the first success encountered is the only one considered. Even if locally the choices are ordered longest first, there is no guarantee that this greedy matching will find the globally longest match.

Ambiguity detection and influence of rule order on language that is matched
LL(k) and LR(k) parser generators will fail to complete when the input grammar is ambiguous. This is a feature in the common case that the grammar is intended to be unambiguous but is defective. A PEG parser generator will resolve unintended ambiguities earliest-match-first, which may be arbitrary and lead to surprising parses.

The ordering of productions in a PEG grammar affects not only the resolution of ambiguity, but also the language matched. For example, consider the first PEG example in Ford's paper (example rewritten in pegjs.org/online notation, and labelled $G_1$ and $G_2$):

Ford notes that The second alternative in the latter PEG rule will never succeed because the first choice is always taken if the input string ... begins with 'a'.. Specifically, $G_1$ (i.e., the language matched by $G_2$) includes the input "ab", but $L(G_1)$ does not. Thus, adding a new option to a PEG grammar can remove strings from the language matched, e.g. $G_1$ is the addition of a rule to the single-production grammar, which contains a string not matched by $L(G_2)$. Furthermore, constructing a grammar to match $G_2$ from PEG grammars $G_2$ and $L(G_1) \cup L(G_2)$ is not always a trivial task. This is in stark contrast to CFG's, in which the addition of a new production cannot remove strings (though, it can introduce problems in the form of ambiguity), and a (potentially ambiguous) grammar for $G_1$ can be constructed

Theory of parsing expression grammars
It is an open problem to give a concrete example of a context-free language which cannot be recognized by a parsing expression grammar. In particular, it is open whether a parsing expression grammar can recognize the language of palindromes.

The class of parsing expression languages is closed under set intersection and complement, thus also under set union.

Undecidability of emptiness
In stark contrast to the case for context-free grammars, it is not possible to generate elements of a parsing expression language from its grammar. Indeed, it is algorithmically undecidable whether the language recognised by a parsing expression grammar is empty! One reason for this is that any instance of the Post correspondence problem reduces to an instance of the problem of deciding whether a parsing expression language is empty.

Recall that an instance of the Post correspondence problem consists of a list $$ (\alpha_1,\beta_1), (\alpha_2,\beta_2), \dotsc, (\alpha_n,\beta_n) $$ of pairs of strings (of terminal symbols). The problem is to determine whether there exists a sequence $$\{k_i\}_{i=1}^m$$ of indices in the range $$\{1,\dotsc,n\}$$ such that $$ \alpha_{k_1} \alpha_{k_2} \dotsb \alpha_{k_m} = \beta_{k_1} \beta_{k_2} \dotsb \beta_{k_m} $$. To reduce this to a parsing expression grammar, let $$ \gamma_0, \gamma_1, \dotsc, \gamma_n $$ be arbitrary pairwise distinct equally long strings of terminal symbols (already with $$2$$ distinct symbols in the terminal symbol alphabet, length $$\lceil \log_2(n+1) \rceil$$ suffices) and consider the parsing expression grammar $$ \begin{aligned} S &\leftarrow \&(A \, !.) \&(B \, !.) (\gamma_1/\dotsb/\gamma_n)^+ \gamma_0 \\ A &\leftarrow \gamma_0 / \gamma_1 A \alpha_1 / \dotsb / \gamma_n A \alpha_n \\ B &\leftarrow \gamma_0 / \gamma_1 B \beta_1 / \dotsb / \gamma_n B \beta_n \end{aligned} $$ Any string matched by the nonterminal $$A$$ has the form $$\gamma_{k_m} \dotsb \gamma_{k_2} \gamma_{k_1} \gamma_0 \alpha_{k_1} \alpha_{k_2} \dotsb \alpha_{k_m}$$ for some indices $$k_1,k_2,\dotsc,k_m$$. Likewise any string matched by the nonterminal $$B$$ has the form $$\gamma_{k_m} \dotsb \gamma_{k_2} \gamma_{k_1} \gamma_0 \beta_{k_1} \beta_{k_2} \dotsb \beta_{k_m}$$. Thus any string matched by $$S$$ will have the form $$\gamma_{k_m} \dotsb \gamma_{k_2} \gamma_{k_1} \gamma_0 \rho$$ where $$ \rho = \alpha_{k_1} \alpha_{k_2} \dotsb \alpha_{k_m} = \beta_{k_1} \beta_{k_2} \dotsb \beta_{k_m}$$.

Practical use
Python reference implementation CPython introduced a PEG parser in version 3.9 as an alternative to the LL(1) parser and uses just PEG from version 3.10. The jq programming language uses a formalism closely related to PEG.

title: Parsing expression grammar


text:
Category:Toy cars and trucks

This category is covered by articles such as Model car, Model commercial vehicle, and Die-cast toy

__NOGALLERY__

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: Category:Toy cars and trucks


text:
Internet Tax Nondiscrimination Act

The Internet Tax Nondiscrimination Act was a U.S. federal law that banned Internet taxes in the United States. Signed into law on December 3, 2004, by George W. Bush, it extended until 2007 the then-current moratorium on new and discriminatory taxes on the Internet. It also extended the federal prohibition against state and local Internet access taxes until November 2007. The law's primary supporters were Representative Christopher Cox (R-California) and Senator Ron Wyden (D-Oregon), as well as Senator George Allen (R-Virginia).

The law was supported by a congressionally sponsored study commission known as the Advisory Commission on Electronic Commerce, which studied Internet taxes in 1999 and 2000. The Commission was chaired by then-Virginia Governor James S. Gilmore, III, who led a coalition of Commission members to issue a final report opposing taxation of the Internet and eliminating federal telephone taxes, among other ideas.

On November 1, 2007, President Bush signed the "Internet Tax Freedom Act Amendment Act of 2007" into law. It extended the prohibitions against multiple and discriminatory taxes on electronic commerce until November 1, 2014. See 47 United States Code Section 151.

title: Internet Tax Nondiscrimination Act


text: Category:Censorship

title: Category:Censorship


text:
Rad Racer

Rad Racer, known as Highway Star (ハイウェイスター) in Japan, is a racing video game developed and published by Square for the Nintendo Entertainment System (NES) in 1987. In this game, players drive a Ferrari 328 or a generic Formula One racing machine through a racecourse. The game was released in North America and Europe months after its debut. The title became well known for being one of two titles from Square that made use of stereoscopic 3D, which was made possible by wearing a pair of anaglyph glasses. Square president Masafumi Miyamoto initially conceived the game as an opportunity for developer Nasir Gebelli to demonstrate his 3D programming skills. Gebelli developed, and often drew by hand, the graphics for the game's 3D mode.

The game sold 1.96 million copies and is considered one of the best racing games on the NES, but was criticized as being derivative of other racing games from the period. Reviewers widely compared the game to Out Run, though opined that Rad Racer was different in some ways, and they praised the sense of speed. The game appeared in the 1989 film The Wizard and was one of three games to feature a unique competition course in the 1990 Nintendo World Championship.

Gameplay
Rad Racer is a racing game in which the player races in a "Transamerica" race from the West Coast to the East Coast. The gameplay is sprite-based, and the player controls the car from a "behind the vehicle" perspective. At the start of the game, the player chooses between two types of car to race, either a 328 Twin Turbo or an F1 Machine, though both cars perform exactly the same. The objective is to complete eight driving stages of varying skylines, environments, and locations, including Los Angeles, San Francisco, and Athens. Competitors' vehicles get faster as the stages progress and include Volkswagen Beetles to Ferrari Testarossas. The player's car can accelerate to 100 km/h, which turbo can then be activated to accelerate to a maximum of 255 km/h. The player can brake, steer, and change the background music while driving. Hitting any obstacles or other cars may cause the player's vehicle to flip and crash. Players have a limited amount of time to reach the next "checkpoint" in the course, which is indicated by a checkered flag; passing the flag adds additional time or may signal the end of the course. Players have a simulated dashboard that contains a progress bar, speedometer, tachometer, score, and time remaining. Unlike in Out Run where the game ends immediately, when time runs out, the player's vehicle coasts and decelerates down to 0 km/h before the game ends, giving the player an extra five to ten seconds to possibly reach the next checkpoint.

Players can activate a 3D mode during play by pressing the "Select" button and wearing 3D glasses. Players could also use the Power Glove to control their vehicle. The game was also compatible with the Famicom 3D, an accessory to the original Famicom released in Japan that utilized LCD "shutter glasses" to simulate 3D.

Development and release

The root cause for the game's development was the then-President of Square Masafumi Miyamoto wanting to implement newly hired programmer Nasir Gebelli's skills with 3D programming previously used to develop games for the Apple II. Rad Racer was the second title by Square to use anaglyph-based 3D: Gebelli worked on both titles and was influenced by his work on the first 3D game titled The 3-D Battles of WorldRunner. Two game programmers had left Square as Gebelli was hired, resulting in Gebelli to begin programming the game by himself. Gebelli remained in Japan to figure out how to create realistic background movement of the game's scenery while the rest of Square was on vacation in Hawaii.

Game developer Takashi Tokita worked on Rad Racer with Gebelli, alongside developer Hiromichi Tanaka and artist Kazuko Shibuya who had previously worked on The 3-D Battles of WorldRunner with Gebelli. Akitoshi Kawazu also contributed to the development as his first game under Square. Hironobu Sakaguchi and Akitoshi Kawazu both worked on Rad Racer, causing developer Koichi Ishii to plan for the original Final Fantasy by himself briefly.

Though Gebelli found the work challenging, he was able to simulate the moving road in what Tokita described as a "tricky" bit of programming. To make the roads look like they were turning in 3D on a typical television, most of which at the time used cathode ray tubes, the developers integrated scrolling by individual scanlines. Final Fantasy III used this method to create game effects for the enemy Odin. Since the game was not programmed to display single sprites but was drawn line by line, Gebelli came several times a week memorizing Shibuya's instructions on how the courses should be drawn. Shibuya would point out how many pixels and what color the lines had to be to create roads to Gebelli. Square produced six different versions of Rad Racer for different regions to accommodate the different 3D viewing systems needed if players were using either a typical television or the Famicom 3D System and a different version required for the PAL region. At the time, programmers usually worked on games individually, which Tokita described having someone to work with as an asset. Tokita designed and wrote the program for the billboards that appear in the game. Tokita also made all four levels and during the process, he learned that the middle two levels shared assets, which saved time and memory. Shibuya worked on the character sprites in which Final Fantasy developer Koichi Ishii stated that the sprites of 3-D Battles of WorldRunner and Rad Racer typify Kazuko Shibuya’s pixel art style. Akitoshi Kawazu’s designed the Rad Racer ending that indicated with dots how far the player's progress.

Rad Racer was released in Japan on August 7, 1987. It was later released in North America in October 1987 and in Europe on January 15, 1988. In August 1987, Nintendo released an arcade machine called Playchoice-10 that contained up to ten popular NES titles. Amongst the eligible NES games, Rad Racer was also available on the arcade machine.

Reception
Rad Racer was met with favorable reviews, enjoyed commercial success, and sold 1.96 million copies. It also ranked 8th on Nintendo Power's player's poll Top 30. Famitsu praised the sense of speed but felt the game was slightly monotonous. Japanese publication Family Computer Magazine applauded the variety of game landscapes found in different levels. British magazine Computer and Video Games called it an "extremely playable racing game" and said "things get very fast and competitive as you get further into the game."

Retrospective reviews gave the title a more mixed reception. Skyler Miller of GameSpot, in his article The History of Square, commented that the game bears more than a passing resemblance to Out Run," but went on to say that "it's more than just a clone" and credited the game with "effectively convey[ing] the proper sense of speed." He continued to criticize the 3D effect, stating it created some sense of depth to the gameplay but was hindered by a pronounced screen flickering. He concluded that the game does not require 3D features and that it stands on its own as a "fine racing game". Craig Harris of IGN stated in his retrospective that the game's simplicity and "race or die" focus make it one of the best racing games of its time. He also mentioned how the power glove does not improve player control, though felt the experience was still fun. Hardcore Gaming 101’s Jeremy Peeples and Neil Foster praised the game's sense of speed and arcade levels of difficulty, but criticized the lack of personality and faulty collision physics.

Rad Racer was ranked number 57 on IGN's Top 100 Nintendo Entertainment System games and was called "iconic" and one of the NES's premier racing games. Maxim included the game amongst thirteen others in their greatest 8-bit video games of all time list.

Legacy
Due to most of Rad Racer sales being from the United States, Rad Racer II was developed and released only in North America for the NES and the arcade. The sequel featured eight new tracks and new music but similar gameplay. Hardcore Gamer 101 said that steering was looser than the first game and rival cars more aggressive, leading to a less enjoyable playing experience. Despite the efforts of Square to make unique games with 3D features such as Rad Racer and 3-D Worldrunner, and high sales, the company was in financial trouble. These events are what led to a final attempt at a breakout hit, Final Fantasy. Rad Racer appeared in a scene in the movie The Wizard. It was also one of three games, including Super Mario Bros. and Tetris, featured at the 1990 Nintendo World Championship with an exclusive racing level to complete as one of the rounds of competition. The limited-edition release of the game's cartridge used in the tournament is now one of the rarest and most valuable Nintendo games available.

title: Rad Racer


text:
Kakabeka Falls

Kakabeka Falls is a waterfall on the Kaministiquia River, located beside the village of Kakabeka Falls in the municipality of Oliver Paipoonge, Ontario, 30 km west of the city of Thunder Bay.

The falls have a drop of 40 m, cascading into a gorge carved out of the Precambrian Shield by meltwater following the last glacial maximum. Because of its size and ease of access, it has been consequently nicknamed "the Niagara of the North".

The rock face of the falls and the escarpments along the gorge are composed primarily of unstable shale, and are eroding. These rocks host sensitive flora, and contain some of the oldest fossils in existence, some 1.6 billion years of age. Due to the fragile rock, going into the gorge below the falls is prohibited.

The name "Kakabeka" comes from the Ojibwe word gakaabikaa "waterfall over a cliff" ([ help ]).

Kakabeka Falls Provincial Park
Kakabeka Falls Provincial Park, established in 1955, covers 5 km2 and is managed by Ontario Parks. It surrounds the falls and extends along the Kaministiquia River, which was used centuries ago by voyageurs, who were the first Europeans to overwinter annually in northern Ontario. They used the Kaministiquia River as a major route to the northwest, with a 1.3 km mountain portage around the falls. A hotel with terrace which was once located on the edge of the gorge was removed after the park's creation. It included a round restaurant that once overlooked the falls, and in winter would get covered in a thick layer of ice from the spray of the falls.

The park has two campgrounds with 169 campsites, 90 of which have electricity. The park maintains 17.9 km of hiking on six trails, and offers cross-country ski trails in the winter. A small Natural Heritage Education program is operated within the park in the summer, and offers daily interpretive programs, guided hikes, and a visitor centre.

Legend of Green Mantle
The Legend of Green Mantle is about an Ojibwe chief who upon hearing news of an imminent attack from the Sioux tribe instructs his daughter, Princess Green Mantle, to devise a plan to protect her people. She enters the Sioux camp along the Kaministiquia River and, pretending to be lost, she bargains with them to spare her life if she will bring them to her father's camp. Placed at the head of the canoe, she instead leads herself and the Sioux warriors over the falls to their deaths, sparing her tribe from the attack. The legend claims that one can see Green Mantle when looking into the mist of Kakabeka Falls, a monument to the princess that gave her life to save her people. Other versions of the legend say she came across the Sioux herself, and later jumped out of the canoe ahead of the falls and swam to shore, leaving the Sioux to go over the falls, then ran back to the camp to warn her people.

Kakabeka Falls in art
The most famous painting featuring the falls, painted by Lucius Richard O'Brien in 1882, is held by the National Gallery of Canada.

Frances Anne Hopkins, whose historic paintings are well known for her portrayal of Canadian life, painted the portage around the falls in 1877. Her painting, "The Red River Expedition at Kakabeka Falls, Ontario", depicts the Red River Expedition of 1870 portaging around the falls on its way to the Red River Colony to interdict Louis Riel. Edward Roper also painted them. His Portage Below Kakabeka Falls, Kaministiquia River, Lake Superior (Peter Winkworth Collection of Canadiana. Library and Archives Canada, e000996335) is dated 1878.

title: Kakabeka Falls


text:
Cincinnati riots of 2001

The 2001 Cincinnati riots were a series of civil disorders which took place in and around the Over-the-Rhine neighborhood of downtown Cincinnati, Ohio from April 9 to 13, 2001. They began with a peaceful protest in the heart of the city on Fountain Square over the inadequate police response to the police shooting of unarmed African American 19-year-old Timothy Thomas. The peaceful protest soon turned into a march that went in the direction of the victim's home neighborhood of Over-the-Rhine.

The period of unrest was sparked after 19-year-old Timothy Thomas, an unarmed African American man, was shot and killed by Cincinnati Police Department Patrolman Stephen Roach during an attempt to arrest him for non-violent misdemeanors, most of which were traffic citations. Tensions were already high in the city following a series of other incidents involving police brutality and racial profiling, including thirteen deaths. Protests erupted into four nights of unrest, with instances of recorded property destruction in Cincinnati, objects thrown at police officers by demonstrators, and vandalism and looting of businesses before a city-imposed curfew eventually ended the unrest.

It was ultimately determined that the period of unrest caused $3.6 million in damage to businesses and another $1.5 to $2 million to the city. A subsequent community boycott of downtown businesses had an estimated adverse impact of $10 million on the area. Incidents of violent crime rose in the downtown area for several years thereafter. The city worked with the community and police to improve training and policies to prevent incidents like that in which Thomas was killed.

Background
The initial incident and much of the subsequent unrest began on Fountain Square in Downtown Cincinnati. Much of the subsequent unrest took place in Over-the-Rhine, the neighborhood of the victim immediately north of Cincinnati's central business district. A 2000 demographic profile of the neighborhood showed a resident population of 7,368, of whom 5,974 were African American. The profile also showed significant poverty, unemployment, and a lack of development in the area for several decades. Some 1,667 of 3,594 housing units, or more than one third, in the neighborhood were vacant. About 96 percent of the occupied houses were renter-occupied. The neighborhood had a concentration of African Americans, who otherwise made up 40 percent overall of the 331,000 residents of the city. At the time of the protests and growing unrest, the median income in Over-the-Rhine was $8,600 compared to $26,774 for the city overall. Author David Waddington attributed the poverty of the area to high unemployment resulting from a loss of manufacturing jobs in the city, as well as cuts in youth programs in the city. The neighborhood had a high rate of crimes, in particular drug-related offenses.

The array of poverty-associated problems resulted in heightened tensions between African-American residents in the neighborhood and the Cincinnati Police Department. Between 1995 and April 2001, fifteen black males suspected of crimes had been killed by Cincinnati police during confrontation or while in custody, including four since November 2000, while no white suspects were killed in that period.

In particular, two recent deaths had sparked tensions: Roger Owensby, Jr. died November 7, 2000, allegedly of asphyxiation from a chokehold from a police officer, and Jeffrey Irons died the next day in a scuffle with police. One of the officers was acquitted, while the other case ended in a mistrial and the officer was not re-tried.

This string of deaths led to claims by the community that the police were acting discriminatorily. Three weeks before the protests and growing unrest, the American Civil Liberties Union (ACLU) and a group of local organizations filed a civil lawsuit against the police department and city, alleging 30 years of racial profiling. A number of other civil suits were initiated against the department, including one African-American man who alleged he was handcuffed and beaten during a traffic stop. Bomani Tyehimba filed a lawsuit in 1999 against the city of Cincinnati. He claimed that during a routine traffic stop, police illegally ordered him out of his car, handcuffed him and held a gun to his head.

A local independent newspaper, CityBeat, published research that an "analysis of 141,000 traffic citations written by Cincinnati Police in a 22-month period found black drivers twice as likely as whites to be cited for driving without a license, twice as likely to be cited for not wearing a seat belt and four times as likely to be cited for driving without proof of insurance." The NAACP argued that such statistics were the result of police targeting "driving while black," rather than actual differences in the rate of offenses committed by different groups.

Incident
In little more than two months preceding this incident, Timothy Thomas had received numerous traffic citations: he "was pulled over 11 times by six different white officers and four black officers. They cited Thomas for 21 violations, almost all of them for exactly the same things – not wearing a seat belt or driving without a license."

In the early morning hours of April 7, 2001, Cincinnati police in Over-the-Rhine attempted to arrest the 19-year-old, who was wanted on 14 nonviolent misdemeanor counts, of which 12 were traffic citations. Thomas was pursued for 10 minutes by nine officers, who were later joined by Patrolman Stephen Roach. The pursuit culminated at 2:20 a.m. when Thomas rounded a corner in a dark alley and surprised Roach, who shot him in the chest at close range. Roach said he believed Thomas was reaching for a gun in his waistband, but investigation later determined Thomas was trying to pull up his "baggy pants." Roach also said that he was not aware that charges against Thomas were non-violent, and that Thomas ignored an order to stop. Thomas was rushed to a hospital, but died of his wounds.

Disturbance
The shooting of Thomas sparked widespread outrage in the city, especially in Over-the-Rhine. On April 9, a group of 200 protesters brandishing signs, including Thomas' mother, Angela Leisure, gathered outside Cincinnati City Hall while the city council was in session, to demand public explanation for Thomas' shooting. The protesters also demanded to know the results of the police investigation of the shooting, but were told the department was not ready and was still investigating. The council members stayed inside city hall for three hours and did not respond to the crowd's demands.

Later that evening, several hundred residents gathered outside the Cincinnati Police District 1 headquarters in Over-the-Rhine and confronted a line of police officers on horseback and in police cruisers. For about an hour, the crowd threw stones and bottles at police, smashed the station's front door, pulled the station flag from its mast and re-hung it upside down. Police dispersed the crowd with tear gas, bean bags and rubber bullets. Ten arrests were made during the incident.

On the afternoon of April 10, the unrest resumed after a static protest on Fountain Square. Approximately 20 to 30 African-Americans moved through city streets towards Over the Rhine, soon followed by police officers. At two road intersections, the crowd began throwing bottles and garbage at police, who retreated both times. Parts of the crowd headed back downtown, where they began to overturn garbage cans, vendor carts, and newspaper boxes. The crowd began smashing windows of businesses and looting stores. Police moved in on horseback or with linked arms and dispersed the crowd with bean bags, tear gas and rubber bullets. They made sixty-six arrests of protesters over the course of the day. The city called in deputies from the Hamilton County Sheriff's Office to help when looting and vandalism broke out in other poorer neighborhoods in Cincinnati, including Walnut Hills and Avondale, where vandals broke windows and set small fires. Several gunshots were fired during the night, and there were a number of injuries reported in the incidents. Participants in the period of unrest dispersed in the early morning hours.

Many of the damaged downtown businesses resumed normal operations the next day. But, at nightfall on April 11, another interval of unrest broke out downtown as nothing had yet been done in retribution for the killing of Timothy Thomas, and more businesses were damaged and looted. Sporadic incidents continued the next evening, and a police crackdown resulted in another 82 arrests. By April 12, many downtown businesses did not open, and workers for many others refused to go downtown. A third night of unrest continued that evening, causing further damage.

The morning of April 13, Cincinnati Mayor Charles J. Luken announced a citywide curfew from 8 p.m. to 6 a.m. for all but work travelers. He also declared a state of emergency and brought in 125 Ohio Highway Patrol troopers to assist with policing. In all, 800 people were arrested for violating curfew conditions. This curfew did not extend to the city's suburbs, prompting some criticism from Cincinnati residents of uneven enforcement of the curfew.

April 14 was the day of Timothy Thomas' funeral. Police kept a helicopter airborne and stationed police two blocks from the service. About 2,000 protesters began a peaceful march downtown following the service. A procession of 30 from the funeral marched to the intersection of Elm and Liberty streets. A group of seven law enforcement personnel arrived in patrol cruisers and fired bean bag ammunition into a crowd of 20, injuring four, including two children. Police contended they were acting under orders to disperse a large crowd blocking the intersection, while witnesses claimed the police did not provide warning and singled out black members of the group.

Aftermath
The total damage sustained from the period of protest and unrest amounted to $3.6 million. In all, the city said 120 businesses experienced damage due to the civil unrest. It cost the city another $1.5 million to $2 million for emergency responders and equipment damage. The four days of protest and unrest are considered the largest urban disturbance in the United States since the 1992 Los Angeles period of unrest. There has been extensive discussion within the local community about the effects of suburbanization and urban decay in the city, as well as the redevelopment of Over-the-Rhine, a historic neighborhood. The incidents again strained the relationship between the police and residents of the city's minority communities. In 2002, the city signed an agreement for initiatives to improve police service to minority communities, revise use-of-force guidelines and form a committee for community policing initiatives.

CPD officers began an unofficial work slowdown, which coincided with a rise in violent crime in the downtown area. In 2001 and 2002, violent crime and property crime rates rose in the city, with property crime rates peaking in 2003 before declining through 2010. The city has a crime rate higher than the national average but similar to other major cities. Initiatives were subsequently begun by community groups to reduce violence.

Sixty-three participants of the protest involved with property destruction and/or violence were indicted on felony charges.

Roach was tried for negligent homicide in September 2001. Cincinnati police attempted to waive the trial in favor of a bench ruling. Roach, who left the force to join a suburban police department, was later acquitted of the charges. Several isolated incidents of civil unrest occurred after his verdict was announced. An internal police investigation found Roach had lied in his incident report, had not followed department firearm procedures, and had not given Thomas sufficient time to respond to his order.

Angered by police reaction, particularly the April 14 incident, several community groups organized a boycott of downtown businesses. Several prominent African-American entertainers scheduled to perform in the city, including Bill Cosby, Whoopi Goldberg, and Smokey Robinson cancelled their performances there. After a year, the community boycott was estimated to have caused a $10 million negative economic impact on the city.

Significant gentrification of the Over the Rhine community began just before and continued after the period of civil unrest, as developers found property values low enough to allow acquisition and redevelopment. A number of tech companies and nightlife spots have opened in the neighborhood. By 2007, several new community events had been organized. Several large Cincinnati companies, including Fifth Third Bank, Procter & Gamble and Kroger, announced support for reforms in the city, such as investment in schools and minority-hiring programs.

Police behavior and protocols were investigated, and changes were made to improve training and interaction with the community. On the ten-year anniversary of the protests and civil unrest, Cincinnati Enquirer reported that "[t]he riots neither initiated the racial tension nor the police reforms, but accelerated both." Among the reforms were the following:

 * Training officers to deal with "low-light situations" (such as the alley where Timothy Thomas was fatally shot).
 * Training officers how to recognize suspects' potential mental health issues and how to interact with mentally ill people.
 * Cincinnati patrol cars were equipped with computers to give police officers access to complete and detailed criminal records.
 * Changes in the department's "foot pursuit policy," requiring officers to "assess whether a pursuit is appropriate, taking into consideration the seriousness of the offense, whether the suspect is armed and their ability to apprehend at a later date."
 * Requiring officers to complete "contact cards" after traffic stops, noting details about the car's driver and passengers, including race. This change arose from complaints of racial profiling in traffic stops.
 * The Citizens Complaint Authority was created in 2002 to independently review all "serious uses of force" by police officers.
 * In late 2003 the city 'updated Tasers for all officers after the death of Nathaniel Jones, an African-American man with drugs in his system." Jones died after officers "hit him repeatedly with their batons."

title: Cincinnati riots of 2001


text:
Jimmy Ryan (baseball)

James Edward Ryan (February 11, 1863 – October 29, 1923), nicknamed "Pony", was an American center fielder in Major League Baseball (MLB) who played between 1885 and 1903, primarily for the Chicago White Stockings / Colts / Orphans. He batted .300 eleven times, retiring with a career average of .308, and was the seventh player to hit 100 career home runs. Ryan set major league records for career games (1,945) and assists (375) as an outfielder that were later broken by Jesse Burkett and Tris Speaker respectively. He also ended his career ranking second in putouts (3,701) and fourth in double plays (71).

Baseball career
A native of Clinton, Massachusetts, Ryan started his major league career with Chicago of the National League (NL) in 1885. He played for the team until 1900, except for the 1890 season when he played for the Chicago Pirates of the Players' League.

Ryan had his best season in 1888, leading the NL in hits (182), doubles (33), home runs (16), total bases (283), and slugging percentage (.515). He was also second in batting average (.332), extra-base hits (59) and runs scored (115). During that season, Ryan hit for the cycle on July 28. He also appeared in that game as a pitcher, becoming the first player in major league history to hit for the cycle and pitch in the same game. The White Stockings beat the Detroit Wolverines, 21–17.

Ryan was the most severely injured player when the Chicago team was involved in a train wreck at Lindsey, Ohio on August 6, 1893 when their sleeper cars derailed and crashed into a freight train that was stopped on a siding, resulting in three fatalities. Ryan's legs were shattered, and for weeks there were doubts that he would even be able to walk again, resulting in a $10,000 settlement from the Lake Shore and Michigan Southern Railway. As late as the following January, it was still considered unlikely that he would be able to resume his career, but he returned to post a career-high .357 batting average. Almost exactly one year after the wreck, on August 5, 1894, Ryan and teammate Walt Wilmot were credited with saving hundreds of lives when a fire broke out in the stands at West Side Park; the two players used bats to break down barbed-wire fencing, allowing fans to escape onto the field.

In 1900, Ryan broke Tom Brown's career record of 348 assists by an outfielder. Ryan finished his career with 375 assists. He held the record until Tris Speaker broke it in 1924. Ryan ended his major league career with the Washington Senators of the American League in 1902–1903.

Career statistics
He was a career .308 hitter with 118 home runs and 1,093 runs batted in in 2,014 games. As a pitcher, he compiled a 6–1 record with a 3.62 earned run average and 43 strikeouts in 117 innings pitched. Ryan is 36th in runs scored, with him being 7th among 19th century players; the six ahead of him are each in the Baseball Hall of Fame.

Player profile
On the tough side, Ryan was one of the few players to punch a reporter at least twice. After his first episode, in 1887, Charlie Seymour of the Chicago Herald wrote, "Ryan slugged the magnificent Chicago reporter in Pittsburg[h] the other day." In the other, in 1892, he took exception to George Beachel of the Chicago Daily News. In the clubhouse after a game, Ryan "picked a quarrel with [Beachel], and then attacked him, using him up pretty badly. No arrests have been made." In 1896, he punched a train conductor after losing his place and his teammates had gone to bed. A conductor who intervened was "called down by Mr. Ryan, who got in one upper cut before [his longtime-captain manager Cap] Anson stopped the fun," wrote Tim Murnane of the Boston Globe.

In the 2001 book The New Bill James Historical Baseball Abstract, writer Bill James ranked Ryan as the 26th greatest center fielder of all time.

Personal life and death
Ryan died in Chicago at age 60. He was married twice and left no children. He was buried in an unmarked grave until 2022 until the help of the SABR Grave Marker Project helped efforts to lend a proper gravestone.

title: Jimmy Ryan (baseball)


text:
Talk:Serendib scops owl

The site was Kitulgala, not Sinharaja - I could have seen this, but didn't know the site when I was there earlier this year. Birdlife International gives independent verification of the site. jimfbleak 17:05, 11 Aug 2004 (UTC)

title: Talk:Serendib scops owl


text:
Bianchi (surname)

Bianchi, a plural of bianco ("white" in Italian), is an Italian surname. Notable people with the surname include:

 * Achille Bianchi (1837–?), Italian sculptor
 * Al Bianchi (1932–2019), American professional basketball player, coach, and general manager
 * Andrea Bianchi (1925–2013), Italian film director
 * Anthony Bianchi (born 1958), Japanese politician
 * Beto Bianchi (born 1966), Brazilian footballer
 * Bianca Bianchi (1855–1947), stage name of Bertha Schwarz, German/Austrian opera soprano
 * Bruno Bianchi (disambiguation), several people
 * Carlos Bianchi (born 1949), former Argentine football (soccer) player and coach
 * Craig Bianchi (born 1978), South African soccer player
 * Daniela Bianchi (born 1942), actress
 * Edoardo Bianchi (1865–1946), founder of Bianchi Bicycles in 1885
 * Eliodoro Bianchi (1773–1848), Italian operatic tenor
 * Emilio Bianchi (born 1957), Italian radio and TV journalist
 * Emanuele Bianchi (born 1984), Italian footballer
 * Eugenio Bianchi (born 1979), Italian physicist
 * Federico Bianchi (disambiguation), multiple people
 * Francesco Bianchi (disambiguation), multiple people
 * Frederick Bianchi, Duke of Casalanza (1768–1855), Austrian general
 * Frederick Bianchi (born 1954), American-born composer
 * Gerardo Bianchi (c. 1223–1302), Italian churchman
 * Giuseppe Bianchi (disambiguation), several people
 * (1845–1884), Italian explorer of Ethiopia
 * Jeff Bianchi (born 1986), American baseball player
 * Joe Bianchi (1871–1949), Italian-American artisan
 * Jules Bianchi (1989–2015), French Formula One driver, great-nephew of Lucien Bianchi
 * Kenneth Bianchi (born 1951), American serial killer
 * Leonardo Bianchi (1848–1927), Italian neuropathologist
 * Leonardo Bianchi (footballer) (born 1992), Italian footballer
 * Lorenzo Bianchi (1899–1983), Italian Catholic priest worked in Hong Kong
 * Lucien Bianchi (1934–1969), Italian-born Belgian racing driver, great-uncle of Jules Bianchi
 * Luigi Bianchi (1856–1928), Italian mathematician
 * Luigi Alberto Bianchi (1945–2018), Italian violinist and violist
 * Marius Bianchi (1823–1904), French politician
 * Marta Bianchi (born 1943), Argentine actress
 * Maurizio Bianchi (born 1955), Italian musician
 * Michael A. Bianchi, columnist for the Orlando Sentinel
 * Michele Bianchi (1883–1930), founding member of the Italian Fascism movement
 * Myriam Alejandra Bianchi (1961–1996), known by her stage name Gilda, Argentine singer and songwriter
 * Matthew Bianchi, Canadian film and television production designer, art director and set decorator
 * Olga Bianchi (1924–2015), Latin American pacifist and human rights activist
 * Orazio Filippo Bianchi (c. 1680–1757), Italian lawyer and classical scholar
 * Ottavio Bianchi (born 1943), former coach for a number of Serie A teams
 * Patrizio Bianchi (born 1952), Italian economist and politician
 * Regina Bianchi (1921–2013), Italian actress
 * Rolando Bianchi (born 1983), Italian footballer
 * Rosa María Bianchi (born 1948), Argentine-born Mexican actress
 * Susan Bianchi-Sand (born 1947), American former labor unionist
 * Suzanne M. Bianchi (1952–2013), American sociologist
 * Tom Bianchi (born 1945), American photographer
 * Valentin Lvovich Bianchi (1857–1920), Russian ornithologist
 * Vitaly Bianki (1894–1959), Russian children's writer, son of Valentin Lvovich Bianchi

Fictional characters

 * Dora Bianchi and Sven Bianchi, characters in the webcomic Questionable Content

title: Bianchi (surname)


text:
RAF Dishforth

Royal Air Force Dishforth or more simply RAF Dishforth is a former Royal Air Force station near Thirsk in North Yorkshire, England. Opened in 1936, the base was used as a bomber airfield during the Second World War with both British and Canadian squadrons flying missions from the airfield. After the war, the base was used by various squadrons and training units before being disposed of in 1992 and handed over to the Army Air Corps.

History
The site at Dishforth was elected during the expansion period of the Royal Air Force in the 1930s. Named after the village of Dishforth, just to the north of the main runway, the base was opened in September 1936. Just like RAF Leeming further north, the airfield was adjacent to the Great North Road (now the A1(M)), and even extended over the road for some of its dispersal areas in the late 1930s. Five C-type hangars were built at the south-east boundary of the airfield, with the technical areas beyond the hangars. The creation of hardstanding hangarage, and brick-built accommodation blocks and messes, made Dishforth a preferred posting over the wartime built airbases which operated mainly from Nissen huts (such as Dalton, Tholthorpe, and Wombleton).

The first squadrons to arrive were No. 10 Sqn in January 1937, who immediately transferred from Handley Page Heyford aircraft to Armstrong Whitworth Whitley Mk 1 aircraft, and in February, No. 78 Sqn arrived, also with Heyfords, and were re-equipped with Whitleys in July of that same year. It was the dispersals across the A1 road that the Whitleys of No. 78 Sqn were stored, with barriers having to be placed across the carriageway to allow the aircraft to move back and forth.

When the Second World War started, No. 10 Sqn were engaged in leaflet dropping over Europe (known as Nickel raids, or Nickelling), whilst No. 78 Sqn in the pre-war period had been used to assimilate new crews fresh from training. At this time, the base was under the command of No. 4 Group, and whilst some bombing raids did take place, the squadrons were mostly engaged in leaflet dropping, including one raid over Berlin which was a 1,000 mi round trip. In December 1939, No. 78 Squadron were sent to Linton-on-Ouse, and No. 51 Sqn moved in from Linton. Both No. 10 and No. 78 Sqns were used on bombing raids in the early part of 1940 with sorties over Norway and over the Ruhr.

In July 1940, No. 10 Sqn were transferred to RAF Leeming when it was opened, with an administrative detachment from No. 78 Sqn sent to Leeming as well to get the base up and running. Dishforth was used by several squadrons from RAF Leeming during early 1941 for '"bombing-up purposes", as the airfield at Leeming was in the process of being concreted. Later in 1940, No. 78 Sqn returned from Leeming, with No. 10 Sqn being posted out of Dishforth for Leeming, leaving No. 51 and No. 78 Sqns at Dishforth. In February 1941, Whitleys from both squadrons took part in Operation Colossus, a commando raid on aqueducts in southern Italy. The RAF at that time did not have any suitable aircraft to transport troops over such a long-distance, however, the range of the Whitleys, and their ventral (side) gun turret, which was easily adapted into a jumping position for troops, made it ideal for the task. No. 12 (Blind Approach Training) Flight (later to become No. 1512 (Beam Approach Training) Flight) was formed at Dishforth in September 1941, flying Airspeed Oxfords.

In April 1941, No. 78 Sqn was posted to RAF Middleton St George, leaving No. 51 Sqn as the only occupant. In the almost three-year tour that 51 Sqn performed at Dishforth, they flew 1,806 sorties, and lost 50 aircraft (an attrition rate of 2.8%). In early 1942, the Whitleys of 51 Sqn took part in raid on a radar installation in Bruneval, and in Operation Chariot, the raid on St. Nazaire. In June 1942, the first of the Royal Canadian Air Force squadrons, No. 425 (Alouette), was formed with Vickers Wellington aircraft. The squadron set about training and carried out their first raid on the night of the 5 and 6 October. In the same month as No. 425 were undertaking their first operational missions, No. 426 (Thunderbird) Squadron was formed up at Dishforth, becoming operational in January 1943.

In January 1943, Dishforth, along with ten other RAF airfields, was handed over from the RAF to the Royal Canadian Air Force (No. 4 Group RAF to No. 6 Group RCAF. Operations were concentrated at Leeming, Linton-on-Ouse and Middleton St George, with substations and the training bases being Topcliffe, Wombleton, Dalton and Dishforth, which had No. 1664 Heavy Conversion Unit. Both Canadian squadrons moved out of Dishforth in 1943; 425 in May and 426 in June respectively, which allowed for the runway to be upgraded. The RCAF kept Dishforth as the training arm for its bomber squadrons and when the upgrade was complete in November 1943, No. 1664 HCU (Heavy Conversion Unit) was allocated to the base.

In November 1944, the base was transferred into No. 7 Group, which had a responsibility for all the HCU stations. With hostilities in Europe at an end, the base was transferred again to RAF Transport Command, and continued with its training role. In November 1945, No. 1332 (Transport) Heavy Conversion Unit arrived from RAF Riccall, taking over training for long-haul transport routes and taking the aircraft form the existing HCUs at Dishforth.

Post war
Dishforth continued in the training role for transport aircraft after the war, and in 1956, No. 215 Sqn reformed at Dishforth with Scottish Aviation Pioneer aircraft, later disbanding at Dishforth in September 1958 to become No. 230 Sqn. In 1954, the base was initially approved for use in the PGM-17 Thor missile programme, but it never became one of the operational stations. In early 1962, No. 242 OCU was moved to Thorney Island and the base was put under a care and maintenance programme. Various aircraft from Leeming and Linton-on-Ouse used the airfield as a Relief Landing Ground (RLG), and the buildings were converted for use by the local police forces.

In 1992, the base was handed over to the Army Air Corps as Dishforth Airfield.

Badge and motto
The station badge features a white pack horse representing the transport nature of the base (post World War II), the horse is modelled on the White Horse of Kilburn, a nearby geographical feature in the Hambleton Hills. The station motto was Par Oneri (Equal to the task).

Incidents

 * 13 September 1955—Hastings TG584 lost control attempting to overshoot at RAF Dishforth and crashed; five died.

Notable personnel

 * Percy Charles Pickard, commanding officer of No. 51 Sqn during 1942
 * Tim Piper
 * Desmond J. Scott, post-war commanding officer of RAF Dishforth
 * James Brian Tait, commanded the air transport portion of Operation Colossus from RAF Dishforth

title: RAF Dishforth


text:
Northwestern Ontario Sports Hall of Fame

The Northwestern Ontario Sports Hall of Fame, established in 1978 in Thunder Bay, Ontario, Canada, is dedicated to the people of Northwestern Ontario who have achieved greatness in sport. It is located on 219 South May Street in Downtown Fort William.

Notable inductees

 * Andrea Cole, former Paralympic swimmer.
 * Fred Kearney (1897–1998), former Canadian ice hockey player for the St. Louis Flyers.
 * Fred Page (1915–1997), president of the Canadian Amateur Hockey Association and vice-president of the International Ice Hockey Federation, inducted into the Hockey Hall of Fame
 * Frank Sargent (1902–1988), president of the Canadian Amateur Hockey Association and Dominion Curling Association, inducted into the Canadian Curling Hall of Fame
 * Dave Siciliano (born 1946), ice hockey coach for the Lakehead Nor'Westers, Thunder Bay Flyers, Edmonton Ice, Owen Sound Platers, and the Sioux City Musketeers


text:
User talk:Chriscih

Hello and welcome to Wikipedia! Hope you like it here, and stick around.

Here are some tips to help you get started:

 * To sign your posts (on talk pages, for example) use the '~' symbol. To insert just your name, type ~~~ (3 tildes), or, to insert your name and timestamp, use ~~~~ (4 tildes).
 * Try the Tutorial, and feel free to experiment in the test area.
 * If you need help, post a question at the Help Desk
 * Follow the Simplified Ruleset
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Remember Neutral point of view
 * Explore, be bold in editing pages, and, most importantly, have fun!

Good luck!

NPOV style
Hi, and welcome to Wikipedia!

I would like to remind you to stay to a neutral writing style. Case at point: Rad Racer. You aren't allowed to write things such as "the best racing game for the NES", since it is not neutral. Also, "tips and hints" may not belong in Wikipedia. David Remahl 17:19, 11 Aug 2004 (UTC)
 * I have placed some more discussion on the relevant talk page. Please review it. David Remahl 17:47, 11 Aug 2004 (UTC)

title: User talk:Chriscih


text:
Shyam Benegal

Shyam Benegal (born 14 December 1934) is an Indian film director, screenwriter and documentary filmmaker. Often regarded as the pioneer of parallel cinema, he is widely considered as one of the greatest filmmakers post 1970s. He has received several accolades, including eighteen National Film Awards, a Filmfare Award and a Nandi Award. In 2005, he was honoured with the Dadasaheb Phalke Award, India's highest award in the field of cinema. In 1976, he was honoured by the Government of India with the Padma Shri, the fourth-highest civilian honour of the country, and in 1991, he was awarded Padma Bhushan, the third-highest civilian honour for his contributions in the field of arts. Benegal was born in Hyderabad to Sridhar B. Benegal who was prominent in the field of photography. Starting his career as a copywriter, he made his first Documentary film in Gujarati, Gher Betha Ganga (Ganges at the Doorstep) in 1962. Benegal's first four feature films Ankur (1973), Nishant (1975), Manthan (1976) and Bhumika (1977) made him a pioneer of the new wave film movement of that period. Benegal's films, Mammo (1994), along with Sardari Begum (1996) and Zubeidaa (2001) all of which won National Film Awards for Best Feature Film in Hindi, form the Muslim women Trilogy. Benegal has won the National Film Award for Best Feature Film in Hindi seven times. He was awarded the V. Shantaram Lifetime Achievement Award in 2018.

Early life and education
Shyam Benegal was born on 14 December 1934 in a Konkani-speaking Chitrapur Saraswat Brahmin family in Hyderabad, as Shyam Sunder Benegal. His father hailed from Karnataka. When he was twelve years old, he made his first film, on a camera given to him by his photographer father Sridhar B. Benegal. He received an M.A. in Economics from Osmania University, Hyderabad. There he established the Hyderabad Film Society.

Family
Film director and actor Guru Dutt's maternal grandmother and Shyam's paternal grandmother were sisters, thus making Dutt and Shyam second cousins.

Early career
In 1959, he started working as a copywriter at a Mumbai-based advertising agency, Lintas Advertising, where he steadily rose to become the creative head. Meanwhile, Benegal made his first documentary in Gujarati, Gher Betha Ganga (Ganges at the Doorstep) in 1962. His first feature film had to wait another decade while he worked on the script.

In 1963 he had a brief stint with another advertising agency called ASP (Advertising, Sales and Promotion). During his advertising years, he directed over 900 sponsored documentaries and advertising films.

Between 1966 and 1973, Shyam taught at the Film and Television Institute of India (FTII), Pune, and twice served as the institute's chairman: 1980–83 and 1989–92. By this time he had already started making documentaries. One of his early documentaries A Child of the Streets (1967), garnered him wide acclaim. In all, he has made over 70 documentary and short films.

He was awarded the Homi J. Bhabha Fellowship (1970–72) which allowed him to work at the Children's Television Workshop, New York, and later at Boston's WGBH-TV.

Feature films
After returning to Mumbai, he received independent financing and Ankur (The Seedling) was finally made in 1973. It was a realistic drama of economic and sexual exploitation in his home state, Telangana, and Benegal instantly shot to fame. The film introduced actors Shabana Azmi and Anant Nag and Benegal won the 1975 National Film Award for Second Best Feature Film. Shabana won the National Film Award for Best Actress.

The success that New India Cinema enjoyed in the 1970s and early 1980s could largely be attributed to Shyam Benegal's quartet: Ankur (1973), Nishant (1975), Manthan (1976) and Bhumika (1977). Benegal used a variety of new actors, mainly from the FTII and NSD, such as Naseeruddin Shah, Om Puri, Smita Patil, Shabana Azmi, Kulbhushan Kharbanda and Amrish Puri.

In Benegal's next film, Nishant (Night's End) (1975), a teacher's wife is abducted and gang-raped by four zamindars; officialdom turns a deaf ear to the distraught husband's pleas for help. Manthan (The Churning) (1976) is a film on rural empowerment and is set against the backdrop of Gujarat's fledgling dairy industry. For the first time, over five lakh (half a million) rural farmers in Gujarat contributed ₹ 2 each and thus became the film's producers. Upon its release, truckloads of farmers came to see "their" film, making it a success at the box office. After this trilogy on rural oppression, Benegal made a biopic Bhumika (The Role) (1977), broadly based on the life of well-known Marathi stage and film actress of the 1940s, Hansa Wadkar (played by Smita Patil), who led a flamboyant and unconventional life. The main character sets out on an individual search for identity and self-fulfilment, while also grappling with exploitation by men.

In the early 1970s, Shyam made 21 film modules for Satellite Instructional Television Experiment (SITE), sponsored by UNICEF. This allowed him to interact with children of SITE and many folk artists. Eventually he used many of these children in his feature length rendition of the classic folk tale Charandas Chor (Charandas the Thief) in 1975. He made it for the Children's Film Society, India. To quote film critic Derek Malcolm:

"what Benegal has done is to paint a magnificent visual recreation of those extraordinary days and one that is also sensitive to the agonies and predicament of a talented woman whose need for security was only matched by her insistence on freedom."

The 1980s
Unlike most New Cinema filmmakers, Benegal has had private backers for many of his films and institutional backing for a few, including Manthan (Gujarat Cooperative Milk Marketing Federation ) and Susman (1987) (Handloom Co-operatives). However, his films did not have proper releases. He turned to TV where he directed serials such as Yatra (1986), for the Indian Railways, and one of the biggest projects undertaken on Indian television, the 53-episode television serial Bharat Ek Khoj (1988) based on Jawaharlal Nehru's book, Discovery of India. This gave him an added advantage, as he managed to survive the collapse of the New Cinema movement in the late 1980s due to paucity of funding, with which were lost many neo-realist filmmakers. Benegal continued making films throughout the next two decades. He also served as the Director of the National Film Development Corporation (NFDC) from 1980 to 1986.

Following the success of these four films, Benegal was backed by star Shashi Kapoor, for whom he made Junoon (1978) and Kalyug (1981). The former was an interracial love story set amidst the turbulent period of the Indian Rebellion of 1857, while the latter was based on the Mahabharata and was not a big hit, although both won Filmfare Best Movie Awards in 1980 and 1982, respectively.

Benegal's next film Mandi (1983), was a satirical comedy about politics and prostitution, starring Shabana Azmi and Smita Patil. Later, working from his own story, based on the last days of Portuguese in Goa, in the early 1960s, Shyam explored human relationships in Trikal (1985).

Soon, Shyam Benegal stepped beyond traditional narrative films and took to biographical material to achieve greater freedom of expression. His first venture in this genre was with a documentary film based on Satyajit Ray's life, Satyajit Ray, in 1985. This was followed by works such as Sardari Begum (1996) and Zubeidaa, which was written by filmmaker and critic Khalid Mohamed.

In 1985 he was a member of the jury at the 14th Moscow International Film Festival. And in 1988, he served as the jury chairperson of 35th National Film Awards of 1987.

The 1990s and beyond
The 1990s saw Shyam Benegal making a trilogy on Indian Muslim women, starting with Mammo (1994), Sardari Begum (1996) and Zubeidaa (2001). With Zubeidaa, he entered mainstream Bollywood, as it starred top Bollywood star Karishma Kapoor and boasted music by A. R. Rahman.

In 1992, he made Suraj Ka Satvan Ghoda (Seventh Horse of the Sun), based on a novel by Dharmavir Bharati, which won the 1993 National Film Award for Best Feature Film in Hindi. In 1996 he made another film based on the book The Making of the Mahatma, based on Fatima Meer's, The Apprenticeship of a Mahatma. This turn to biographical material resulted in Netaji Subhas Chandra Bose: The Forgotten Hero, his 2005 English language film. He criticised the Indian caste system in Samar (1999), which went on to win the National Film Award for Best Feature Film.

Benegal is the current president of the Federation of Film Societies of India. He owns a production company called Sahyadri Films.

He has authored three books based on his own films: The Churning with Vijay Tendulkar (1984), based on Manthan; Satyajit Ray (1988), based on his biographical film, Satyajit Ray; and The Marketplace (1989), which was based on Mandi.

In 2009 he was a member of the jury at the 31st Moscow International Film Festival.

Recent projects
In 2008, his film Welcome to Sajjanpur, starring Shreyas Talpade and Amrita Rao, was released to a good response. Its music was composed by Shantanu Moitra, and it was produced by Chetan Motiwalla. Shyam Benegal is slated to direct an epic musical, Chamki Chameli, inspired by Georges Bizet's classic Spanish opera Carmen. The story revolves around the eponymous Chamki, a beautiful gypsy girl with a fiery temper and is written by Shama Zaidi. The music is by A. R. Rahman and lyrics are by Javed Akhtar.

In March 2010, Benegal released the political satire Well Done Abba.

One of Benegal's future projects is a film based on the life of Noor Inayat Khan, daughter of Inayat Khan and descendant of Tipu Sultan, who served as a British spy during World War II.

Benegal made a comeback on the small screen with Samvidhaan, a 10-part mini-series revolving around the making of the Indian Constitution, to be aired on Rajya Sabha TV from 2 March 2014. Along with Benegal, Tom Alter, Dalip Tahil, Sachin Khedekar, Divya Dutta, Rajendra Gupta, K K Raina, and Ila Arun were seen at the press conference for the TV series.

Government of Bangladesh has confirmed Benegal would direct the biopic of Sheikh Mujibur Rahman named Mujib: The Making of a Nation. The film will be released presumably by 2022.

Personal life
Shyam Benegal is married to Nira Benegal and has a daughter, Pia Benegal, a costume designer, who worked for many films.

Awards and nominations

 * Non Feature Films
 * 1984 Best Historical Reconstruction for Nehru
 * 1985 Best Biographical Film for Satyajit Ray

 * Feature Films
 * 1986 Best Director for Trikal
 * 1993 Best Feature Film in Hindi for Suraj Ka Satvan Ghoda
 * 1995 Best Feature Film in Hindi for Mammo
 * 1996 Best Feature Film in English for The Making of the Mahatma
 * 1997 Best Feature Film in Urdu for Sardari Begum
 * 1999 Best Feature Film for Samar
 * 1999 Best Feature Film on Family Welfare for Hari-Bhari
 * 2001 Best Feature Film in Hindi for Zubeidaa
 * 2005 Nargis Dutt Award for Best Feature Film on National Integration for Netaji Subhas Chandra Bose: The Forgotten Hero
 * Best Film on Other Social Issues for Well Done Abba

 * Filmfare Awards
 * 1980 Best Director for Junoon

 * Cannes Film Festival
 * 1976: Golden Palm: Nishant: Nominated

 * Berlin International Film Festival
 * 1974 Golden Berlin Bear for Ankur: Nominated

 * Moscow International Film Festival
 * 1981 Golden Prize: Kalyug
 * 1997 Golden St. George: Sardari Begum: Nominated
 * All Lights India International Film Festival
 * 2015 Lifetime Achievement Award

 * Nandi Awards
 * B. N. Reddy National Award for contribution to Indian Cinema

Honours

 * 1970 Homi Bhabha Fellowship (1970–72)
 * 1976 Padma Shri
 * 1989 Sovietland Nehru Award
 * 1991 Padma Bhushan
 * 2012 D. Litt. Honoris Causa of the University of Calcutta
 * 2013 ANR National Award
 * 2016 D. Litt. "Honoris Causa" of ITM University, Gwalior (M.P.)

title: Shyam Benegal