2:- module(abbreviations,[iAbb/2,tAbb/2]).    3
    4/* ----------------------------------------------------------------------------------
    5   Transitive abbreviations (usually not at the end of a sentence)
    6---------------------------------------------------------------------------------- */
    7
    8tAbb(L,A):- title(L,A).
    9tAbb(L,A):- coord(L,A).
   10
   11
   12/* ----------------------------------------------------------------------------------
   13   Intransitive abbreviations
   14---------------------------------------------------------------------------------- */
   15
   16iAbb(L,A):- abb(L,A).
   17
   18
   19/* ----------------------------------------------------------------------------------
   20   Titles
   21---------------------------------------------------------------------------------- */
   22
   23title(en, "Mr").           % sg
   24title(en, "Messrs").       % pl
   25title(en, "Mrs").          % sg
   26title(en, "Mmes").         % pl
   27title(en, "Ms").           % 
   28title(en, "Dr").           % sg
   29title(en, "Drs").          % pl
   30title(en, "Prof").         % 
   31title(en, "Sen").          % 
   32title(en, "Gov").          % 
   33title(en, "St").           % Saint
   34title(en, "Rep").          % 
   35title(en, "Gen").          % 
   36title(en, "Lt").           % Lieutenant
   37title(en, "Lieut").        % Lieutenant
   38title(en, "Col").          % Colonel
   39title(en, "Adm").          % Admiral
   40title(en, "Cpt").          % Captain
   41title(en, "Rev").          % Reverend
   42title(en, "Hon").          % Honoroble
   43title(en, "Capt").         % 
   44title(en, "Cmdr").         % 
   45title(en, "Chapln").       % 
   46title(en, "Mt").           % Mount
   47
   48
   49/* ----------------------------------------------------------------------------------
   50   Coordinators
   51---------------------------------------------------------------------------------- */
   52
   53coord(en, "v").            % versus
   54coord(en, "vs").           % versus
   55coord(en, "no").           % number
   56coord(en, "No").           % number
   57coord(en, "Cie").          % ??
   58coord(en, "a.k.a").        % also known as
   59coord(en, "e.g").          % exempli gratia (for example)
   60
   61
   62/* ----------------------------------------------------------------------------------
   63   Abbreviations
   64---------------------------------------------------------------------------------- */
   65
   66abb(Codes):- member(46,Codes), member(X,Codes), alpha(X), !.
   67abb(Abb):- option('--language',Language), abb(Language,Abb), !.
   68
   69abb(en, "proC"). % Corp
   70abb(en, "cnI").  % Inc
   71abb(en, "oC").   % Co
   72abb(en, "dtL").  % Ltd
   73abb(en, "rJ").   % Jr
   74abb(en, "rS").   % Sr
   75abb(en, "soC").  % Cos
   76abb(en, "sorB"). % Bros
   77abb(en, "cte").  % etc