Applications and libraries/Linguistics

From HaskellWiki
< Applications and libraries
Revision as of 13:58, 14 February 2008 by EricKow (talk | contribs) (point out that Barker's article is quite easy to read)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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.

Tools and libraries

  • Cypher is one of the first software program available which generates the metadata representation of natural language input. Cypher produces RDF graph and SeRQL query representations of sentences, clauses, phrases and questions. The Cypher framework provides a set of robust definition languages, which can be used to extend and create grammars and lexicons. Cypher programming is fun to learn and easy to use, and the specifications are designed to allow a novice to quickly and easily build transcoders for processing highly complex sentences and phrases of any natural language, and to cover any vocabulary
  • GenI is a surface realiser for Tree Adjoining Grammars. Surface realisation can be seen as the last stage in a natural language generation pipeline. GenI in particular takes an FB-LTAG grammar and an input semantics (a conjunction of first order terms), and produces the set of sentences associated to the input semantics by the grammar. See also Eric Kow's recent publications on it.
  • Grammatical Framework (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)).
  • Functional Morphology - a toolkit for morphology development. Has been used for Swedish, Spanish, Urdu and more.
  • HWordNet - A Haskell interface to WordNet by Hal Daumé III.
  • Saxophone is a fun translator from German to the Saxon dialect. It is part of the ParallelWeb project which aims at translating Web pages including all of their links.

Natural language processing and combinatory logic

Combinatory logic contributed to develop powerful theories in linguistics..

Applicative universal grammar

Now it has got its own HaskellWiki page.

Categorial grammar

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 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

Type-Logical Grammar

Matteo Capelletti's home page contains a parser based on the Non-associative Lambek calculus. It supports hypothetical reasoning and Montague style semantics.

Tree Adjoining Grammar

  • See GenI, mentioned above.

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.

Other functional or Haskell-related approaches to linguistics

Other linguistics-related resources

Dr. Günter Neumann's homepage.

Specific topics

Lojban

Lojban, an artificial language (see a separate HaskellWiki page on it with references.) “Lojban was not designed primarily to be an international language, however, but rather as a linguistic tool for studying and understanding language. Its linguistic and computer applications make Lojban unique among international languages...” (NC:WhLoj, page 15 par 1)

Continuations in natural languages

Some phenomena in natural languages can be grasped with the notion of continuation. For details, see Chris Barker's paper Continuations in Natural Language. It is quite accessible to non-linguists.

References

barker2004cnl
Barker, Chris: Continuations in Natural Language (pdf), 2004
nicholas2003wl
Nicholas, Nick and Cowan, John (ed.): What is Lojban? Logical Language Group, 2003. Available also online.
frost2006rnl
Frost, Richard: Realization of natural language interfaces using lazy functional programming (pdf), 2006