While I’ve become somewhat bemused during the course of my research with the plethora of different linguistic theories that have come and gone over the last three decades, not to mention all the “busy work” being carried out by the statistical natural language processing crowd, there remains a hard core of research dedicated to rigorous deterministic methods.
I just discovered a real gem of this type, an all-platform open source natural language parser that implements PATR, a simple but powerful language for defining the grammar of natural languages.
You can download the executables and documentation for your platform of choice, or grab the source code and compile it yourself. It’s the cleanest and easiest to use parsing tool that I’ve ever come across, rivalling the Link Grammar Parser in it’s simplicity, but significantly more powerful and versatile.
http://www-01.sil.org/pcpatr
The availability of a tool like this could finally make it possible for a collaborative community effort to develop sets of language definitions that everyone could share and use. Who would be interested in taking part in such a project?
You can jump straight to the documentation for examples and usage details here:
http://www-01.sil.org/pcpatr/manual/pcpatr.html
————————————————————
Here’s a portion of a grammar definition in PATR to give you an idea of what it’s like to write.
;sentence formation
RULE
S = NP VP (AdvP)
<NP head agr> = <VP head agr>
<NP head case> = NOM
<S subj> = <NP>
<S head> = <VP head>
;passive verb with agent
RULE
VP = AUX V PrepP
<pre> = by
<AUX head auxform> = be
<V head vform> = EN
<VP head> = <AUX head>
<VP head passive> = +
<VerbalP head partform> = <V vform>
;transitive verb
RULE
VP = VerbalP NP
<NP head case> = ACC
<NP head verbal> = -
<VP head> = <VerbalP head>
————————————————————
Even the simple example grammar included in the test suite is capable of handling the following sorts of input:
;Try sentences such as these:
;uther sleeps
;the knights sleep
;uther storms cornwall
;the brave knights have stormed cornwall
;i sleep
;he sleeps
;he was sleeping
;he slept
;he has slept
;i see him
;he sees me
;i was seen
;i was seen by him
;i was seen by him clearly
;i saw the man with a telescope
;the tall man on the hill saw me with a telescope
;i saw uther before he stormed cornwall
;These malformed sentences are rejected:
; uther sleep
; the knights sleeps
; uther storm cornwall
; the knights storms cornwall
; i sleeps
; he sleep
; he sleeping
; i see he
; him sees me
; he seen me
; he seeing me
;
;But these malformed sentences (and many more!) are accepted:
; he is sleep
; he is slept
; he has sleep
; he has sleeping
; he stormed
; he slept me
; i have seen by him