Where can I find a reasonable NLP CFG or CSG for English? I'm looking to do natural language parsing and looking for how the CFG (or CSG) should be defined for English. 

Surely one'd expect to find one from the internet already, but do you know where?

It needs to be in "formal grammar" form, not an implementation (e.g. a Python library).

It has to allow for as wide range of sentences as possible to be parsed correctly.



Something that I could be looking at:

S -&gt; NP VP | VP
NP -&gt; D N | N | N NP
VP -&gt; V | V NP | V PP | V NP PP
PP -&gt; P NP


But how sufficient is this?



Related:
https://english.stackexchange.com/questions/32447/is-there-an-ebnf-that-covers-all-of-english
It is uncommon to use a "closed set" context free grammar because the number of production rules is staggeringly large. The typical approach is to recover a probabilistic context free grammar from a treebank (e.g., the Penn Treebank) in order to do statistical parsing (via probabilistic CKY, Earley, etc).

The only time you might want a "closed set" is when working with toy data in which case you may define an overly simplistic subset of English grammar dealing with sentences, noun phrases, verb phrases, and so on. Such miniature grammars can be found in standard NLP texts such as Jurafsky and Martin, and Manning and Schuetz.