We used it to build parsers. It was easier to work with than lex/yacc.
Why is it not getting any detectable industry usage?
This is unanswerable. What does "detectable" mean? Who needs to get the detection memo?
http://www.meridiansystems.com/landing/ppc/prolog/getvideo.asp
Ask Meridian Software about their prolog offering if you want facts.
However, there are some barriers to entry that I've experienced.
First, prolog can be slow. When there are a lot of candidate rules and no simple cut operations to restrict the search space it can take a while to get something done.
Second, prolog isn't procedural or functional, so many programmers balk at using it. (Interestingly, some programmers balk at using SQL, too. For that matter, some programmers will reluctantly use SQL and do strange things like avoid join operations, or claim that COUNT(*)
is magically inefficient.)
Third, prolog requires some pretty clear thinking on what the various cases are. Procedural programming can be sloppy and still work reliably. Non-executable statements are acceptable.
The following is acceptable in most circles.
b = a + 1
if a > b: # always False
This kind of murky thinking gets you in trouble in prolog.