Files
gf-core/lib/resource/doc/gfdoc/Combinators.html
2007-12-12 20:30:11 +00:00

141 lines
4.5 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<META NAME="generator" CONTENT="http://txt2tags.sf.net">
<TITLE> Combinators: a High-Level Syntax API</TITLE>
</HEAD><BODY BGCOLOR="white" TEXT="black">
<P ALIGN="center"><CENTER><H1> Combinators: a High-Level Syntax API</H1>
<FONT SIZE="4">
<I>Last update: 2007-05-31 11:49:38 CEST</I><BR>
</FONT></CENTER>
<P></P>
<HR NOSHADE SIZE=1>
<P></P>
<UL>
<LI><A HREF="#toc1">Predication</A>
<LI><A HREF="#toc2">Function application</A>
<LI><A HREF="#toc3">Coordination</A>
<LI><A HREF="#toc4">Modification</A>
<LI><A HREF="#toc5">Negation</A>
<LI><A HREF="#toc6">Text append</A>
</UL>
<P></P>
<HR NOSHADE SIZE=1>
<P></P>
<P>
Produced by
gfdoc - a rudimentary GF document generator.
(c) Aarne Ranta (<A HREF="mailto:aarne@cs.chalmers.se">aarne@cs.chalmers.se</A>) 2002 under GNU GPL.
</P>
<P>
This module defines some <I>grammatical functions</I> that give shortcuts to
typical constructions. <A HREF="Constructors.html"><CODE>Constructors</CODE></A> and the
language-specific <CODE>Paradigms</CODE> modules are usually needed
to construct arguments of these functions.
</P>
<PRE>
incomplete resource Combinators = open Grammar in {
oper
</PRE>
<P></P>
<A NAME="toc1"></A>
<H2>Predication</H2>
<PRE>
pred : overload {
pred : V -&gt; NP -&gt; Cl ; -- x converges
pred : V2 -&gt; NP -&gt; NP -&gt; Cl ; -- x intersects y
pred : V3 -&gt; NP -&gt; NP -&gt; NP -&gt; Cl ; -- x intersects y at z
pred : V -&gt; NP -&gt; NP -&gt; Cl ; -- x and y intersect
pred : A -&gt; NP -&gt; Cl ; -- x is even
pred : A2 -&gt; NP -&gt; NP -&gt; Cl ; -- x is divisible by y
pred : A -&gt; NP -&gt; NP -&gt; Cl ; -- x and y are equal
pred : N -&gt; NP -&gt; Cl ; -- x is a maximum
pred : CN -&gt; NP -&gt; Cl ; -- x is a local maximum
pred : NP -&gt; NP -&gt; Cl ; -- x is the neutral element
pred : N -&gt; NP -&gt; NP -&gt; Cl ; -- x and y are inverses
pred : Adv -&gt; NP -&gt; Cl ; -- x is in scope
pred : Prep -&gt; NP -&gt; NP -&gt; Cl -- x is outside y
} ;
</PRE>
<P></P>
<A NAME="toc2"></A>
<H2>Function application</H2>
<PRE>
app : overload {
app : N -&gt; NP ;
app : N2 -&gt; NP -&gt; NP ;
app : N3 -&gt; NP -&gt; NP -&gt; NP ;
app : N2 -&gt; NP -&gt; NP -&gt; NP ;
app : N2 -&gt; N -&gt; CN
} ;
</PRE>
<P></P>
<A NAME="toc3"></A>
<H2>Coordination</H2>
<PRE>
coord : overload {
coord : Conj -&gt; Adv -&gt; Adv -&gt; Adv ;
coord : Conj -&gt; AP -&gt; AP -&gt; AP ;
coord : Conj -&gt; NP -&gt; NP -&gt; NP ;
coord : Conj -&gt; S -&gt; S -&gt; S ;
coord : DConj -&gt; Adv -&gt; Adv -&gt; Adv ;
coord : DConj -&gt; AP -&gt; AP -&gt; AP ;
coord : DConj -&gt; NP -&gt; NP -&gt; NP ;
coord : DConj -&gt; S -&gt; S -&gt; S ;
coord : Conj -&gt; ListAdv -&gt; Adv ;
coord : Conj -&gt; ListAP -&gt; AP ;
coord : Conj -&gt; ListNP -&gt; NP ;
coord : Conj -&gt; ListS -&gt; S ;
coord : DConj -&gt; ListAdv -&gt; Adv ;
coord : DConj -&gt; ListAP -&gt; AP ;
coord : DConj -&gt; ListNP -&gt; NP ;
coord : DConj -&gt; ListS -&gt; S
} ;
</PRE>
<P></P>
<A NAME="toc4"></A>
<H2>Modification</H2>
<PRE>
mod : overload {
mod : A -&gt; N -&gt; CN ;
mod : AP -&gt; CN -&gt; CN ;
mod : AdA -&gt; A -&gt; AP ;
mod : Det -&gt; N -&gt; NP ;
mod : Det -&gt; CN -&gt; NP ;
mod : Quant -&gt; N -&gt; NP ;
mod : Quant -&gt; CN -&gt; NP ;
mod : Predet -&gt; N -&gt; NP ;
mod : Numeral -&gt; N -&gt; NP
} ;
</PRE>
<P></P>
<A NAME="toc5"></A>
<H2>Negation</H2>
<PRE>
neg : overload {
neg : Imp -&gt; Utt ;
neg : Cl -&gt; S ;
neg : QCl -&gt; QS ;
neg : RCl -&gt; RS
};
</PRE>
<P></P>
<A NAME="toc6"></A>
<H2>Text append</H2>
<P>
This is not in ground API, because it would destroy parsing.
</P>
<PRE>
appendText : Text -&gt; Text -&gt; Text ;
</PRE>
<P></P>
<!-- html code generated by txt2tags 2.3 (http://txt2tags.sf.net) -->
<!-- cmdline: txt2tags -thtml -\-toc api/Combinators.txt -->
</BODY></HTML>