Commit 714aba3c authored by huet's avatar huet

Initialisation

 the commit message for your changes. Lines starting
parents
File added
This diff is collapsed.
File added
File added
File added
File added
% WARNING Do not edit manually docintro.tex, mechanically produced by configure from docintro
\begin{center}
\vspace*{24pt}
{\Large The Sanskrit Platform Documentation}\\[10pt]
{\Large (Sanskrit Library V#VERSION; Zen toolkit V3.1)}\\[15pt]
{\large #DATE}\\[15pt]
{\large G\'erard Huet \& Pawan Goyal}\\[10pt]
{\large Copyright \copyright ~2000-2017 Inria}\\[20pt]
\end{center}
% Macros
\def\R{$\rightarrow$} % for Sandhi notation
\def\Pan#1{{\bf P}\{#1\}}
\begin{abstract}
This document is the commented code of the Sanskrit Engine software package.
The programming language is Objective Caml (V4.02.2), under the revised syntax
offered by the Camlp4 preprocessor. This documentation has been
automatically generated by the Ocamlweb package of Jean-Christophe Filli\^atre,
using the {\LaTeX} package, in the literate programming style pioneered by
Don Knuth.
This program uses the Zen Computational Linguistics Toolkit. The present
document is a companion volume to its documentation, available as\\
\verb|http://yquem.inria.fr/~huet/ZEN/zen.pdf| under the pdf format.
The Sanskrit Heritage site \verb|http://sanskrit.inria.fr/|
demonstrates various tools built with this package.
An article describing Sanskrit segmentation and tagging based on this package
is available as
\verb|http://yquem.inria.fr/~huet/PUBLIC/tagger.pdf| under the pdf format.
\end{abstract}
digraph lexer {
size="10";
S -> Verb;
S -> Inde;
S -> Subst;
S -> Pron;
Verb -> Root;
Verb -> Pv;
Verb -> Abstva;
Verb -> Iiv;
Pv -> Root;
Root -> Accept;
Subst -> Iic;
Subst -> Noun;
Iic -> Subst;
Iic -> Ifc;
Noun -> Accept;
Ifc -> Accept;
Iiv -> Auxi;
Pron -> Accept;
Pv -> Absya;
Auxi -> Accept;
Absya -> Accept;
Abstva -> Accept;
Inde -> Accept;
Accept -> S;
Iic[style=filled; fillcolor = Yellow];
Ifc[style=filled; fillcolor = Cyan3];
Noun[style=filled; fillcolor = Dodgerblue3];
Pron[style=filled; fillcolor = Skyblue];
Root[style=filled; fillcolor = Red];
Iiv[style=filled; fillcolor = Orange];
Auxi[style=filled; fillcolor = Red];
Inde[style=filled; fillcolor = Violet];
Absya[style=filled; fillcolor = Violet];
Abstva[style=filled; fillcolor = Violet];
Pv[style=filled; fillcolor = Pink];
}
digraph lexer {
size="10";
S -> Subst;
S -> Pron;
S -> Voca;
S -> Inde;
S -> Verb;
Verb -> Root;
Verb -> Pv;
Verb -> Abstva;
Verb -> Iiv;
Pv -> Root;
Root -> Accept;
Subst -> Noun;
Subst -> A;
Subst -> Iic;
Subst -> An;
Iic -> Subst;
Iic -> Ifc;
A -> Nounc;
A -> Iicc;
Iicc -> Subst;
Iicc -> Ifc;
An -> Nounv;
An -> Iicv;
Iicv -> Subst;
Iicv -> Ifc;
Noun -> Accept;
Nounc -> Accept;
Nounv -> Accept;
Ifc -> Accept;
Iiv -> Auxi;
Pron -> Accept;
Voca -> Accept;
Pv -> Absya;
Auxi -> Accept;
Absya -> Accept;
Abstva -> Accept;
Inde -> Accept;
Accept -> S;
Iic[style=filled; fillcolor = Yellow];
Iicc[style=filled; fillcolor = Yellow];
Iicv[style=filled; fillcolor = Yellow];
Ifc[style=filled; fillcolor = Cyan3];
Noun[style=filled; fillcolor = Dodgerblue3];
Nounc[style=filled; fillcolor = Dodgerblue3];
Nounv[style=filled; fillcolor = Dodgerblue3];
A[style=filled; fillcolor = Yellow];
An[style=filled; fillcolor = Yellow];
Voca[style=filled; fillcolor = Lawngreen];
Pron[style=filled; fillcolor = Skyblue];
Root[style=filled; fillcolor = Red];
Iiv[style=filled; fillcolor = Orange];
Auxi[style=filled; fillcolor = Red];
Inde[style=filled; fillcolor = Violet];
Absya[style=filled; fillcolor = Violet];
Abstva[style=filled; fillcolor = Violet];
Pv[style=filled; fillcolor = Pink];
}
digraph lexer {
size="30.";
S -> Subst;
S -> Pron;
S -> Verb;
Verb -> Root;
Verb -> Pv;
Verb -> Peri;
Verb -> Abstva;
Verb -> Neg;
Neg -> Abstva;
Pv -> Root;
Pv -> Absya;
Pv -> Peri;
Verb -> Iiv;
Peri -> Auxipft;
Root -> Accept;
Subst -> Noun;
Subst -> Krid;
Subst -> Priv;
Subst -> Iic;
Subst -> Iik;
Subst -> Iivk;
Subst -> Voca;
Subst -> Voka;
Subst -> Inv;
Subst -> Pvk;
Subst -> Inftu;
Inftu -> Kama;
Iic -> Subst;
Iic -> Ifc;
Iic -> Iiif;
Iik -> Subst;
Iik -> Ifc;
Iik -> Iiif;
Iiif -> Subst;
Iiif -> Ifc;
Iiif -> Iiif;
Priv -> Noun;
Priv -> Iic;
Priv -> Priv;
Priv -> Krid;
Priv -> Iik;
Priv -> Iivk;
Priv -> Pvk;
Priv -> Voca;
Priv -> Voka;
Iivk -> Auxik;
Iivk -> Auxiik;
Pvk -> Krid;
Pvk -> Iik;
Pvk -> Voka;
Noun -> Accept;
Krid -> Accept;
Ifc -> Accept;
Iiv -> Auxi;
Pron -> Accept;
S -> Inde;
S -> Iiy;
Iiy -> Avya;
Inv -> Voca;
Inv -> Voka;
Inv -> Accept;
Voca -> Accept;
Voka -> Accept;
Auxi -> Accept;
Auxipft -> Accept;
Auxik -> Accept;
Auxiik -> Subst;
Absya -> Accept;
Avya -> Accept;
Abstva -> Accept;
Inde -> Accept;
Kama -> Accept;
Accept -> S;
Iic[style=filled; fillcolor = Yellow];
Iik[style=filled; fillcolor = Yellow];
Iiif[style=filled; fillcolor = Yellow];
Iiy[style=filled; fillcolor = Lavender];
Ifc[style=filled; fillcolor = Cyan3];
Noun[style=filled; fillcolor = Dodgerblue3];
Krid[style=filled; fillcolor = Dodgerblue3];
Auxik[style=filled; fillcolor = Dodgerblue3];
Kama[style=filled; fillcolor = Dodgerblue3];
Inftu[style=filled; fillcolor = Salmon];
Auxiik[style=filled; fillcolor = Yellow];
Priv[style=filled; fillcolor = Gold];
Voca[style=filled; fillcolor = Lawngreen];
Inv[style=filled; fillcolor = Lawngreen];
Voka[style=filled; fillcolor = Lawngreen];
Pron[style=filled; fillcolor = Skyblue];
Root[style=filled; fillcolor = Red];
Iiv[style=filled; fillcolor = Orange];
Iivk[style=filled; fillcolor = Orange];
Peri[style=filled; fillcolor = Orange];
Auxi[style=filled; fillcolor = Red];
Auxipft[style=filled; fillcolor = Red];
Inde[style=filled; fillcolor = Violet];
Avya[style=filled; fillcolor = Magenta];
Neg[style=filled; fillcolor = Violet];
Abstva[style=filled; fillcolor = Violet];
Absya[style=filled; fillcolor = Violet];
Pv[style=filled; fillcolor = Pink];
Pvk[style=filled; fillcolor = Pink];
}
% This is ocamlweb.sty, by Jean-Christophe Fillitre
% modified by Claude March
% This LaTeX package is used by ocamlweb (http://www.lri.fr/~filliatr/ocamlweb)
%
% You can modify the following macros to customize the appearance
% of the document.
\newif\iflatexsectioning\latexsectioningfalse
% the following comment tells HeVeA to ignore all this until END LATEX
%BEGIN LATEX
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{ocamlweb}[1999/05/21]
% package options
% option for the sectioning style
% if false, the sectioning is similar to the web sectioning, sections
% numbered in sequences. If true, structured sectioning is allowed
% using LaTeX sectioning commands.
\DeclareOption{noweb}{\latexsectioningtrue}
\DeclareOption{web-sects}{\latexsectioningfalse}
% option for visible spaces
\newif\ifvisiblespaces\visiblespacestrue
\DeclareOption{novisiblespaces}{\visiblespacesfalse}
% option for index by pages
\newif\ifbypage\bypagetrue
\DeclareOption{bypages}{\bypagetrue}
\DeclareOption{bysections}{\bypagefalse}
\ProcessOptions
% needed to make hypertex work
\AtBeginDocument{\let\Hy@tempa\relax}
%END LATEX
% HeVeA reads the following
% Hevea puts to much space with \medskip and \bigskip
%HEVEA\renewcommand{\medskip}{}
%HEVEA\renewcommand{\bigskip}{}
% own name
\newcommand{\ocamlweb}{\textsf{ocamlweb}}
% pretty underscores (the package fontenc causes ugly underscores)
%BEGIN LATEX
\def\_{\kern.08em\vbox{\hrule width.35em height.6pt}\kern.08em}
%END LATEX
% Bigger underscore for ocamllex files (lexers).
\newcommand{\ocwlexwc}{\textnormal{\large \_\,}}
% macro for typesetting ocamllex keywords and for regexp and rule idents
\newcommand{\ocwlexkw}[1]{\textsf{#1}}
\newcommand{\ocwlexident}[1]{\ensuremath{\mathit{#1\/}}}
% macro for typesetting ocamlyacc keywords and for non-terminals and tokens
\newcommand{\ocwyacckw}[1]{\textsf{#1}}
\newcommand{\ocwyaccident}[1]{\ensuremath{\mathit{#1\/}}}
% macro for typesetting keywords
\newcommand{\ocwkw}[1]{\textsf{#1}}
% macro for typesetting base types (int, bool, string, etc.)
\newcommand{\ocwbt}[1]{\textit{#1\/}}
% macro for typesetting type variables
\newcommand{\ocwtv}[1]{\textit{'#1\/}}
% macro for typesetting identifiers
\newcommand{\ocwsymbolid}[1]{{#1}}
\newcommand{\ocwlowerid}[1]{\ensuremath{\mathit{#1\/}}}
\newcommand{\ocwupperid}[1]{\ensuremath{\mathit{#1\/}}}
% macros for typesetting constants
\newcommand{\ocwhexconst}[1]{\ensuremath{\mathtt{#1}_{16}}}
\newcommand{\ocwoctconst}[1]{\ensuremath{#1_8}}
\newcommand{\ocwbinconst}[1]{\ensuremath{#1_2}}
\newcommand{\ocwfloatconst}[2]{\ensuremath{#1\cdot 10^{#2}}}
\newcommand{\ocwfloatconstexp}[1]{\ensuremath{10^{#1}}}
% newline, and indentation
%BEGIN LATEX
\newcommand{\ocweol}{\setlength\parskip{0pt}\par\penalty5000}
\newcommand{\ocwindent}[1]{\noindent\kern#1}
%END LATEX
%HEVEA\newcommand{\ocweol}{\begin{rawhtml}<BR>\end{rawhtml}}
%HEVEA\newcommand{\ocwindent}[1]{\hspace{#1}\hspace{#1}}
% macro for typesetting comments
\newcommand{\ocwbc}{\ensuremath{(\ast}}
\newcommand{\ocwec}{\ensuremath{\ast)}}
% yacc comments
\newcommand{\ocwbyc}{\ensuremath{/\ast}}
\newcommand{\ocweyc}{\ensuremath{\ast/}}
% yacc special notations
\iflatexsectioning
\newcommand{\ocwyaccrules}{\subsection*{Grammar rules}}
\newcommand{\ocwyacctrailer}{\subsection*{Trailer}}
\newcommand{\ocwyaccopercentbrace}{\subsection*{Header}}
\newcommand{\ocwyacccpercentbrace}{\subsection*{Token declarations}}
\else
\newcommand{\ocwyaccrules}{}
\newcommand{\ocwyacctrailer}{}
\newcommand{\ocwyaccopercentbrace}{}
\newcommand{\ocwyacccpercentbrace}{}
\fi
\newcommand{\ocwyacccolon}{\ensuremath{::=}}
\newcommand{\ocwyaccendrule}{}
\newcommand{\ocwyaccpipe}{\ensuremath{\mid}}
%BEGIN LATEX
\newbox\boxA
\newbox\boxB
\newdimen\boxwidth
\def\ocwcomment{\unskip\hskip 2em\null\par\nointerlineskip
\setbox\boxA=\lastbox
\setbox\boxB=\hbox{\strut\unhbox\boxA}\boxwidth=\wd\boxB
\noindent\box\boxB\par
\ifdim\boxwidth<.5\hsize\vskip -\baselineskip
\else\boxwidth=.5\hsize\fi
\noindent\hangafter=0 \hangindent=\boxwidth
\llap{$(*$ }\ignorespaces}
\def\ocwendcomment{\unskip~$*)$\strut\par}
%END LATEX
%HEVEA\newcommand{\ocwcomment}{(*}
%HEVEA\newcommand{\ocwendcomment}{*)}
%BEGIN LATEX
\def\ocwbegincode{}
\def\ocwendcode{}
\def\ocwbegindcode{}
\def\ocwenddcode{}
%END LATEX
%HEVEA\newcommand{\ocwbegincode}{}
%HEVEA\newcommand{\ocwendcode}{}
%HEVEA\newcommand{\ocwbegindcode}{}
%HEVEA\newcommand{\ocwenddcode}{}
%HEVEA\newcommand{\endgraf}{}
\newcommand{\ocwstring}[1]{\texttt{#1}}
% visible space in a string
%BEGIN LATEX
\ifvisiblespaces
\newcommand{\ocwvspace}{{\tt\char`\ }}
\else
\newcommand{\ocwvspace}{{\tt ~}}
\fi
%END LATEX
%HEVEA\newcommand{\ocwvspace}{\hspace{1em}}
% macro to insert a title and to set the header accordingly
%BEGIN LATEX
\def\currentmodule{}
\newcommand{\ocwheader}[1]{\gdef\currentmodule{#1}}
\newcommand{\ocwtitle}[1]{%
\section*{#1}%
\def\currentmodule{#1}%
\addtocounter{ocwcounter}{1}%
\markboth{}{#1 \hfill {\rm\S\theocwcounter}\quad}%
\addtocounter{ocwcounter}{-1}%
}
%END LATEX
%HEVEA\newcommand{\ocwtitle}[1]{\section*{#1}}
% macro for typesetting the title of a module implementation
\newcommand{\ocwmodule}[1]{\ocwtitle{Module #1}}
% macro for typesetting the title of a module interface
\newcommand{\ocwinterface}[1]{\ocwtitle{Interface for module #1}}
% interface part of a module
\newcommand{\ocwinterfacepart}{\subsection*{Interface}}
% code part of a module
\newcommand{\ocwcodepart}{\subsection*{Code}}
% macro for typesetting the title of a lex description
\newcommand{\ocwlexmodule}[1]{\ocwtitle{Module #1 (Lex)}}
% macro for typesetting the title of a yacc description
\newcommand{\ocwyaccmodule}[1]{\ocwtitle{Module #1 (Yacc)}}
% new WEB section
\newcounter{ocwcounter}
\setcounter{ocwcounter}{0}
\newcommand{\ocwsection}{%
\refstepcounter{ocwcounter}%
\bigskip\noindent{\bf\theocwcounter.}%
%BEGIN LATEX
\markboth{}{\currentmodule \hfill {\rm\S\theocwcounter}\quad}%
\kern1em%
%END LATEX
%HEVEA\hspace{1em}
}
%HEVEA\newcommand{\currentmodule}{}
% index
%BEGIN LATEX
\newcommand{\ocwbeginindex}{%
\markboth{}{Index \hfill {\rm\S\theocwcounter}\quad}%
\begin{theindex}%
}%
\newcommand{\ocwendindex}{\end{theindex}}
%END LATEX
%HEVEA\newcommand{\ocwbeginindex}{\section{Index}\begin{itemize}}
%HEVEA\newcommand{\ocwendindex}{\end{itemize}}
% index entry in web-sects option
\newcommand{\ocwwebindexentry}[3]{\item #1,\quad#2#3}
% index entry in noweb option
%BEGIN LATEX
\def\loopbody{%
\edef\ocwnext{%
\@ifundefined{r@\ocwloop}{??}{\ifbypage\pageref{\ocwloop}\else
\ref{\ocwloop}\fi}}%
\ifx\ocwprevious\ocwnext\relax
\else
\ocwsep\ocwoutputref{\ocwnext}%
\edef\ocwprevious{\ocwnext}%
\def\ocwsep{, }%
\fi}
\newcommand{\ocwrefindexentry}[5]{\item #1,\quad
\def\ocwsep{\relax}%
\def\ocwoutputref{\textbf}%
\def\ocwprevious{0}%
\@for\ocwloop:=#2\do{\loopbody}%
\def\ocwoutputref{\textrm}%
\def\ocwprevious{0}%
\@for\ocwloop:=#3\do{\loopbody}%
}
%END LATEX
%HEVEA\newcommand{\ocwrefindexentry}[5]{\item #1,\quad#4, #5}
%HEVEA\newcommand{\lnot}{\ocwkw{not}}
%HEVEA\newcommand{\lor}{\ocwkw{or}}
%HEVEA\newcommand{\land}{\&}
%HEVEA\newcommand{\markboth}{}{}
File added
File added
File added
############################################################################
# #
# The Sanskrit Heritage Platform #
# #
# Gérard Huet #
# #
############################################################################
# Installation instructions Copyright Gérard Huet 2016 #
############################################################################
This is just a reminder for quick installation.
The complete installation procedure is described in file SETUP/INSTALL.
0) Install Objective Caml 4.02 distribution
(available from http://ocaml.org).
Then install the Camplp4 processor in its 4.02 distribution
(available from https://github.com/ocaml/camlp4).
1) Edit your configuration file.
Look at the SETUP/CONFIGS directory to find examples.
SETUP/config_help.txt explains all the fields.
2) Create symbolic link to your configuration file in SETUP dir
ln -s config.you.txt config
The "config" link has to be located into the SETUP directory.
3) Launch configuration in main dir
./configure
4) Launch compilation
make
5) Install it
If first installation of server, first:
sudo make cold
Afterward, only:
sudo make install