summaryrefslogtreecommitdiff
path: root/doc/gf-formalism.html
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2010-12-22 14:08:42 +0000
committeraarne <aarne@chalmers.se>2010-12-22 14:08:42 +0000
commitce15ec7b787479ca4c7295863ea7fa5cfdd16755 (patch)
treef47d9227ab535781d44d00e6232b8c62902167df /doc/gf-formalism.html
parentfb722fe8e2cedee3b42d7fb0c9da61ace74f3e22 (diff)
moved parts of doc to deprecated/doc
Diffstat (limited to 'doc/gf-formalism.html')
-rw-r--r--doc/gf-formalism.html350
1 files changed, 0 insertions, 350 deletions
diff --git a/doc/gf-formalism.html b/doc/gf-formalism.html
deleted file mode 100644
index 52d9256aa..000000000
--- a/doc/gf-formalism.html
+++ /dev/null
@@ -1,350 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META NAME="generator" CONTENT="http://txt2tags.sf.net">
-<TITLE>A Birds-Eye View of GF as a Grammar Formalism</TITLE>
-</HEAD><BODY BGCOLOR="white" TEXT="black">
-<P ALIGN="center"><CENTER><H1>A Birds-Eye View of GF as a Grammar Formalism</H1>
-<FONT SIZE="4">
-<I>Author: Aarne Ranta</I><BR>
-Last update: Thu Feb 2 14:16:01 2006
-</FONT></CENTER>
-
-<P></P>
-<HR NOSHADE SIZE=1>
-<P></P>
- <UL>
- <LI><A HREF="#toc1">GF in a few words</A>
- <LI><A HREF="#toc2">History of GF</A>
- <LI><A HREF="#toc3">Some key ingredients of GF in other grammar formalisms</A>
- <LI><A HREF="#toc4">Examples of descriptions in each formalism</A>
- <LI><A HREF="#toc5">Lambda terms and records</A>
- <LI><A HREF="#toc6">The structure of GF formalisms</A>
- <LI><A HREF="#toc7">The expressivity of GF</A>
- <LI><A HREF="#toc8">Grammars and parsing</A>
- <LI><A HREF="#toc9">Grammars as software libraries</A>
- <LI><A HREF="#toc10">Multilinguality</A>
- <LI><A HREF="#toc11">Parametrized modules</A>
- </UL>
-
-<P></P>
-<HR NOSHADE SIZE=1>
-<P></P>
-<P>
-<IMG ALIGN="middle" SRC="Logos/gf0.png" BORDER="0" ALT="">
-</P>
-<P>
-<I>Abstract. This document gives a general description of the</I>
-<I>Grammatical Framework (GF), with comparisons to other grammar</I>
-<I>formalisms such as CG, ACG, HPSG, and LFG.</I>
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc1"></A>
-<H2>GF in a few words</H2>
-<P>
-Grammatical Framework (GF) is a grammar formalism
-based on <B>constructive type theory</B>.
-</P>
-<P>
-GF makes a distinction between <B>abstract syntax</B> and <B>concrete syntax</B>.
-</P>
-<P>
-The abstract syntax part of GF is a <B>logical framework</B>, with
-dependent types and higher-order functions.
-</P>
-<P>
-The concrete syntax is a system of <B>records</B> containing strings and features.
-</P>
-<P>
-A GF grammar defines a <B>reversible homomorphism</B> from an abstract syntax to a
-concrete syntax.
-</P>
-<P>
-A <B>multilingual GF grammar</B> is a set of concrete syntaxes associated with
-one abstract syntax.
-</P>
-<P>
-GF grammars are written in a high-level <B>functional programming language</B>,
-which is compiled into a <B>core language</B> (GFC).
-</P>
-<P>
-GF grammars can be used as <B>resources</B>, i.e. as libraries for writing
-new grammars; these are compiled and optimized by the method of
-<B>grammar composition</B>.
-</P>
-<P>
-GF has a <B>module system</B> that supports grammar engineering and separate
-compilation.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc2"></A>
-<H2>History of GF</H2>
-<P>
-1988. Intuitionistic Categorial Grammar; type theory as abstract syntax,
-playing the role of Montague's analysis trees. Grammars implemented in Prolog.
-</P>
-<P>
-1994. Type-Theoretical Grammar. Abstract syntax organized as a system of
-combinators. Grammars implemented in ALF.
-</P>
-<P>
-1996. Multilingual Type-Theoretical Grammar. Rules for generating six
-languages from the same abstract syntax. Grammars implemented in ALF, ML, and
-Haskell.
-</P>
-<P>
-1998. The first implementation of GF as a language of its own.
-</P>
-<P>
-2000. New version of GF: high-level functional source language, records used
-for concrete syntax.
-</P>
-<P>
-2003. The module system.
-</P>
-<P>
-2004. Ljunglöf's thesis <I>Expressivity and Complexity of GF</I>.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc3"></A>
-<H2>Some key ingredients of GF in other grammar formalisms</H2>
-<UL>
-<LI>[GF ]: Grammatical Framework
-<LI>[CG ]: categorial grammar
-<LI>[ACG ]: abstract categorial grammar
-<LI>[HPSG ]: head-driven phrase structure grammar
-<LI>[LFG ]: lexical functional grammar
-</UL>
-
-<TABLE CELLPADDING="4" BORDER="1">
-<TR>
-<TD ALIGN="center">/</TD>
-<TD>GF</TD>
-<TD>ACG</TD>
-<TD>LFG</TD>
-<TD>HPSG</TD>
-<TD>CG</TD>
-</TR>
-<TR>
-<TD>abstract vs concrete syntax</TD>
-<TD>X</TD>
-<TD>X</TD>
-<TD>?</TD>
-<TD>-</TD>
-<TD>-</TD>
-</TR>
-<TR>
-<TD>type theory</TD>
-<TD>X</TD>
-<TD>X</TD>
-<TD>-</TD>
-<TD>-</TD>
-<TD>X</TD>
-</TR>
-<TR>
-<TD>records and features</TD>
-<TD>X</TD>
-<TD>-</TD>
-<TD>X</TD>
-<TD>X</TD>
-<TD>-</TD>
-</TR>
-</TABLE>
-
-<P></P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc4"></A>
-<H2>Examples of descriptions in each formalism</H2>
-<P>
-To be written...
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc5"></A>
-<H2>Lambda terms and records</H2>
-<P>
-In CS, abstract syntax is trees and concrete syntax is strings.
-This works more or less for programming languages.
-</P>
-<P>
-In CG, all syntax is lambda terms.
-</P>
-<P>
-In Montague grammar, abstract syntax is lambda terms and
-concrete syntax is trees. Abstract syntax as lambda terms
-can be considered well-established.
-</P>
-<P>
-In PATR and HPSG, concrete syntax it records. This can be considered
-well-established for natural languages.
-</P>
-<P>
-In ACG, both are lambda terms. This is more general than GF,
-but reversibility requires linearity restriction, which can be
-unnatural for grammar writing.
-</P>
-<P>
-In GF, linearization from lambda terms to records is reversible,
-and grammar writing is not restricted to linear terms.
-</P>
-<P>
-Grammar composition in ACG is just function composition. In GF,
-it is more restricted...
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc6"></A>
-<H2>The structure of GF formalisms</H2>
-<P>
-The following diagram (to be drawn properly!) describes the
-levels.
-</P>
-<PRE>
- | programming language design
- V
- GF source language
- |
- | type-directed partial evaluation
- V
- GFC assembly language
- |
- | Ljunglöf's translation
- V
- MCFG parser
-</PRE>
-<P>
-The last two phases are nontrivial mathematica properties.
-</P>
-<P>
-In most grammar formalisms, grammarians have to work on the GFC
-(or MCFG) level.
-</P>
-<P>
-Maybe they use macros - they are therefore like macro assemblers. But there
-are no separately compiled library modules, no type checking, etc.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc7"></A>
-<H2>The expressivity of GF</H2>
-<P>
-Parsing complexity is the same as MCFG: polynomial, with
-unrestricted exponent depending on grammar.
-This is between TAG and HPSG.
-</P>
-<P>
-If semantic well-formedness (type theory) is taken into account,
-then arbitrary logic can be expressed. The well-formedness of
-abstract syntax is decidable, but the well-formedness of a
-concrete-syntax string can require an arbitrary proof construction
-and is therefore undecidable.
-</P>
-<P>
-Separability between AS and CS: like TAG (Tree Adjoining Grammar), GF
-has the goal of assigning intended trees for strings. This is
-generalized to shared trees for different languages.
-</P>
-<P>
-The high-level language strives after the properties of
-writability and readability (programming language notions).
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc8"></A>
-<H2>Grammars and parsing</H2>
-<P>
-In many projects, a grammar is just seen as a <B>declarative parsing program</B>.
-</P>
-<P>
-For GF, a grammar is primarily the <B>definition of a language</B>.
-</P>
-<P>
-Detaching grammars from parsers is a good idea, giving
-</P>
-<UL>
-<LI>more efficient and robust parsing (statistical etc)
-<LI>cleaner grammars
-</UL>
-
-<P>
-Separating abstract from concrete syntax is a prerequisite for this:
-we want parsers to return abstract syntax objects, and these must exist
-independently of parse trees.
-</P>
-<P>
-A possible radical approach to parsing:
-use a grammar to generate a treebank and machine-learn
-a statistical parser from this.
-</P>
-<P>
-Comparison: Steedman in CCG has done something like this.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc9"></A>
-<H2>Grammars as software libraries</H2>
-<P>
-Reuse for different purposes.
-</P>
-<P>
-Grammar composition.
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc10"></A>
-<H2>Multilinguality</H2>
-<P>
-In <B>application grammars</B>, the AS is a semantic
-model, and a CS covers domain terminology and idioms.
-</P>
-<P>
-This can give publication-quality translation on
-limited domains (e.g. the WebALT project).
-</P>
-<P>
-Resource grammars with grammar composition lead to
-<B>compile-time transfer</B>.
-</P>
-<P>
-When is <B>run-time transfer</B> necessary?
-</P>
-<P>
-Cf. CLE (Core Language Engine).
-</P>
-<P>
-<!-- NEW -->
-</P>
-<A NAME="toc11"></A>
-<H2>Parametrized modules</H2>
-<P>
-This notion comes from the ML language in the 1980's.
-</P>
-<P>
-It can be used for sharing even more code between languages
-than their AS.
-</P>
-<P>
-Especially, for related languages (Scandinavian, Romance).
-</P>
-<P>
-Cf. grammar porting in CLE: what they do with untyped
-macro packages GF does with typable interfaces.
-</P>
-
-<!-- html code generated by txt2tags 2.0 (http://txt2tags.sf.net) -->
-<!-- cmdline: txt2tags -thtml -\-toc gf-formalism.txt -->
-</BODY></HTML>