The example queries remind me of Prolog.
No, I think they're probably doing proper natural language parsing, and from there hand-coded translation to (their internal version of) FQL.
I wonder how flexible their grammar is. It'll be pretty easy to reverse engineer the techniques they are using by looking at failure modes of parses and how intelligently they correct fall-throughs.
query is term1(person) & term2(person) & term3(person) ...
i.e. query :- term1(p), term2(p), term3(p)