Applications and libraries/Linguistics
Portals and other huge resorces
Peter Ljunglöf's many publications on natural language processing, parsing, formal semantics. Many of them uses Haskell, and there are downloadable Haskell sources too.
Jan van Eijck's page contains a huge amount of materials on logic and language:
- computational linguistics
- logics (e.g. dynamic epistemic modelling)
There are many Haskell resources, too.
Natural language processing and combinatory logic
Applicative universal grammars
- A Haskell application for natural language parsing, based on Applicative Universal Grammar (AUG) is described in Mark P. Jones', Paul Hudak's and Sebastian Shaumyan's Using Types to Parse Natural Language. The Haskell source code given by the article is full, it can be run by Gofer, and after a few modification, by GHC too (transpose must be explictly imported from standard library module Data.List, and class Text renamed to Show).
- A more detailed description of the topic of this previous article described in Sebastian Shaumyan and Paul Hudak's Linguistic, Philosophical, and Pragmatic Aspects of Type-Directed Natural Language Parsing
- Bernard Paul Sypniewski's An Introduction to Applicative Universal Grammar (this link seems now broken, I hope only temporarily). As an article describing what AUG is, see also Shaumyan's Two Paradigms of Linguistics: The Semiotic versus Non-Semiotic Paradigm.
Categorial grammars
A general summary of modern semantic theories developed in the century is provided by Logical Aspects of Computational Linguistics: an introduction.
Gary Hardegree's portal-rich page provides a lot of materials on logic and linguistics, among them
- The Axiomatic Theory of Truth grasping concepts like truth, quotations, paradoxes, liar's paradox
- Courses ranging from the introductory level to developed topics, e.g. Basic Categorial Grammar.
The Combinatory Categorial Grammar Site contains links, papers (both introductory and developed) and software (OpenNLP open source projects, related to natural language processing, and OpenCCG)
On natural languages relating to combinatory logic, see also
- Peter Steedman's Does Grammar Make Use of Bound Variables?
- Mark Hepple: The Grammar and Processing of Order and Dependency: a Categorial Approach
Game theoretic semantics
Game theoretic semantics presents an interesting concept of truth -- in another way than that of Tarski. Its connections to computer science and computer languages is described in Wikipedia's Game semantics article. Merlijn Sevenster's Game theoretical semantics and -logic is a good introductory material too.
Chiaki Ohkura's The Semantics of Metaphor in the Game Theoretic Semantics with at Least Two Coordination Equilibria article tries to catch the concept of metaphor.
Relatedness to linear logic
The Wikipedia article mentions also the relatedness of game theoretic semantics to linear logic. Philip Wadler's page on linear logic describes the topic and its relatedness to many concepts concerning Haskell. A taste of linear logic can serve as an introductory article.
Parsing natural languages
Gordon J. Pace: Monadic Compositional Parsing with Context Using Maltese as a Case Study, see its context too.
- From Aarne Ranta's homepage
- GF is a compiler and grammatical programming environment written entirely in Haskell, with an interactive interpreter and two GUI interfaces, one written in Fudgets and another written in Java. GF grammars are written in a subset of Haskell and compile into an internal GF format that may be used as embedded parsers in Haskell, parsers in Java (with an embedded Java interpreter gfc2java.jar) and subsequently converted to applets (Gramlets). (GF-Haskell to Java translation is performed through an Open Agent Architecture--the original .NET, see GF OAA.) The GF grammatical formalism handles linguistic entities (morphemes, etc.) using type theory: an approach especially suited to machine translation of controlled natural languages. The Grammar Resource Library, a set of basic grammars for Danish, English, Finnish, French, German, Italian, Norwegian, Russian, Spanish and Swedish, is available as a separate download. GF has been used to translate a fragment of C code to JVM (see GFCC (PDF document)).
- Natural Language Technology, with (among others) online course slides. They give huge insights, for example, see the slide example which discusses the concept of dependent type and Curry Howard isomorphism in lingustical context.
- Functional Morphology
- The natural language processing blog written by Hal Daume III.