Index: src/data/italian/prolog/binarise.pl =================================================================== --- src/data/italian/prolog/binarise.pl (revision 2527) +++ src/data/italian/prolog/binarise.pl (working copy) @@ -6,7 +6,7 @@ /* ----------------------------------------------------------------------- Binarising: put branches in a list ------------------------------------------------------------------------ */ +- */ binarise(Tree,Name,Bin):- Tree =.. [tree,Node|Branches], !, @@ -15,7 +15,7 @@ /* ----------------------------------------------------------------------- Binarising: definite prepositions ------------------------------------------------------------------------- */ +-- */ binarise(t(Cat,[h:T1,a:T2]),B,C):- T1 = tree('PREP',Tok1), @@ -28,7 +28,7 @@ /* ----------------------------------------------------------------------- Binarising: repair of embedded and relative clauses ------------------------------------------------------------------------- */ +-- */ binarise(t(Cat,[h:T1,a:T2]),B,C):- Cat = 'CONJP-OBJ', @@ -45,7 +45,7 @@ /* ----------------------------------------------------------------------- Binarising: repair of double-headed preposition ------------------------------------------------------------------------- */ +-- */ binarise(t(Cat,[h:T1,h:T2]),B,C):- T1 =.. [tree,'PREP'|_], @@ -54,7 +54,7 @@ /* ----------------------------------------------------------------------- Binarising: repair of name/noun compounds ------------------------------------------------------------------------- */ +-- */ binarise(t(Cat,L1),B,C):- sublist([h:T1,h:T2],L1,Before,After), @@ -72,7 +72,7 @@ /* ----------------------------------------------------------------------- Binarising: repair of numerical compounds ------------------------------------------------------------------------- */ +-- */ binarise(t(Cat,L1),B,C):- sublist([h:T1,h:T2],L1,Before,After), @@ -98,7 +98,7 @@ /* ----------------------------------------------------------------------- Binarising: repair of comparative ------------------------------------------------------------------------- */ +-- */ binarise(t(Cat,L1),B,C):- sublist([h:T1,h:T2],L1,Before,After), @@ -109,7 +109,7 @@ /* ----------------------------------------------------------------------- Binarising: repair of percentage expressions ------------------------------------------------------------------------- */ +-- */ binarise(t(Cat,L1),B,C):- sublist([h:T1,a:T2,h:T3],L1,Before,After), @@ -138,7 +138,7 @@ /* ----------------------------------------------------------------------- Binarising: repair of sentences with VP as subject ------------------------------------------------------------------------- */ +-- */ binarise(t(Cat,L1),B,C):- sublist([h:T1,h:T2],L1,Before,After), @@ -149,7 +149,7 @@ /* ----------------------------------------------------------------------- Binarising: possessives (ALB-19) ------------------------------------------------------------------------- */ +-- */ binarise(t(Cat,L1),B,C):- sublist([a:T1,a:T2],L1,Before,After), @@ -160,7 +160,7 @@ /* ----------------------------------------------------------------------- Binarising: DP modifiers (ALB-33, ALB-381) ------------------------------------------------------------------------- */ +-- */ binarise(t(Cat,L1),B,C):- sublist([m:T1,a:T2],L1,Before,After), @@ -185,7 +185,7 @@ /* ----------------------------------------------------------------------- Binarising: embedded clauses (CHIAM-47, V-19) ------------------------------------------------------------------------- */ +-- */ binarise(t(Cat,L1),B,C):- Cat = 'Vbar', Index: src/data/italian/prolog/ccg.pl =================================================================== --- src/data/italian/prolog/ccg.pl (revision 2527) +++ src/data/italian/prolog/ccg.pl (working copy) @@ -54,7 +54,7 @@ topcat(t(C1,_,_,_),C2):- !, C2=C1. topcat(ba(C1,_,_),C2):- !, C2=C1. topcat(fa(C1,_,_),C2):- !, C2=C1. -topcat(CCG,_):- !, error('topcat not defined for ~p~n',[CCG]), fail. +topcat(CCG,_):- !, trace,error('topcat not defined for ~p~n',[CCG]), fail. /* ---------------------------------------------------------- @@ -455,7 +455,7 @@ /* ---------------------------------------------------------------------------------- Leaf Nodes: MOD (quotes and parentheticals) ----------------------------------------------------------------------------------- */ +------------ */ ccg(leaf(Pos,Ind,Tok), m, [modrigh(X)], t(Cat,Pos,Ind,Tok)):- Pos = 'PUNCT-OPEN+QUOTES', !, @@ -475,7 +475,7 @@ /* ---------------------------------------------------------------------------------- Leaf Nodes: MOD (general case) ----------------------------------------------------------------------------------- */ +------------ */ ccg(leaf(Pos,Ind,Tok), m, [modrigh(X)], t(Cat,Pos,Ind,Tok)):- !, Cat = (X/X). ccg(leaf(Pos,Ind,Tok), m, [modleft(X)], t(Cat,Pos,Ind,Tok)):- !, Cat = (X\X). @@ -533,7 +533,7 @@ /* ------------------------------------------------------------------------ Mapping from POS to basic CCG categories [possible arguments] ------------------------------------------------------------------------- */ +-- */ pos2cat(Pos, s:pss, S):- main_verb(Pos,_), member(argrigh('NP-LGS'),S). pos2cat(Pos, s:F, S):- main_verb(Pos,F), \+ member(argrigh('NP-LGS'),S). @@ -582,7 +582,7 @@ /* ------------------------------------------------------------------------ Determine base of functor category ------------------------------------------------------------------------- */ +-- */ build([],Cat,Cat):- !. build([modleft(X)],_,(X\X)):- !. Index: src/data/italian/prolog/printCCG.pl =================================================================== --- src/data/italian/prolog/printCCG.pl (revision 2527) +++ src/data/italian/prolog/printCCG.pl (working copy) @@ -9,10 +9,10 @@ /* ---------------------------------------------------------------------- Main Predicate (simple) ----------------------------------------------------------------------- */ + */ writeCCG(CCG,Name,No,Stream):- - format(Stream,'ccg(~p, %%% ~q~n',[No,Name]), + 'format'(Stream,'ccg(~p, %%% ~q~n',[No,Name]), writeDer(CCG,5,Stream), write(Stream,').'), nl(Stream), nl(Stream). @@ -20,14 +20,14 @@ /* ---------------------------------------------------------------------- Derivation ----------------------------------------------------------------------- */ + */ writeDer(t(Cat,Pos,_Ind,Tok),Tab,Stream):- !, tab(Stream,Tab), downcase_atom(Tok,Stem), write(Stream,'t('), print(Stream,Cat), - format(Stream,',~q,~q,~q)',[Tok,Stem,Pos]). + 'format'(Stream,',~q,~q,~q)',[Tok,Stem,Pos]). writeDer(Der,Tab,Stream):- Der =.. [Rule,Cat1,Cat2,A], @@ -69,7 +69,7 @@ /* ---------------------------------------------------------------------- Main Predicate (pretty) ----------------------------------------------------------------------- */ + */ printCCG(CCG,Stream):- ccg2lines(CCG,_,Lines), !, @@ -86,7 +86,7 @@ /* ---------------------------------------------------------------------- Print Lines (the CCG derivation) ----------------------------------------------------------------------- */ + */ printLines([],Stream):- nl(Stream). @@ -98,7 +98,7 @@ /* ---------------------------------------------------------------------- Compute each line ----------------------------------------------------------------------- */ + */ ccg2lines(t(Cat,_,_,Tok),Len,[Line1,Line2,Line3]):- !, ccg2lines(tok(Cat,Tok),Len,[Line1,Line2,Line3]). @@ -175,7 +175,7 @@ /* ---------------------------------------------------------------------- Combine Lines ----------------------------------------------------------------------- */ + */ combLines(MaxLeft,Left,MaxRight,Right,Max,New):- Max is MaxLeft + MaxRight + 1, @@ -205,7 +205,7 @@ /* ---------------------------------------------------------------------- Filling out spaces to the right (sometimes needed) ----------------------------------------------------------------------- */ + */ fillRight(L,TreeLen,CatLen,TreeLen,L):- TreeLen > CatLen, !. @@ -228,7 +228,7 @@ /* ---------------------------------------------------------------------- Format a rule ----------------------------------------------------------------------- */ + */ rule(Rule,Max,Line):- atom_length(Rule,Len), @@ -241,7 +241,7 @@ /* ---------------------------------------------------------------------- Format a cat ----------------------------------------------------------------------- */ + */ cat(Cat,Max,Line):- atom_length(Cat,Len), @@ -252,7 +252,7 @@ /* ---------------------------------------------------------------------- Fill a line with a character ----------------------------------------------------------------------- */ + */ fill(Atom,Len,Result):- atom_codes(Atom,[Code]), @@ -270,7 +270,7 @@ /* ---------------------------------------------------------------------- Convert a CCG cat to an atom ----------------------------------------------------------------------- */ + */ cat2atom(Cat,Atom):- cat2atom(Cat,Atom,top). @@ -321,16 +321,16 @@ /* ---------------------------------------------------------------------- Print Cat ----------------------------------------------------------------------- */ + */ printCat(t(Cat,Pos,_Ind,Tok),Stream):- !, % cat2atom(Cat,CatAtom), -% format(Stream,'LEX ~p ~p ~p ~p~n',[Tok,Pos,Ind,CatAtom]). +% 'format'(Stream,'LEX ~p ~p ~p ~p~n',[Tok,Pos,Ind,CatAtom]). printCat(tok(Cat,Pos,Tok),Stream). printCat(tok(Cat,Pos,Tok),Stream):- !, cat2atom(Cat,CatAtom), - format(Stream,'LEX ~p ~p ~p~n',[Tok,Pos,CatAtom]). + 'format'(Stream,'LEX ~p ~p ~p~n',[Tok,Pos,CatAtom]). printCat(Rule,Stream):- ( Rule = tc(_,_,Tree) Index: src/data/italian/prolog/printError.pl =================================================================== --- src/data/italian/prolog/printError.pl (revision 2527) +++ src/data/italian/prolog/printError.pl (working copy) @@ -12,4 +12,4 @@ error(Format,Arg,Stream):- write(Stream,'ERROR: '), - format(Stream,Format,Arg). + 'format'(Stream,Format,Arg). Index: src/data/italian/prolog/printTUT.pl =================================================================== --- src/data/italian/prolog/printTUT.pl (revision 2527) +++ src/data/italian/prolog/printTUT.pl (working copy) @@ -3,14 +3,14 @@ /* -------------------------------------------------------------------------- Tab Length --------------------------------------------------------------------------- */ +---- */ tablength(4). /* -------------------------------------------------------------------------- Print Tree --------------------------------------------------------------------------- */ +---- */ printTUT(X,Stream):- printTUT(X,0,Stream), nl(Stream). @@ -46,7 +46,7 @@ /* -------------------------------------------------------------------------- Print Branches --------------------------------------------------------------------------- */ +---- */ printTUTs([],_,_):- !. printTUTs([X|L],Tab,Stream):- printTUT(X,Tab,Stream), !, printTUTs(L,Tab,Stream). @@ -54,7 +54,7 @@ /* -------------------------------------------------------------------------- Length Tree --------------------------------------------------------------------------- */ +---- */ lenTUT(X,N):- lenTUT(X,0,N). @@ -73,14 +73,14 @@ /* -------------------------------------------------------------------------- Length of Branches --------------------------------------------------------------------------- */ +---- */ lenTUTs([],N,N):- !. lenTUTs([X|L],N1,N3):- lenTUT(X,N1,N2), !, lenTUTs(L,N2,N3). /* -------------------------------------------------------------------------- Deciding whether it is a token --------------------------------------------------------------------------- */ +---- */ token(Atom,N1,N2):- atom(Atom), Index: src/data/italian/prolog/printTree.pl =================================================================== --- src/data/italian/prolog/printTree.pl (revision 2527) +++ src/data/italian/prolog/printTree.pl (working copy) @@ -4,7 +4,7 @@ /* -------------------------------------------------------------------------- Main Predicate --------------------------------------------------------------------------- */ +---- */ printBin(Tree,Stream):- printTree(Tree,[],Stream), @@ -13,14 +13,14 @@ /* -------------------------------------------------------------------------- Tab Length --------------------------------------------------------------------------- */ +---- */ tablength(4). /* -------------------------------------------------------------------------- Print Tree --------------------------------------------------------------------------- */ +---- */ printTree(single(A),Tabs,Stream):- !, line(Tabs,Stream), write(Stream,A), nl(Stream). @@ -115,7 +115,7 @@ /* -------------------------------------------------------------------------- Print Line --------------------------------------------------------------------------- */ +---- */ line([],_):- !. @@ -132,7 +132,7 @@ /* -------------------------------------------------------------------------- Print Tabs --------------------------------------------------------------------------- */ +---- */ tabs([],_):- !. tabs(L,Stream):- reverse(L,R), tabs2(R,Stream). Index: src/data/italian/prolog/tut2ccg.pl =================================================================== --- src/data/italian/prolog/tut2ccg.pl (revision 2527) +++ src/data/italian/prolog/tut2ccg.pl (working copy) @@ -1,6 +1,6 @@ /* -------------------------------------------------------------------------- Importing other modules --------------------------------------------------------------------------- */ +---- */ :- use_module(binarise,[binarise/3]). :- use_module(ccg,[ccg/2]). @@ -11,13 +11,13 @@ /* -------------------------------------------------------------------------- Dynamic Predicates --------------------------------------------------------------------------- */ +---- */ :- dynamic switch/2. /* -------------------------------------------------------------------------- Switches (yes/no) --------------------------------------------------------------------------- */ +---- */ switch(tut,no). % print TUT tree switch(bin,no). % print binary tree @@ -32,7 +32,7 @@ /* -------------------------------------------------------------------------- Exceptions (do not try to process these yet) --------------------------------------------------------------------------- */ +---- */ dont('ALB-100'). % wrong attachment dont('ALB-245'). % coordination problem @@ -71,7 +71,7 @@ /* -------------------------------------------------------------------------- Process all TUT derivations --------------------------------------------------------------------------- */ +---- */ alltut(Stream):- switch(sort,no), @@ -92,20 +92,20 @@ /* -------------------------------------------------------------------------- Process one TUT tree --------------------------------------------------------------------------- */ +---- */ processTree(Name,Type,TUT,Stream):- increase(tree), % update counter ( switch(tut,yes), - format(Stream,'%%%% ~p~n',[Name]), % print TUT format + 'format'(Stream,'%%%% ~p~n',[Name]), % print TUT 'format' printTUT(Type:TUT,Stream) ; \+ switch(tut,yes) ), binarise(TUT,Name,Tree), % binarise the TUT tree increase(bin), % update counter ( switch(bin,yes), - format(Stream,'%%%% ~p~n',[Name]), % print binary tree + 'format'(Stream,'%%%% ~p~n',[Name]), % print binary tree printBin(Type:Tree,Stream) ; \+ switch(bin,yes) ), @@ -124,19 +124,19 @@ ; \+ switch(pro,yes) ), % print CCG (prolog) ( switch(ccg,yes), - format(Stream,'%%%% ~p~n',[Name]), + 'format'(Stream,'%%%% ~p~n',[Name]), printCCG(CCG,Stream) ; \+ switch(ccg,yes) ), % print CCG derivation ( switch(lex,yes), - format(Stream,'%%%% ~p~n',[Name]), + 'format'(Stream,'%%%% ~p~n',[Name]), printTokCat(CCG,Stream) ; \+ switch(lex,yes) ). % print lexicon /* -------------------------------------------------------------------------- Sorted on sentence length (wrapper) --------------------------------------------------------------------------- */ +---- */ sortbank(Stream):- switch(sort,yes), !, @@ -147,7 +147,7 @@ /* -------------------------------------------------------------------------- Sorted on sentence length --------------------------------------------------------------------------- */ +---- */ sortbank(N,Stream):- tut(_,_,Name,_,Type:TUT), % get a constituent tree @@ -161,7 +161,7 @@ % ccg(Type:Tree,CCGTemp), % convert it into a CCG derivation % pp(CCGTemp,CCG), % apply post-processing % increase(ccg), % update counter -% format(Stream,'%%%% ~p~n',[Name]), +% 'format'(Stream,'%%%% ~p~n',[Name]), % printCCG(CCG,Stream), sortbank(N,Stream):- @@ -176,7 +176,7 @@ /* -------------------------------------------------------------------------- Stats --------------------------------------------------------------------------- */ +---- */ stats(Stream):- write(Stream,'Statistics'), nl(Stream), @@ -191,7 +191,7 @@ /* -------------------------------------------------------------------------- File handling --------------------------------------------------------------------------- */ +---- */ output(Command,user_output):- parseCommand(Command,[File]), !, @@ -204,7 +204,7 @@ /* -------------------------------------------------------------------------- Main Predicate --------------------------------------------------------------------------- */ +---- */ run:- prolog_flag(argv,Command), @@ -217,14 +217,14 @@ /* -------------------------------------------------------------------------- Parse Command --------------------------------------------------------------------------- */ +---- */ parseCommand([_,'-c',_Comm|Options],Files):- parseOptions(Options,Files), !. parseCommand([_,_,'-c',_Comm|Options],Files):- parseOptions(Options,Files), !. /* -------------------------------------------------------------------------- Parse Options --------------------------------------------------------------------------- */ +---- */ parseOptions([],[]). @@ -267,7 +267,7 @@ /* -------------------------------------------------------------------------- Counting --------------------------------------------------------------------------- */ +---- */ :- dynamic counter/2. @@ -283,7 +283,7 @@ /* -------------------------------------------------------------------------- Starting --------------------------------------------------------------------------- */ +---- */ :- run, halt. Index: src/data/vpe/annotate.pl =================================================================== --- src/data/vpe/annotate.pl (revision 2527) +++ src/data/vpe/annotate.pl (working copy) @@ -213,7 +213,7 @@ append(ConVPAC,[32|Temp11],Temp10), !, atom_codes(ConVPA,ConVPAC), append(RelVPAC,[32|ContextC],Temp11), !, atom_codes(RelVPA,RelVPAC), atom_codes(Context,ContextC), - format('~p ~p ~p ~p ~p ~p ~p ~p~n',[File,LinVPE,BegVPE,EndVPE,LinVPA,BegVPA,EndVPA,AuxVPA]), + 'format'('~p ~p ~p ~p ~p ~p ~p ~p~n',[File,LinVPE,BegVPE,EndVPE,LinVPA,BegVPA,EndVPA,AuxVPA]), assert(vpe(File,LinVPE,BegVPE,EndVPE,LinVPA,BegVPA,EndVPA,AuxVPA,TypVPA,ConVPA,RelVPA,Context)). processAnn(_). @@ -349,7 +349,7 @@ context_window(CW), Tab is ((CW+3)-P5), tab(CW), tab(3), printN(Len,'v'), nl, - tab(Tab), format('~p~n',[C]), + tab(Tab), 'format'('~p~n',[C]), tab(CW), tab(3), printN(Len,'^'), nl, ask(F,N,P1,P2,Aux,C,S,Id,Next), !, ask(Next). @@ -427,13 +427,13 @@ output(99,F,_,_,_,_,_,S,I,I):- !, write(check),nl,nl, - format('~s~n~n',[S]), + 'format'('~s~n~n',[S]), check_file(File), open(File,append,Stream,[encoding(utf8)]), ptb(PTB), wsj(Section), - format(Stream,'---~nFile: ~p/~p/~p~n',[PTB,Section,F]), - format(Stream,'~s~n',[S]), + 'format'(Stream,'---~nFile: ~p/~p/~p~n',[PTB,Section,F]), + 'format'(Stream,'~s~n',[S]), close(Stream). output(100,_,_,_,_,_,_,_,I,I):- !, @@ -470,7 +470,7 @@ results(Stream):- vpe(A,B,C,D,E,F,G,H,I,J,K,L), - format(Stream,'~p ~p ~p ~p ~p ~p ~p ~p ~p ~p ~p ~p~n',[A,B,C,D,E,F,G,H,I,J,K,L]), + 'format'(Stream,'~p ~p ~p ~p ~p ~p ~p ~p ~p ~p ~p ~p~n',[A,B,C,D,E,F,G,H,I,J,K,L]), fail. results(_). Index: src/data/vpe/antecedent.pl =================================================================== --- src/data/vpe/antecedent.pl (revision 2527) +++ src/data/vpe/antecedent.pl (working copy) @@ -149,7 +149,7 @@ lastid(Last), lines(VPL,F,Lines), nl,nl,write('======= '),write(Id),write('/'),write(Last),write(' ======= '), - format('~p~n',[S]), + 'format'('~p~n',[S]), displayLines(Lines,F,AL,AP1,AP2), ask(Id,Lines,Next), !, ask(Next). @@ -376,7 +376,7 @@ results(Stream):- vpe(_,A,B,C,D,E,F,G,H,I,J,K,L), - format(Stream,'~p ~p ~p ~p ~p ~p ~p ~p ~p ~p ~p ~p~n',[A,B,C,D,E,F,G,H,I,J,K,L]), + 'format'(Stream,'~p ~p ~p ~p ~p ~p ~p ~p ~p ~p ~p ~p~n',[A,B,C,D,E,F,G,H,I,J,K,L]), fail. results(_). Index: src/data/vpe/eval.pl =================================================================== --- src/data/vpe/eval.pl (revision 2527) +++ src/data/vpe/eval.pl (working copy) @@ -9,7 +9,7 @@ /* ======================================================================= Consulting gold standard -========================================================================*/ +*/ :- ['working/wsj/vpe00.pl']. @@ -135,7 +135,7 @@ /* ----------------------------------------------------------------------------- VPE ------------------------------------------------------------------------------ */ +------- */ detect_vpe(Words,Corpus,ID,DRS,Str):- member(_:VPEInd:pred(E1,do,vpe,1),DRS), @@ -182,7 +182,7 @@ Position is mod(VPE,1000), Sentence is (VPE-Position)/1000, write(Stream,''), - format(Stream,'~p~p',[Corpus,ID]), + 'format'(Stream,'~p~p',[Corpus,ID]), assert(found_vpe(Corpus,Sentence,Position,Type)), correct(Corpus,Sentence,Position,Stream,Result,GoldAnt), evalAntecedent([ABeg,AEnd],GoldAnt,Stream), @@ -194,7 +194,7 @@ Position is mod(VPE,1000), Sentence is (VPE-Position)/1000, write(Stream,''), - format(Stream,'~p~p',[Corpus,ID]), + 'format'(Stream,'~p~p',[Corpus,ID]), assert(found_vpe(Corpus,Sentence,Position,Type)), correct(Corpus,Sentence,Position,Stream,Result,GoldAnt), evalAntecedent([],GoldAnt,Stream), @@ -213,7 +213,7 @@ ant_beg(Id,Corpus,SenBegAnt,PosBegAnt), BegAnt is (SenBegAnt*1000)+PosBegAnt, ant_end(Id,Corpus,SenEndAnt,PosEndAnt), EndAnt is (SenEndAnt*1000)+PosEndAnt, Gold = [BegAnt,EndAnt], - format(Stream,'R',[]). + 'format'(Stream,'R',[]). correct(_,_,_,Stream,w,[]):- write(Stream,'W'). @@ -265,11 +265,11 @@ N2 is N1 + 1, assert(acc_ant(Total2,Total4,N2)), -% format(Stream,'~pP:~p R:~p F:~p (Found:~p Gold:~p Correct:~p)',[Result,Precision,Recall,Fscore,NFound,NGold,NCorrect]). - format(Stream,'~p~p',[Result,Fscore]). +% 'format'(Stream,'~pP:~p R:~p F:~p (Found:~p Gold:~p Correct:~p)',[Result,Precision,Recall,Fscore,NFound,NGold,NCorrect]). + 'format'(Stream,'~p~p',[Result,Fscore]). evalAntecedent(_Found,_Gold,Stream):- - format(Stream,'--',[]). + 'format'(Stream,'--',[]). /* ======================================================================= @@ -325,7 +325,7 @@ ( \+ (Precision = 0, Recall = 0), FScore is (2 * Precision * Recall)/(Precision + Recall) ; Precision = 0, Recall = 0, FScore = 0 ), - format(Stream,'~p~f (~p/~p)~f (~p/~p)~f~n',[Type,Recall,CorrectVPEFound,AllVPEInTest,Precision,CorrectVPEFound,AllVPEFound,FScore]), + 'format'(Stream,'~p~f (~p/~p)~f (~p/~p)~f~n',[Type,Recall,CorrectVPEFound,AllVPEInTest,Precision,CorrectVPEFound,AllVPEFound,FScore]), results_by_type(L,Stream). @@ -358,7 +358,7 @@ ( \+ (Precision = 0, Recall = 0), FScore is (2 * Precision * Recall)/(Precision + Recall); Precision = 0, Recall = 0, FScore = 0 ), - format(Stream,'~p~p (~p/~p)~p (~p/~p)~p~n', + 'format'(Stream,'~p~p (~p/~p)~p (~p/~p)~p~n', ['Total',Recall,CorrectVPEFound,AllVPEInTest,Precision,CorrectVPEFound,AllVPEFound,FScore]), write(Stream,'Average accuracy (~p/~p): ~f

~n',[AccTotal,AccN,AveAcc]), - format(Stream,'

Average F-score (~p/~p): ~f

~n',[AccF,AccN,AveF]). + 'format'(Stream,'

Average accuracy (~p/~p): ~f

~n',[AccTotal,AccN,AveAcc]), + 'format'(Stream,'

Average F-score (~p/~p): ~f

~n',[AccF,AccN,AveF]). /* ======================================================================= @@ -384,7 +384,7 @@ printVPE([word(Index,Word)|L],VPE,Res,Gold,Stream):- VPE = [Index|_], !, ( Res=r, Col=blue, !; Res=m, Col=orange, !; Col=red ), - format(Stream,'',[Col]), + 'format'(Stream,'',[Col]), write(Stream,Word), write(Stream,' '), printVPE(L,VPE,Res,Gold,Stream). @@ -471,14 +471,14 @@ sem(SemID,Words,_,_,_), id(ID,SemID), member(word(VPEIndex,_),Words), !, - format(Stream,'~p~pM--',[Corpus,ID]), + 'format'(Stream,'~p~pM--',[Corpus,ID]), printVPE(Words,[VPEIndex],m,[],Stream), write(Stream,''), nl(Stream), missing2(L,Stream). missing2([gold(Corpus,S,P)|L],Stream):- - format(Stream,'~p?M--~p ~p (no DRS)~n',[Corpus,S,P]), + 'format'(Stream,'~p?M--~p ~p (no DRS)~n',[Corpus,S,P]), missing2(L,Stream). Index: src/data/vpe/transform.pl =================================================================== --- src/data/vpe/transform.pl (revision 2527) +++ src/data/vpe/transform.pl (working copy) @@ -84,7 +84,7 @@ append(ConVPAC,[32|Temp11],Temp10), !, atom_codes(ConVPA,ConVPAC), append(RelVPAC,[32|ContextC],Temp11), !, atom_codes(RelVPA,RelVPAC), atom_codes(Context,ContextC), - format('~p ~p ~p ~p ~p ~p ~p ~p~n',[File,LinVPE,BegVPE,EndVPE,LinVPA,BegVPA,EndVPA,AuxVPA]), + 'format'('~p ~p ~p ~p ~p ~p ~p ~p~n',[File,LinVPE,BegVPE,EndVPE,LinVPA,BegVPA,EndVPA,AuxVPA]), assert(vpe(File,LinVPE,BegVPE,EndVPE,LinVPA,BegVPA,EndVPA,AuxVPA,TypVPA,ConVPA,RelVPA,Context)). processAnn(_). @@ -163,7 +163,7 @@ results(Stream):- new_vpe(A,B,C,D,E,F,G,H,I,J), - format(Stream,'~p ~p ~p ~p ~p ~p ~p ~p ~p ~p~n',[A,B,C,D,E,F,G,H,I,J]), + 'format'(Stream,'~p ~p ~p ~p ~p ~p ~p ~p ~p ~p~n',[A,B,C,D,E,F,G,H,I,J]), fail. results(_). Index: src/data/vpe/type.pl =================================================================== --- src/data/vpe/type.pl (revision 2527) +++ src/data/vpe/type.pl (working copy) @@ -240,7 +240,7 @@ lines(VPL,F,Lines), nl, nl, write('======= '),write(Id),write('/'),write(Last),write(' ======= '), nl, at(AT,_,ATyp), ct(CT,_,CTyp), dr(DR,_,DRel), - format('[Antecedent: ~p]~n[Connector: ~p]~n[Relation: ~p]~n',[ATyp,CTyp,DRel]), + 'format'('[Antecedent: ~p]~n[Connector: ~p]~n[Relation: ~p]~n',[ATyp,CTyp,DRel]), write('============== '), nl, Inserts = [i(AL,AP1),j(AL,AP2),i(VPL,VP1),j(VPL,VP2)], displayLines(Lines,F,Inserts), @@ -500,7 +500,7 @@ results(Id,Stream):- vpe(Id,A,B,C,D,E,F,G,H,I,J,K,L), !, - format(Stream,'~p ~p ~p ~p ~p ~p ~p ~p ~p ~p ~p ~p~n',[A,B,C,D,E,F,G,H,I,J,K,L]), + 'format'(Stream,'~p ~p ~p ~p ~p ~p ~p ~p ~p ~p ~p ~p~n',[A,B,C,D,E,F,G,H,I,J,K,L]), NewId is Id + 1, results(NewId,Stream). Index: src/prolog/boxer/alphaConversionDRT.pl =================================================================== --- src/prolog/boxer/alphaConversionDRT.pl (revision 2527) +++ src/prolog/boxer/alphaConversionDRT.pl (working copy) @@ -8,7 +8,7 @@ /*======================================================================== Alpha Conversion (introducing substitutions) -========================================================================*/ +*/ alphaConvertDRS(B1,B2):- alphaConvertDRS(B1,[]-_,[]-_,B2), !. @@ -16,7 +16,7 @@ /*======================================================================== Variable -========================================================================*/ +*/ variable(X):- var(X), !. variable(X):- functor(X,'$VAR',1), !. @@ -24,7 +24,7 @@ /*======================================================================== Alpha Conversion (terms) -========================================================================*/ +*/ alphaConvertVar(X,Vars,New):- variable(X), !, @@ -41,7 +41,7 @@ /*======================================================================== Alpha Conversion (symbols) -========================================================================*/ +*/ alphaConvertSym(f(_,_,V),_,Ptr-Ptr,V):- atomic(V), !. @@ -55,7 +55,7 @@ /*======================================================================== Alpha Conversion (DRSs) -========================================================================*/ +*/ alphaConvertDRS(X1,Var-Var,Ptr-Ptr,X2):- variable(X1), !, @@ -115,7 +115,7 @@ /*======================================================================== Alpha Conversion (DRS-Conditions) -========================================================================*/ +*/ alphaConvertCondition(nec(B1),Vars,Ptr,nec(B2)):- !, alphaConvertDRS(B1,Vars-_,Ptr,B2). @@ -182,7 +182,7 @@ /*======================================================================== Eta Conversion (DRSs) -========================================================================*/ +*/ etaConversion(Var,Var):- var(Var), !, fail. etaConversion(Sym,Sym):- atomic(Sym). @@ -193,7 +193,7 @@ /*======================================================================== Function Interpretation: NN -========================================================================*/ +*/ interpretFunction(f(noun,_,Sym),Sym):- option('--nn',false), !, Sym = of. Index: src/prolog/boxer/betaConversionDRT.pl =================================================================== --- src/prolog/boxer/betaConversionDRT.pl (revision 2527) +++ src/prolog/boxer/betaConversionDRT.pl (working copy) @@ -8,7 +8,7 @@ /* ======================================================================== Beta-Conversion (introducing stack) -======================================================================== */ +*/ betaConvert(X,Y):- betaConvert(X,Y,[]), !. @@ -17,7 +17,7 @@ /* ======================================================================== Beta-Conversion (core stuff) -======================================================================== */ +*/ betaConvert(X,Y,[]):- var(X), !, Y=X. @@ -72,7 +72,7 @@ /* ======================================================================== Beta-Convert DRS Conditions -======================================================================== */ +*/ betaConvertConditions([],[]). @@ -83,7 +83,7 @@ /* ======================================================================== Beta-Convert DRS Condition -======================================================================== */ +*/ betaConvertCond(not(A1),not(B1)):- !, betaConvert(A1,B1). betaConvertCond(pos(A1),pos(B1)):- !, betaConvert(A1,B1). @@ -97,7 +97,7 @@ /* ======================================================================== Wrapping arguments from stack -======================================================================== */ +*/ wrapArguments([],X,X). Index: src/prolog/boxer/bindingViolation.pl =================================================================== --- src/prolog/boxer/bindingViolation.pl (revision 2527) +++ src/prolog/boxer/bindingViolation.pl (working copy) @@ -7,7 +7,7 @@ /*======================================================================== Succeeds if there is no binding violation in a DRS -========================================================================*/ +*/ noBindingViolationDrs(B):- bindingViolationDrs(B), !, fail. noBindingViolationDrs(_). @@ -15,7 +15,7 @@ /*======================================================================== Succeeds if there is a binding violation in a DRS -========================================================================*/ +*/ bindingViolationDrs(sdrs([B|_],_)):- bindingViolationDrs(B), !. bindingViolationDrs(sdrs([_|L],R)):- !, bindingViolationDrs(sdrs(L,R)). @@ -39,7 +39,7 @@ /*======================================================================== Succeeds if there is a binding violation in a set of DRS condition -========================================================================*/ +*/ bindingViolationConds(Conds):- member(_:_:role(E1,X1,Role1,1),Conds), @@ -66,7 +66,7 @@ /*======================================================================== Succeeds if there is a binding violation in a DRS condition -========================================================================*/ +*/ bindingViolationCond(not(drs([],[_:_:eq(X,Y)]))):- !, X==Y. Index: src/prolog/boxer/boxer.pl =================================================================== --- src/prolog/boxer/boxer.pl (revision 2527) +++ src/prolog/boxer/boxer.pl (working copy) @@ -3,17 +3,21 @@ /*======================================================================== File Search Paths -========================================================================*/ +*/ -file_search_path(semlib, 'src/prolog/lib'). -file_search_path(boxer, 'src/prolog/boxer'). -file_search_path(knowledge, 'src/prolog/boxer/knowledge'). -file_search_path(lex, 'src/prolog/boxer/lex'). +user:file_search_path(semlib, 'src/prolog/lib'). +user:file_search_path(boxer, 'src/prolog/boxer'). +user:file_search_path(knowledge, 'src/prolog/boxer/knowledge'). +user:file_search_path(lex, 'src/prolog/boxer/lex'). +user:file_search_path(semlib, 'candc/src/prolog/lib'). +user:file_search_path(boxer, 'candc/src/prolog/boxer'). +user:file_search_path(knowledge, 'candc/src/prolog/boxer/knowledge'). +user:file_search_path(lex, 'candc/src/prolog/boxer/lex'). /*======================================================================== Load other libraries -========================================================================*/ +*/ :- use_module(library(lists),[member/2,select/3]). @@ -42,12 +46,13 @@ loadKnowledge:- loadRelations. -========================================================================*/ +*/ + /*======================================================================== Main -========================================================================*/ +*/ box(_,_):- option(Option,do), @@ -66,8 +71,13 @@ printFooter(Stream), close(Stream), !, reportEval. - + box(_,_):- + option(Option,do), + member(Option,['--toploop','--loaded']), !, + prolog. + +box(_,_):- setOption(boxer,'--help',do), !, help. @@ -195,7 +205,7 @@ /* ======================================================================= Output Semantic Representation -========================================================================*/ +*/ outputSem(Stream,Id,Index,XDRS0):- % eqDrs(XDRS0,XDRS1), @@ -206,23 +216,23 @@ /* ======================================================================= Version -========================================================================*/ +*/ version:- option('--version',do), !, version(V), - format(user_error,'~p~n',[V]). + 'format'(user_error,'~p~n',[V]). version. /* ======================================================================= Help -========================================================================*/ +*/ help:- option('--help',do), !, - format(user_error,'usage: boxer [options]~n~n',[]), + 'format'(user_error,'usage: boxer [options]~n~n',[]), showOptions(boxer). help:- @@ -231,7 +241,7 @@ /* ======================================================================= Definition of start -========================================================================*/ +*/ start:- current_prolog_flag(argv,[Comm|Args]), Index: src/prolog/boxer/categories.pl =================================================================== --- src/prolog/boxer/categories.pl (revision 2527) +++ src/prolog/boxer/categories.pl (working copy) @@ -17,7 +17,7 @@ /* ------------------------------------------------------------------------- Accessing Attributes -------------------------------------------------------------------------- */ +--- */ att([],sense,0):- !. att([],namex,'O'):- !. @@ -28,7 +28,7 @@ /* ------------------------------------------------------------------------- Word Senses -------------------------------------------------------------------------- */ +--- */ sense(_Sym,_Cat,Sense,A-A):- att(A,sense,Sense), \+ Sense = 0, !. sense(_Sym,_Cat,Sense,A-[sense:Sense|A]):- Sense = 1. @@ -36,7 +36,7 @@ /* ------------------------------------------------------------------------- Relations -------------------------------------------------------------------------- */ +--- */ rel(_,Att-Att,Rel):- att(Att,relation,Rel), \+ Rel=unknown, !. rel(Rel,Att-[relation:Rel|Att],Rel). @@ -44,7 +44,7 @@ /* ------------------------------------------------------------------------- Thematic Roles introduced by PPs -------------------------------------------------------------------------- */ +--- */ roles(_,((s:X\np)\(s:X\np))/np,Roles,A-A):- option('--roles',verbnet), att(A,verbnet,Roles), \+ Roles=[], !. roles(by,((s:X\np)\(s:X\np))/np,Roles,A-[verbnet:Roles|A]):- option('--roles',verbnet), !, Roles = ['Agent']. @@ -54,7 +54,7 @@ /* ------------------------------------------------------------------------- Thematic Roles: passive -------------------------------------------------------------------------- */ +--- */ roles(Verb,(s:pss\np)/np,[Role1,Role2],A):- roles(Verb,((s:dcl\np)/np)/np,[Role1,Role2,_],A), !. roles(Verb,(s:pss\np)/s:M,[Role1,Role2],A):- roles(Verb,((s:dcl\np)/s:M)/np,[Role1,Role2,_],A), !. @@ -65,7 +65,7 @@ /* ------------------------------------------------------------------------- Thematic Roles: standard case -------------------------------------------------------------------------- */ +--- */ roles(_,_,Roles,A-A):- option('--roles',verbnet), att(A,verbnet,Roles), \+ Roles=[], !. roles(Verb,Cat,Roles,A-[verbnet:Roles|A]):- option('--roles',verbnet), verbnet(Verb,Cat,Roles), !. @@ -74,7 +74,7 @@ /* ------------------------------------------------------------------------- Thematic Roles: fall-back rules -------------------------------------------------------------------------- */ +--- */ roles(Verb,(s:M\np)\np,Roles,A):- !, roles(Verb,(s:M\np)/np,Roles,A). roles(Verb,s:inv/np,Roles,A):- !, roles(Verb,s:dcl\np,Roles,A). @@ -90,7 +90,7 @@ /* ------------------------------------------------------------------------- Thematic Roles: no roles could be assigned -------------------------------------------------------------------------- */ +--- */ roles(Verb,Cat,Roles,A-A):- warning('role assignment failure for ~p with category ~p',[Verb,Cat]), @@ -99,7 +99,7 @@ /* ------------------------------------------------------------------------- Proto (roles are listed in the order of arguments, not surface order!) -------------------------------------------------------------------------- */ +--- */ proto(_, s:adj\np, [topic]):- !. proto(_, (s:adj\np)\np, [theme,topic]):- !. @@ -142,7 +142,7 @@ /* ------------------------------------------------------------------------- Category Types: np V (intransitive verbs) -------------------------------------------------------------------------- */ +--- */ category_type(s:adj\np,_Verb,npV,[],adj):- !. category_type(s:pss\np,Verb,npV,Roles,pss):- !, roles2(npVnp,Verb,[_|Roles]). @@ -151,14 +151,14 @@ /* ------------------------------------------------------------------------- Category Types: np V prep (phrasal verbs) -------------------------------------------------------------------------- */ +--- */ category_type((s:pss\np)/(pp/np),_,npVprep,[],pss):- !. /* ------------------------------------------------------------------------- Category Types: np V np (transitive verbs) -------------------------------------------------------------------------- */ +--- */ category_type((s:adj\np)/np,_,npVnp,[],adj):- !. category_type((s:adj\np)\np,_,npVnp,[],adj):- !. @@ -173,7 +173,7 @@ /* ------------------------------------------------------------------------- Category Types: np V pp -------------------------------------------------------------------------- */ +--- */ category_type((s:adj\np)/pp,_,npVpp,[theme],adj):- !. category_type((s:pss\np)/pp,Verb,npVpp,[Role],pss):- !, roles2(npVnppp,Verb,[_,Role|_]). @@ -183,14 +183,14 @@ /* ------------------------------------------------------------------------- Category Types: np V s -------------------------------------------------------------------------- */ +--- */ category_type((s:M\np)/s:_,Verb,Cat,Roles,M):- !, Cat = npVs, roles2(Cat,Verb,Roles). category_type(((s:M\np)/s:_)/pp,Verb,Cat,[R1,R2],M):- !, Cat = npVpps, roles2(Cat,Verb,[R1,_,R2]). /* ------------------------------------------------------------------------- Category Types: s V np -------------------------------------------------------------------------- */ +--- */ category_type((s:M\s:_)\np,Verb,Cat,Roles,M):- !, Cat = sVnp, roles2(Cat,Verb,Roles). category_type((s:M\s:_)/np,Verb,Cat,Roles,M):- !, Cat = sVnp, roles2(Cat,Verb,Roles). @@ -199,7 +199,7 @@ /* ------------------------------------------------------------------------- Category Types: vp V np -------------------------------------------------------------------------- */ +--- */ category_type((s:dcl\(s:_\np))/np,Verb,Cat,Roles,dcl):- !, Cat = vpVnp, roles2(Cat,Verb,Roles). category_type((s:dcl\(s:_\np))\np,Verb,Cat,Roles,dcl):- !, Cat = vpVnp, roles2(Cat,Verb,Roles). @@ -207,7 +207,7 @@ /* ------------------------------------------------------------------------- Category Types: pp V np -------------------------------------------------------------------------- */ +--- */ category_type((s:pss\pp)/np,Verb,ppVnp,[Role],pss):- !, roles2(npVppnp,Verb,[_,_,Role]). category_type((s:M\pp)/np,Verb,Cat,[Role],M):- !, Cat = ppVnp, roles2(Cat,Verb,[_,Role]). @@ -215,7 +215,7 @@ /* ------------------------------------------------------------------------- Category Types: np V np np (ditransitive verbs) -------------------------------------------------------------------------- */ +--- */ category_type(((s:q/np)/np)/np,Verb,Cat,[R2,R1|Roles],q):- !, Cat = npVnpnp, roles2(Cat,Verb,[R1,R2|Roles]). category_type(((s:M\np)/np)/np,Verb,Cat,Roles,M):- !, Cat = npVnpnp, roles2(Cat,Verb,Roles). @@ -223,7 +223,7 @@ /* ------------------------------------------------------------------------- Category Types: np V np pp -------------------------------------------------------------------------- */ +--- */ category_type(((s:adj\np)/pp)/np,_,npVnppp,[],adj):- !. category_type(((s:q/np)/pp)/np,Verb,Cat,[Role2,Role1],q):- !, Cat = npVnppp, roles2(Cat,Verb,[Role1,Role2|_]). @@ -232,7 +232,7 @@ /* ------------------------------------------------------------------------- Category Types: np V pp np -------------------------------------------------------------------------- */ +--- */ category_type(((s:adj\np)/np)/pp,_,npVppnp,[],adj):- !. category_type(((s:adj\np)\np)/pp,_,npVppnp,[],adj):- !. @@ -242,7 +242,7 @@ /* ------------------------------------------------------------------------- Category Types: np V pp pp -------------------------------------------------------------------------- */ +--- */ category_type(((s:adj\np)/pp)/pp,_,npVpppp,[],adj):- !. category_type(((s:M\np)/pp)/pp,Verb,Cat,[Role],M):- !, Cat = npVpppp, roles2(Cat,Verb,[Role|_]). @@ -250,52 +250,52 @@ /* ------------------------------------------------------------------------- Category Types: pp V np np -------------------------------------------------------------------------- */ +--- */ category_type(((s:M\pp)/np)/np,Verb,Cat,[Role1,Role2],M):- !, Cat = ppVnpnp, roles2(Cat,Verb,[_,Role1,Role2]). category_type(((s:M/pp)/np)/np,Verb,Cat,[Role1,Role2],M):- !, Cat = ppVnpnp, roles2(Cat,Verb,[_,Role1,Role2]). /* ------------------------------------------------------------------------- Category Types: pp V np pp -------------------------------------------------------------------------- */ +--- */ category_type(((s:M\pp)/pp)/np,Verb,Cat,[Role],M):- !, Cat = ppVnppp, roles2(Cat,Verb,[_,Role,_]). category_type(((s:M/pp)/pp)/np,Verb,Cat,[Role],M):- !, Cat = ppVnppp, roles2(Cat,Verb,[_,Role,_]). /* ------------------------------------------------------------------------- Category Types: s np V np -------------------------------------------------------------------------- */ +--- */ category_type(((s:M\s:_)\np)/np,Verb,Cat,Roles,M):- !, Cat = snpVnp, roles2(Cat,Verb,Roles). /* ------------------------------------------------------------------------- Category Types: np V np q/s -------------------------------------------------------------------------- */ +--- */ category_type(((s:M\np)/s:qem)/np,Verb,Cat,Roles,M):- !, Cat = npVnpq, roles2(Cat,Verb,Roles). category_type(((s:M\np)/s:_NQ)/np,Verb,Cat,Roles,M):- !, Cat = npVnps, roles2(Cat,Verb,Roles). /* ------------------------------------------------------------------------- Category Types: np V vp np -------------------------------------------------------------------------- */ +--- */ category_type(((s:M\np)/np)/(s:_\np),Verb,Cat,Roles,M):- !, Cat = npVvpnp, roles2(Cat,Verb,Roles). /* ------------------------------------------------------------------------- Category Types: np V vp pp -------------------------------------------------------------------------- */ +--- */ category_type(((s:M\np)/pp)/(s:adj\np),Verb,Cat,Roles,M):- !, Cat = npVvppp, roles2(Cat,Verb,Roles). /* ------------------------------------------------------------------------- Category Types: np V pp vp -------------------------------------------------------------------------- */ +--- */ category_type(((s:M\np)/(s:adj\np))/pp,Verb,Cat,Roles,M):- !, Cat = npVppvp, roles2(Cat,Verb,Roles). /* ------------------------------------------------------------------------- Category Types: np V np pp pp -------------------------------------------------------------------------- */ +--- */ category_type((((s:M\np)/pp)/pp)/np,Verb,Cat,[Role1,Role2],M):- !, Cat = npVnppppp, roles2(Cat,Verb,[Role1,Role2|_]). category_type((((s:M\np)/pp)/np)/pp,Verb,Cat,[Role1,Role2],M):- !, Cat = npVppnppp, roles2(Cat,Verb,[Role1,Role2|_]). @@ -304,14 +304,14 @@ /* ------------------------------------------------------------------------- Sentence -------------------------------------------------------------------------- */ +--- */ category(s, s:X, X). /* ------------------------------------------------------------------------- Adjectives -------------------------------------------------------------------------- */ +--- */ category(adj, n/n, _). category(adj, n\n, _). @@ -319,7 +319,7 @@ /* ------------------------------------------------------------------------- VP adverbials -------------------------------------------------------------------------- */ +--- */ category(vpadv, (s:X\np)\(s:X\np), _). category(vpadv, (s:X\np)/(s:X\np), _). @@ -327,7 +327,7 @@ /* ------------------------------------------------------------------------- S modifiers -------------------------------------------------------------------------- */ +--- */ category(smod, s:X/s:X, _). category(smod, s:X\s:X, _). @@ -337,7 +337,7 @@ /* ------------------------------------------------------------------------- Complementisers -------------------------------------------------------------------------- */ +--- */ category(comp, s:poss/s:dcl, _). @@ -349,7 +349,7 @@ /* ------------------------------------------------------------------------- Subject or Object Control Verbs -------------------------------------------------------------------------- */ +--- */ %category(socv, ((s:dcl\np)/(s:to\np))/np, [agent,patient], dcl). %category(socv, ((s:ng\np)/(s:to\np))/np, [agent,patient], ng). @@ -384,7 +384,7 @@ /* ------------------------------------------------------------------------- Control Verbs -------------------------------------------------------------------------- */ +--- */ %category(cv, (s:adj\np)/(s:to\np), [agent,theme], _, adj). %category(cv, (s:adj\np)/(s:ng\np), [agent,theme], _, adj). Index: src/prolog/boxer/ccg2drs.pl =================================================================== --- src/prolog/boxer/ccg2drs.pl (revision 2527) +++ src/prolog/boxer/ccg2drs.pl (working copy) @@ -29,7 +29,7 @@ /* ========================================================================= Main Predicate -========================================================================= */ + */ ccg2drs(L,Ders,_):- option('--semantics',der), !, @@ -49,7 +49,7 @@ /* ========================================================================= Build rest of underspecified Semantic Representations -========================================================================= */ + */ ccg2drss([],Tags-[],PDRS,_,xdrs(Tags,Sem),_):- !, semantics(PDRS,Tags,Sem). @@ -69,7 +69,7 @@ /* ========================================================================= Build syntax-semantics derivations -========================================================================= */ + */ ccg2ders([],[],_):- !. @@ -87,7 +87,7 @@ /* ========================================================================= Build syntax-semantics derivation -========================================================================= */ + */ ccg2der(N,der(N,Der),Start,End):- preferred(N,CCG0), @@ -103,7 +103,7 @@ /* ========================================================================= Insert DRS -========================================================================= */ + */ insertDRS(merge(B1,B2),New,merge(B1,B3)):- option('--theory',drt), !, @@ -122,7 +122,7 @@ /* ========================================================================= Build one DRS for derivation N -========================================================================= */ + */ build(N,UDRS,Tags,Start,End,der(N,Der)):- preferred(N,CCG0), @@ -137,7 +137,7 @@ /* ========================================================================= Analysis failed for derivation N -========================================================================= */ + */ noanalysis(N):- preferred(N,_), !, @@ -149,7 +149,7 @@ /* ========================================================================= Produce Semantic Representation -========================================================================= */ + */ semantics(X,_,Y):- option('--instantiate',true), option('--semantics',pdrs), !, @@ -182,7 +182,7 @@ /* ------------------------------------------------------------------------- Forward Application -------------------------------------------------------------------------- */ +--- */ interpret(fa(Cat,_,Att,W,F1,A1),fa(Cat,Sem,Att,W,D1,D2)):- !, interpret(F1,D1), topsem(D1,F2), @@ -192,7 +192,7 @@ /* ------------------------------------------------------------------------- Backward Application -------------------------------------------------------------------------- */ +--- */ interpret(ba(Cat,_,Att,W,A1,F1),ba(Cat,Sem,Att,W,D1,D2)):- !, interpret(A1,D1), topsem(D1,A2), @@ -202,7 +202,7 @@ /* ------------------------------------------------------------------------- Forward Composition -------------------------------------------------------------------------- */ +--- */ interpret(fc(Cat,_,Att,W,F1,A1),fc(Cat,Sem,Att,W,D1,D2)):- !, interpret(F1,D1), topsem(D1,F2), @@ -212,7 +212,7 @@ /* ------------------------------------------------------------------------- Backward Composition -------------------------------------------------------------------------- */ +--- */ interpret(bc(Cat,_,Att,W,A1,F1),bc(Cat,Sem,Att,W,D1,D2)):- !, interpret(A1,D1), topsem(D1,A2), @@ -222,7 +222,7 @@ /* ------------------------------------------------------------------------- Forward Cross Composition -------------------------------------------------------------------------- */ +--- */ interpret(fxc(Cat,_,Att,W,F1,A1),fxc(Cat,Sem,Att,W,D1,D2)):- !, interpret(F1,D1), topsem(D1,F2), @@ -232,7 +232,7 @@ /* ------------------------------------------------------------------------- Backward Cross Composition -------------------------------------------------------------------------- */ +--- */ interpret(bxc(Cat,_,Att,W,A1,F1),bxc(Cat,Sem,Att,W,D1,D2)):- !, interpret(A1,D1), topsem(D1,A2), @@ -242,7 +242,7 @@ /* ------------------------------------------------------------------------- Forward Substitution -------------------------------------------------------------------------- */ +--- */ interpret(fs(Cat,_,Att,W,F1,A1),fs(Cat,Sem,Att,W,D1,D2)):- !, interpret(F1,D1), topsem(D1,F2), @@ -252,7 +252,7 @@ /* ------------------------------------------------------------------------- Backward Substitution -------------------------------------------------------------------------- */ +--- */ interpret(bs(Cat,_,Att,W,A1,F1),bs(Cat,Sem,Att,W,D1,D2)):- !, interpret(A1,D1), topsem(D1,A2), @@ -262,7 +262,7 @@ /* ------------------------------------------------------------------------- Forward Cross Substitution -------------------------------------------------------------------------- */ +--- */ interpret(fxs(Cat,_,Att,W,F1,A1),fxs(Cat,Sem,Att,W,D1,D2)):- !, interpret(F1,D1), topsem(D1,F2), @@ -272,7 +272,7 @@ /* ------------------------------------------------------------------------- Backward Cross Substitution -------------------------------------------------------------------------- */ +--- */ interpret(bxs(Cat,_,Att,W,A1,F1),bxs(Cat,Sem,Att,W,D1,D2)):- !, interpret(A1,D1), topsem(D1,A2), @@ -282,7 +282,7 @@ /* ------------------------------------------------------------------------- Generalised Forward Composition -------------------------------------------------------------------------- */ +--- */ interpret(gfc(Cat,N,_,Att,W,F1,A1),gfc(Cat,Sem,Att,W,D1,D2)):- !, interpret(F1,D1), topsem(D1,F2), @@ -299,7 +299,7 @@ /* ------------------------------------------------------------------------- Generalised Backward Composition -------------------------------------------------------------------------- */ +--- */ interpret(gbc(Cat,N,_,Att,W,A1,F1),gbc(Cat,Sem,Att,W,D1,D2)):- !, interpret(A1,D1), topsem(D1,A2), @@ -316,7 +316,7 @@ /* ------------------------------------------------------------------------- Generalised Forward Cross Composition -------------------------------------------------------------------------- */ +--- */ interpret(gfxc(Cat,N,_,Att,W,F1,A1),gfxc(Cat,Sem,Att,W,D1,D2)):- !, interpret(F1,D1), topsem(D1,F2), @@ -333,7 +333,7 @@ /* ------------------------------------------------------------------------- Generalised Backward Cross Composition -------------------------------------------------------------------------- */ +--- */ interpret(gbxc(Cat,N,_,Att,W,A1,F1),gbxc(Cat,Sem,Att,W,D1,D2)):- !, interpret(A1,D1), topsem(D1,A2), @@ -349,7 +349,7 @@ /* ------------------------------------------------------------------------- Token -------------------------------------------------------------------------- */ +--- */ %interp(t(Cat,_Word,_,Att,I),Sem,nil):- % \+ option('--semantics',der), @@ -366,7 +366,7 @@ /* ------------------------------------------------------------------------- Type Changing Rules -------------------------------------------------------------------------- */ +--- */ interpret(tc(NewCat,OldCat,_,Att,W,A1),tc(NewCat,OldCat,A3,Att,W,D)):- !, interpret(A1,D), topsem(D,A2), @@ -375,7 +375,7 @@ /* ------------------------------------------------------------------------- Type Raising -------------------------------------------------------------------------- */ +--- */ interpret(ftr(NewCat,OldCat,_,Att,W,A1),ftr(NewCat,OldCat,Sem,Att,W,D)):- !, interpret(A1,D), topsem(D,A2), @@ -388,7 +388,7 @@ /* ------------------------------------------------------------------------- Coordination (a la Steedman) -------------------------------------------------------------------------- */ +--- */ interpret(coord(Cat,_,Att,W,L1,C1,R1),coord(Cat,Sem,Att,W,D1,D2,D3)):- !, argCard(Cat,N), @@ -401,7 +401,7 @@ /* ------------------------------------------------------------------------- Apposition (a la Hockenmaier) -------------------------------------------------------------------------- */ +--- */ interpret(conj(Cat,np,_,Att,W,C1,R1),conj(Cat,np,Sem,Att,W,D1,D2)):- topcat(C1,conj:app), @@ -413,7 +413,7 @@ /* ------------------------------------------------------------------------- Dedicated coordination -------------------------------------------------------------------------- */ +--- */ interpret(conj(Cat,CCat,_,Att,W,C1,R1),conj(Cat,CCat,Sem,Att,W,D1,D2)):- topcat(C1,conj:CCat), @@ -425,7 +425,7 @@ /* ------------------------------------------------------------------------- Coordination (a la Hockenmaier) -------------------------------------------------------------------------- */ +--- */ interpret(conj(Cat,CCat,_,Att,W,C1,R1),conj(Cat,CCat,Sem,Att,W,D1,D2)):- !, argCard(CCat,N), @@ -437,7 +437,7 @@ /* ------------------------------------------------------------------------- Warning Messages -------------------------------------------------------------------------- */ +--- */ interpret(Input,_,_):- Input = t(Cat,Word,_,Att,Index), @@ -451,7 +451,7 @@ /* ========================================================================= Semantics for Generalised Rules -========================================================================= */ + */ gen(1,F,A,lam(X1,app(F,app(A,X1)))). gen(2,F,A,lam(X1,lam(X2,app(F,app(app(A,X1),X2))))). @@ -461,7 +461,7 @@ /*============================================================= Base Categories -=============================================================*/ +============================================================ */ base(Cat,Cat,[],1):- !. @@ -483,4 +483,4 @@ semlex(Cat,_Word,Lemma,Index,Att1-Att2,Sem):- downcase_atom(Lemma,Sym), semlex(Cat,Sym,Index,Att1-Att2,Sem). -========================================================================= */ + */ Index: src/prolog/boxer/closure.pl =================================================================== --- src/prolog/boxer/closure.pl (revision 2527) +++ src/prolog/boxer/closure.pl (working copy) @@ -9,7 +9,7 @@ /* ------------------------------------------------------------------------- Closure -------------------------------------------------------------------------- */ +--- */ closure(Cat,Sem,Closed):- member(Cat,[t:_, t]), !, Index: src/prolog/boxer/coordination.pl =================================================================== --- src/prolog/boxer/coordination.pl (revision 2527) +++ src/prolog/boxer/coordination.pl (working copy) @@ -4,7 +4,7 @@ /* ========================================================================= Coordination Macros -========================================================================= */ + */ coordMacro(N,lam(C,lam(X2,lam(X1,Body)))):- addLambdas(N,[],C,X2,X1,Body). @@ -12,7 +12,7 @@ /* ========================================================================= Adding right amount of lambdas -========================================================================= */ + */ addLambdas(0,Vars,C,X,Y,lam(A,app(app(C,X1),Y1))):- !, addApplications([A|Vars],X,Y,X1,Y1). @@ -23,7 +23,7 @@ /* ========================================================================= Adding right amount of applications -========================================================================= */ + */ addApplications([A],X,Y,app(X,A),app(Y,A)):- !. @@ -33,7 +33,7 @@ /* ========================================================================= Argument Cardinality -========================================================================= */ + */ argCard(_:_,C):- !, C = 0. argCard(X/_,C):- !, argCard(X,N), C is N + 1. Index: src/prolog/boxer/drs2fdrs.pl =================================================================== --- src/prolog/boxer/drs2fdrs.pl (revision 2527) +++ src/prolog/boxer/drs2fdrs.pl (working copy) @@ -9,14 +9,14 @@ /*======================================================================== Dynamic Predicates -========================================================================*/ +*/ :- dynamic refcounter/2. /*======================================================================== Init Counters -========================================================================*/ +*/ init:- retractall(refcounter(_,_)), @@ -34,7 +34,7 @@ /*======================================================================== Main Predicates -========================================================================*/ +*/ instDrs(B):- init, @@ -50,7 +50,7 @@ /*======================================================================== Variable -========================================================================*/ +*/ avar(Var):- var(Var), !. avar(Var):- atom(Var), !. @@ -59,7 +59,7 @@ /*======================================================================== Referent -========================================================================*/ +*/ ref(Ref,Code):- var(Ref), !, @@ -72,7 +72,7 @@ /*======================================================================== Get Index -========================================================================*/ +*/ getIndex(Sort,X):- refcounter(Sort,X), !, @@ -87,7 +87,7 @@ /*======================================================================== Sort Referent: time (116), event (101), proposition (112), entity (120) -========================================================================*/ +*/ sortref(X,Conds,116):- member(_:_:pred(Y,now,a,1),Conds), X==Y, !. sortref(X,Conds,116):- member(_:_:rel(_,Y,temp_overlap,1),Conds), X==Y, !. @@ -109,7 +109,7 @@ /*======================================================================== Instantiating DRSs -========================================================================*/ +*/ instantDrs(Var):- var(Var), !, ref(Var,102). @@ -168,7 +168,7 @@ /*======================================================================== Instantiating DRS-Conditions -========================================================================*/ +*/ instantConds([]). @@ -184,7 +184,7 @@ /*======================================================================== Instantiating DRS-Condition -========================================================================*/ +*/ instantCond(imp(A1,A2)):- !, instantDrs(A1), instantDrs(A2). @@ -205,7 +205,7 @@ /*======================================================================== Eliminate Equality from DRS -========================================================================*/ +*/ eqDrs(xdrs(Tags,DRS1),xdrs(Tags,DRS2)):- option('--elimeq',true), !, @@ -220,7 +220,7 @@ /*======================================================================== Eliminate Equality -========================================================================*/ +*/ elimEqDrs(Var,Var):- avar(Var), !. @@ -258,7 +258,7 @@ /*======================================================================== Instantiating DRS-Conditions -========================================================================*/ +*/ elimEqConds([],[],D,D). Index: src/prolog/boxer/evaluation.pl =================================================================== --- src/prolog/boxer/evaluation.pl (revision 2527) +++ src/prolog/boxer/evaluation.pl (working copy) @@ -7,14 +7,15 @@ /*======================================================================== Declare Dynamic Predicates -========================================================================*/ +*/ +:- thread_local attempted/1, completed/1. :- dynamic attempted/1, completed/1. /*======================================================================== Initialise -========================================================================*/ +*/ initEval:- retractall(attempted(_)), @@ -25,7 +26,7 @@ /*======================================================================== Increase Completed -========================================================================*/ +*/ incCompleted:- retract(completed(Co1)), @@ -35,7 +36,7 @@ /*======================================================================== Increase Attempted -========================================================================*/ +*/ incAttempted:- retract(attempted(Co1)), @@ -45,15 +46,16 @@ /*======================================================================== Report -========================================================================*/ +*/ reportEval:- attempted(At), At > 0, !, completed(Co), Percentage is (100*Co/At), - format(user_error, + 'format'(user_error, 'Attempted: ~p. Completed: ~p (~2f%).~n', - [At,Co,Percentage]). + [At,Co,Percentage]),!, + ignore((option('--toploop',do),prolog)). reportEval. Index: src/prolog/boxer/freeVarCheck.pl =================================================================== --- src/prolog/boxer/freeVarCheck.pl (revision 2527) +++ src/prolog/boxer/freeVarCheck.pl (working copy) @@ -5,7 +5,7 @@ /* ======================================================================== Bound Variable Check (main predicate) -======================================================================== */ +*/ boundVarCheckContext(Context,ADRS):- \+ \+ ( numbervars(Context,0,_), @@ -14,7 +14,7 @@ /* ======================================================================== Bound Variable Check (traversing lists of DRSs, last one most global) -======================================================================== */ +*/ boundVarDrs([K1:drs(D1,_),K2:B2|L],D2,S,ADRS):- !, append(D1,D2,D3), @@ -35,7 +35,7 @@ /* ======================================================================== Adding free pointers to subordination constraints -======================================================================== */ +*/ freePointers([],_,S,S):- !. freePointers([X:_:_|L],K,S1,S2):- member(sub(X,_),S1), !, freePointers(L,K,S1,S2). @@ -46,7 +46,7 @@ /* ======================================================================== A variable is bound if it is not free -======================================================================== */ +*/ bound(Dom,Sub,ADRS):- \+ free(Dom,Sub,ADRS). @@ -54,7 +54,7 @@ /* ======================================================================== A variable is free if there is a condition with a variable that is not in the domain of a super-ordinated DRS -======================================================================== */ +*/ free(Dom,Sub,_:drs(_,Conds)):- member(L2:_:Cond,Conds), @@ -64,7 +64,7 @@ /* ======================================================================== Subordination -======================================================================== */ +*/ subordinates(L1,L2,_):- L1=L2. subordinates(L1,L2,S):- member(sub(L1,L2),S). @@ -73,7 +73,7 @@ /* ======================================================================== Basic Conditions -======================================================================== */ +*/ drsCondition(X,pred(X,_,_,_)). drsCondition(X,named(X,_,_,_)). @@ -89,7 +89,7 @@ /*======================================================================== Free Variable Check (main predicate) -========================================================================*/ +*/ freeVarCheckDrs(Drs):- freeVarCheckDrs(Drs,[]-_). @@ -97,7 +97,7 @@ /*======================================================================== Free Variable Check (DRSs) -========================================================================*/ +*/ freeVarCheckDrs([],L-L):- !. @@ -137,7 +137,7 @@ /*======================================================================== Free Variable Check (List of conditions) -========================================================================*/ +*/ freeVarCheckConds([],_):- !. @@ -148,7 +148,7 @@ /*======================================================================== Free Variable Check (Conditions) -========================================================================*/ +*/ freeVarCheckCond(not(B),L):- !, freeVarCheckDrs(B,L-_). @@ -203,7 +203,7 @@ /*======================================================================== Check Term -========================================================================*/ +*/ checkTerm(X,L):- var(X), member(Y,L), X==Y, !. checkTerm(X,_):- atomic(X), !. Index: src/prolog/boxer/input.pl =================================================================== --- src/prolog/boxer/input.pl (revision 2527) +++ src/prolog/boxer/input.pl (working copy) @@ -11,7 +11,7 @@ /*======================================================================== Declare Dynamic Predicates -========================================================================*/ +*/ :- multifile ccg/2, id/2, sem/5, coref/2. :- discontiguous ccg/2, id/2, sem/5, coref/2. @@ -23,6 +23,10 @@ ------------------------------------------------------------------------*/ openInput:- + option('--loaded',do),!, + checkInputType. + +openInput:- option('--input',user_input), option('--stdin',do), !, prompt(_,''), @@ -38,7 +42,7 @@ /*======================================================================== Check Input File -========================================================================*/ +*/ checkInput(File):- \+ atom(File), !, @@ -66,7 +70,7 @@ /*======================================================================== Check Input Type -========================================================================*/ +*/ checkInputType:- input:ccg(_,_), !, @@ -112,8 +116,11 @@ ------------------------------------------------------------------------*/ preferred(N,CCG):- - preferred([t:_,s:_,np],N,CCG). + preferred([t:_,s:_,np],N,CCG),!. +preferred(C,CCG):- + throw(missing(preferred(C,CCG))). + preferred([],N,CCG):- ccg(N,CCG), !. @@ -123,3 +130,5 @@ preferred([_|L],N,CCG):- preferred(L,N,CCG). + + Index: src/prolog/boxer/knowledge/dates.pl =================================================================== --- src/prolog/boxer/knowledge/dates.pl (revision 2527) +++ src/prolog/boxer/knowledge/dates.pl (working copy) @@ -9,7 +9,7 @@ /*======================================================================== Months -========================================================================*/ +*/ month('january','01'). month('jan','01'). @@ -49,7 +49,7 @@ /*======================================================================== Format Years BD and AD -========================================================================*/ +*/ yearBC(bc). yearBC(bce). @@ -64,7 +64,7 @@ /*======================================================================== Format Years -========================================================================*/ +*/ year(Atom,Year):- atom_codes(Atom,[C1,C2,C3,C4]), @@ -83,7 +83,7 @@ /*======================================================================== Last year -========================================================================*/ +*/ last_year(Year,Last):- atom_codes(Year,[Y1,Y2,Y3,Y4]), @@ -101,7 +101,7 @@ /*======================================================================== Centuries -========================================================================*/ +*/ century('1st', '00XX'). century('first', '00XX'). @@ -138,7 +138,7 @@ /*======================================================================== Decades -========================================================================*/ +*/ decade(Date,Decade):- atom(Date), @@ -158,7 +158,7 @@ /*======================================================================== Days -========================================================================*/ +*/ dofm(Day,DID):- number(Day), !, day(Day,DID). dofm(Day,DID):- atom(Day), day(_,Day), !, DID = Day. Index: src/prolog/boxer/knowledge/ontology.pl =================================================================== --- src/prolog/boxer/knowledge/ontology.pl (revision 2527) +++ src/prolog/boxer/knowledge/ontology.pl (working copy) @@ -3,7 +3,7 @@ /* ------------------------------------------------------------------------- IS-A links -------------------------------------------------------------------------- */ +--- */ isa(event,thing). isa(event,neuter). @@ -34,7 +34,7 @@ /* ------------------------------------------------------------------------- IS-NOT-A links -------------------------------------------------------------------------- */ +--- */ isnota(male,female). isnota(neuter,female). @@ -70,6 +70,6 @@ / \ man(m) woman(f) ---------------------------------------------------------------------------- */ +----- */ Index: src/prolog/boxer/lex/determiners.pl =================================================================== --- src/prolog/boxer/lex/determiners.pl (revision 2527) +++ src/prolog/boxer/lex/determiners.pl (working copy) @@ -8,12 +8,12 @@ This file contains the lexical semantic specifications for determiners, i.e. tokens with CCG category NP/N. -========================================================================= */ + */ /* ------------------------------------------------------------------------- Indefinites -------------------------------------------------------------------------- */ +--- */ semlex_det(Lemma,Index,Att-Att,Sem):- member(Lemma,[a,an,one,some,few,several]), !, @@ -24,7 +24,7 @@ /* ------------------------------------------------------------------------- Universally quantifying -------------------------------------------------------------------------- */ +--- */ semlex_det(Lemma,Index,Att-Att,Sem):- member(Lemma,[all,each,either,any,every,whichever,whatever]), !, @@ -35,7 +35,7 @@ /* ------------------------------------------------------------------------- Generalized Quantifiers -------------------------------------------------------------------------- */ +--- */ semlex_det(Lemma,Index,Att-Att,Sem):- member(Lemma,[most,two,three]), !, @@ -46,7 +46,7 @@ /* ------------------------------------------------------------------------- Negation -------------------------------------------------------------------------- */ +--- */ semlex_det(no,Index,Att-Att,Sem):- !, Sem = lam(N,lam(P,B1:drs([],[B1:Index:not(merge(B2:drs([B2:Index:X],[]), @@ -56,7 +56,7 @@ /* ------------------------------------------------------------------------- Definites/Demonstratives -------------------------------------------------------------------------- */ +--- */ semlex_det(Lemma,Index,Att-Att,Sem):- member(Lemma,[the,that,this,those,these,both]), !, @@ -68,7 +68,7 @@ /* ------------------------------------------------------------------------- WH -------------------------------------------------------------------------- */ +--- */ semlex_det(Lemma,Index,Att-Att,Sem):- member(Lemma,[which,what]), !, @@ -80,7 +80,7 @@ /* ------------------------------------------------------------------------- "another" -------------------------------------------------------------------------- */ +--- */ semlex_det(another,Index,Att-Att,Sem):- !, goldAntecedent(Index,Att), @@ -94,7 +94,7 @@ /* ------------------------------------------------------------------------- "neither" (see Heim & Kratzer 1998 p. 154) -------------------------------------------------------------------------- */ +--- */ semlex_det(neither,Index,Att-Att,Sem):- !, Sem = lam(N,lam(P,B1:drs([],[B1:[]:imp(merge(B2:drs([B2:Index:X],[]),app(N,X)), @@ -103,7 +103,7 @@ /* ------------------------------------------------------------------------- Possessives -------------------------------------------------------------------------- */ +--- */ semlex_det(my,Index,Att1-Att2,Sem):- !, goldAntecedent(Index,Att1), @@ -165,7 +165,7 @@ /* ------------------------------------------------------------------------- Many/Much [as determiner] -------------------------------------------------------------------------- */ +--- */ semlex_det(many,Index,Att-Att,Sem):- !, Sem = lam(P,lam(Q,merge(B:drs([B:[]:X],[B:Index:pred(X,quantity,n,1)]), @@ -178,7 +178,7 @@ /* ------------------------------------------------------------------------- Wrongly classified determiners -------------------------------------------------------------------------- */ +--- */ semlex_det(_Lemma,Index,Att-Att,Sem):- Sem = lam(N,lam(P,merge(merge(B:drs([B:Index:X],[]),app(N,X)),app(P,X)))). Index: src/prolog/boxer/lex/tense.pl =================================================================== --- src/prolog/boxer/lex/tense.pl (revision 2527) +++ src/prolog/boxer/lex/tense.pl (working copy) @@ -11,7 +11,7 @@ /* ========================================================================= Tense -========================================================================= */ + */ tense(Mood,Index,Att-Att,Sem):- option('--tense',true), @@ -25,7 +25,7 @@ /* ------------------------------------------------------------------------- Past Tense -------------------------------------------------------------------------- */ +--- */ tense('VBD',Index,Sem):- Sem = lam(S,lam(F,app(S,lam(E,merge(B2:drs([B1:[]:N,B2:Index:T], @@ -37,7 +37,7 @@ /* ------------------------------------------------------------------------- Present Tense -------------------------------------------------------------------------- */ +--- */ tense(Cat,Index,Sem):- member(Cat,['VBP','VBZ']), !, @@ -50,7 +50,7 @@ /* ------------------------------------------------------------------------- Future Tense -------------------------------------------------------------------------- */ +--- */ tense('MD',Index,Sem):- Sem = lam(S,lam(F,app(S,lam(E,merge(B2:drs([B1:[]:N,B2:Index:T], @@ -62,11 +62,11 @@ /* ========================================================================= Aspect -========================================================================= */ + */ /* ------------------------------------------------------------------------- Present Perfect -------------------------------------------------------------------------- */ +--- */ aspect(pt,_,Index,Att-Att,Sem):- option('--tense',true), @@ -83,7 +83,7 @@ /* ------------------------------------------------------------------------- Past Perfect -------------------------------------------------------------------------- */ +--- */ aspect(pt,_,Index,Att-Att,Sem):- option('--tense',true), @@ -99,7 +99,7 @@ /* ------------------------------------------------------------------------- Perfect Passive -------------------------------------------------------------------------- */ +--- */ aspect(pss,pt,Index,Att-Att,Sem):- option('--tense',true), !, @@ -112,7 +112,7 @@ /* ------------------------------------------------------------------------- Perfect Progressive -------------------------------------------------------------------------- */ +--- */ aspect(ng,pt,Index,Att-Att,Sem):- option('--tense',true), !, @@ -125,7 +125,7 @@ /* ------------------------------------------------------------------------- Present Progressive -------------------------------------------------------------------------- */ +--- */ aspect(ng,_,Index,Att-Att,Sem):- option('--tense',true), @@ -142,7 +142,7 @@ /* ------------------------------------------------------------------------- Past Progressive -------------------------------------------------------------------------- */ +--- */ aspect(ng,_,Index,Att-Att,Sem):- att(Att,pos,'VBD'), @@ -158,7 +158,7 @@ /* ------------------------------------------------------------------------- Other cases -------------------------------------------------------------------------- */ +--- */ aspect(_,Mood,Index,Att,Sem):- tense(Mood,Index,Att,Sem). Index: src/prolog/boxer/lex/verbnet.pl =================================================================== --- src/prolog/boxer/lex/verbnet.pl (revision 2527) +++ src/prolog/boxer/lex/verbnet.pl (working copy) @@ -15061,7 +15061,7 @@ verbnet(establish, ((s:_\np)/pp)/np, ['Theme','Agent'], [55,'.',5,-,1]). verbnet(fake, ((s:_\np)/pp)/np, ['Theme','Agent'], [55,'.',5,-,1]). verbnet(feign, ((s:_\np)/pp)/np, ['Theme','Agent'], [55,'.',5,-,1]). -verbnet(format, ((s:_\np)/pp)/np, ['Theme','Agent'], [55,'.',5,-,1]). +verbnet('format', ((s:_\np)/pp)/np, ['Theme','Agent'], [55,'.',5,-,1]). verbnet(found, ((s:_\np)/pp)/np, ['Theme','Agent'], [55,'.',5,-,1]). verbnet(plant, ((s:_\np)/pp)/np, ['Theme','Agent'], [55,'.',5,-,1]). verbnet(implement, ((s:_\np)/pp)/np, ['Theme','Agent'], [55,'.',5,-,1]). @@ -15094,7 +15094,7 @@ verbnet(establish, (s:_\np)/np, ['Theme','Agent'], [55,'.',5]). verbnet(fake, (s:_\np)/np, ['Theme','Agent'], [55,'.',5]). verbnet(feign, (s:_\np)/np, ['Theme','Agent'], [55,'.',5]). -verbnet(format, (s:_\np)/np, ['Theme','Agent'], [55,'.',5]). +verbnet('format', (s:_\np)/np, ['Theme','Agent'], [55,'.',5]). verbnet(found, (s:_\np)/np, ['Theme','Agent'], [55,'.',5]). verbnet(plant, (s:_\np)/np, ['Theme','Agent'], [55,'.',5]). verbnet(implement, (s:_\np)/np, ['Theme','Agent'], [55,'.',5]). Index: src/prolog/boxer/lex/verbs.pl =================================================================== --- src/prolog/boxer/lex/verbs.pl (revision 2527) +++ src/prolog/boxer/lex/verbs.pl (working copy) @@ -16,11 +16,11 @@ /* ========================================================================= I n t r a n s i t i v e V e r b s -========================================================================= */ + */ /* ------------------------------------------------------------------------- VP Ellipsis (... so does NP ...) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,do,Index,Att1-Att3,Sem):- option('--vpe',true), @@ -35,7 +35,7 @@ /* ------------------------------------------------------------------------- Intransitive (VP Ellipsis) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att1-Att3,Sem):- option('--vpe',true), @@ -81,7 +81,7 @@ /* ------------------------------------------------------------------------- more or less (... than X) -------------------------------------------------------------------------- */ +--- */ semlex_verb(s:adj\np,Sym,Index,Att-Att,Sem):- member(Sym,[more,less]), !, @@ -104,12 +104,12 @@ Sem = lam(NP,lam(P,merge(B1:drs([B1:[]:E], [B1:[]:nec(app(NP,lam(X,B2:drs([],[B2:Index:role(E,X,theme,1)]))))]), app(P,E)))). -------------------------------------------------------------------------- */ +--- */ /* ------------------------------------------------------------------------- Intransitive (standard case) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att1-Att3,Sem):- member(Cat,[s:Mood\np,s:Mood/np]), @@ -125,7 +125,7 @@ /* ------------------------------------------------------------------------- Passive Phrasal Verbs ("An action has been called for by an official") -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att-Att,Sem):- Cat = (s:pss\np)/(pp/np), !, @@ -139,11 +139,11 @@ /* ========================================================================= T r a n s i t i v e V e r b s -========================================================================= */ + */ /* ------------------------------------------------------------------------- Copula -------------------------------------------------------------------------- */ +--- */ % expriment, giving negation wide scope in 'there is no' semlex_verb(Cat,be,Index,Att1-Att2,Sem):- @@ -194,7 +194,7 @@ /* ------------------------------------------------------------------------- Adjectival (np V pp) -------------------------------------------------------------------------- */ +--- */ semlex_verb((s:adj\np)/pp,Sym,Index,Att-Att,Sem):- !, att(Att,sense,Sense), @@ -221,7 +221,7 @@ app(P,E)), tense(Mood,[],Att1-Att2,TDRS), Sem = lam(NP2,lam(NP1,app(TDRS,lam(P,app(NP1,lam(X,DRS)))))). -------------------------------------------------------------------------- */ +--- */ /* ------------------------------------------------------------------------- @@ -230,7 +230,7 @@ Interesting idea: adding presupposition: ADRS = alfa(def,drs([],[[]:not(drs([],[[]:eq(X,Y)]))]),DRS) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att1-Att3,Sem):- member(Cat, [(s:Mood\np)/np,(s:Mood/np)/np,(s:Mood\np)\np]), @@ -258,12 +258,12 @@ [B:Index:pred(E,be,v,5), B:[]:role(E,X,agent,1)]), app(F,E)))))))). -------------------------------------------------------------------------- */ +--- */ /* ------------------------------------------------------------------------- Transitive (np V pp) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,be,Index,Att1-Att2,Sem):- option('--copula',true), @@ -289,7 +289,7 @@ /* ------------------------------------------------------------------------- Transitive (pp V np) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att1-Att3,Sem):- Cat = (s:Mood\pp)/np, @@ -306,11 +306,11 @@ /* ========================================================================= D i t r a n s i t i v e V e r b s -========================================================================= */ + */ /* ------------------------------------------------------------------------- Adjectival (np V np pp) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att-Att,Sem):- category_type(Cat,Sym,npVnppp,[],_Mood), !, @@ -324,7 +324,7 @@ /* ------------------------------------------------------------------------- Adjectival (np V pp np) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att-Att,Sem):- category_type(Cat,Sym,npVppnp,[],_Mood), !, @@ -338,7 +338,7 @@ /* ------------------------------------------------------------------------- Adjectival (np V pp pp) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att-Att,Sem):- category_type(Cat,Sym,npVpppp,[],_Mood), !, @@ -352,7 +352,7 @@ /* ------------------------------------------------------------------------- Ditransitive (np V np np) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att1-Att3,Sem):- Cat = ((s:Mood\np)/np)/np, !, @@ -373,7 +373,7 @@ /* ------------------------------------------------------------------------- Ditransitive (np V np pp) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att1-Att3,Sem):- % category_type(Cat,Sym,npVnppp,[Role1,Role2],Mood), !, @@ -394,7 +394,7 @@ /* ------------------------------------------------------------------------- Ditransitive (np V pp np) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att1-Att3,Sem):- % category_type(Cat,Sym,npVppnp,[Role1,Role2],Mood), !, @@ -415,7 +415,7 @@ /* ------------------------------------------------------------------------- Ditransitive (np V pp pp) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att1-Att3,Sem):- % category_type(Cat,Sym,npVpppp,[Role],Mood), !, @@ -434,7 +434,7 @@ /* ------------------------------------------------------------------------- Ditransitive (pp V np np) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att1-Att2,Sem):- category_type(Cat,Sym,ppVnpnp,[Role1,Role2],Mood), !, @@ -453,7 +453,7 @@ /* ------------------------------------------------------------------------- Ditransitive (pp V np pp) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att1-Att2,Sem):- category_type(Cat,Sym,ppVnppp,[Role],Mood), !, @@ -472,11 +472,11 @@ /* ========================================================================= T r i t r a n s i t i v e V e r b s -========================================================================= */ + */ /* ------------------------------------------------------------------------- Tritransitive (np V np pp pp) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att1-Att3,Sem):- % category_type(Cat,Sym,npVnppppp,[Role1,Role2],Mood), !, @@ -517,11 +517,11 @@ /* ========================================================================= P r o p o s i t i o n a l c o m p l e m e n t v e r b s -========================================================================= */ + */ /* ------------------------------------------------------------------------- Intransitive (np V s) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att1-Att3,Sem):- Cat = (s:Mood\np)/s:Emb, @@ -552,7 +552,7 @@ /* ------------------------------------------------------------------------- Intransitive (np V pp s) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att1-Att2,Sem):- category_type(Cat,Sym,npVpps,[Role1,Role2],Mood), !, @@ -569,7 +569,7 @@ /* ------------------------------------------------------------------------- Intransitive (s V np) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att1-Att2,Sem):- att(Att1,pos,PoS), @@ -588,7 +588,7 @@ /* ------------------------------------------------------------------------- Copula (vp V np) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,be,Index,Att1-Att2,Sem):- option('--copula',true), @@ -603,7 +603,7 @@ /* ------------------------------------------------------------------------- Intransitive (vp V np) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att1-Att2,Sem):- category_type(Cat,Sym,vpVnp,[Role1,Role2],Mood), !, @@ -620,7 +620,7 @@ /* ------------------------------------------------------------------------- Transitive (s np V np) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att1-Att2,Sem):- category_type(Cat,Sym,snpVnp,[Role1,Role2,Role3],Mood), !, @@ -639,7 +639,7 @@ /* ------------------------------------------------------------------------- Transitive (np V np s) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att1-Att2,Sem):- category_type(Cat,Sym,npVnpq,[Role1,Role2,Role3],Mood), !, @@ -671,7 +671,7 @@ /* ------------------------------------------------------------------------- Transitive (np V vp np) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att1-Att2,Sem):- category_type(Cat,Sym,npVvpnp,[Role1,Role2],Mood), !, @@ -688,7 +688,7 @@ /* ------------------------------------------------------------------------- Transitive (np V vp pp) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att1-Att2,Sem):- category_type(Cat,Sym,npVvppp,[Role],Mood), !, @@ -703,7 +703,7 @@ /* ------------------------------------------------------------------------- Transitive (np V pp vp) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att1-Att2,Sem):- category_type(Cat,Sym,npVppvp,[Role],Mood), !, @@ -719,11 +719,11 @@ /* ========================================================================= A u x i l i a r y , M o d a l , C o n t r o l V e r b s -========================================================================= */ + */ /* ========================================================================= Infinitivals -========================================================================= */ + */ semlex_verb(Cat,Sym,Index,Att-Att,Sem):- option('--semantics',drgno), @@ -747,7 +747,7 @@ /* ------------------------------------------------------------------------- Standard case (NP aux VP) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att1-Att2,Sem):- option('--modal',true), @@ -775,7 +775,7 @@ /* ------------------------------------------------------------------------- Inversion case (aux NP VP) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,_Sym,Index,Att1-Att2,Sem):- Cat = (s:Mood/(s:Aspect\np))/np, @@ -786,7 +786,7 @@ /* ------------------------------------------------------------------------- Control Verbs (intransitive) -------------------------------------------------------------------------- */ +--- */ % e.g. "is about to swim" semlex_verb(Cat,Sym,Index,Att1-Att2,Sem):- @@ -883,7 +883,7 @@ /* ------------------------------------------------------------------------- Subject Control Verbs -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att1-Att3,Sem):- member(Sym,[promise,offer,use]), @@ -917,7 +917,7 @@ /* ------------------------------------------------------------------------- Object Control Verbs (ECM, exceptional case marking) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att1-Att3,Sem):- Cat = ((s:Mood\np)/(s:to\np))/np, \+ Mood = to, @@ -960,7 +960,7 @@ /* ------------------------------------------------------------------------- Object Control Verbs subcatting PP -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att1-Att3,Sem):- Cat = ((s:Mood\np)/(s:to\np))/pp, \+ Mood = to, @@ -976,7 +976,7 @@ /* ------------------------------------------------------------------------- make NP ADJ to VP -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att1-Att2,Sem):- Cat = (((s:Mood\np)/(s:to\np))/(s:adj\np))/np, !, @@ -1014,7 +1014,7 @@ /* ------------------------------------------------------------------------- Funny transitive case (rare -- often in incorrect parses) -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,_Sym,Index,Att1-Att2,Sem):- Cat = ((s:Mood\np)\np)/(s:Aspect\np), !, @@ -1023,7 +1023,7 @@ /* ------------------------------------------------------------------------- Copula "How ADJ be NP PP" -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,_Sym,Index,Att1-Att2,Sem):- Cat = ((s:q/pp)/(s:Aspect\np))/np, !, @@ -1034,11 +1034,11 @@ /* ========================================================================= E x p l e t i v e v e r b s -========================================================================= */ + */ /* ------------------------------------------------------------------------- Cleft "it was NP who VP" -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att1-Att3,Sem):- member(Cat,[((s:Mood\np_exp)/(np\np))/np, @@ -1064,7 +1064,7 @@ /* ------------------------------------------------------------------------- Copula "it is ADJ to-VP" -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,_Sym,Index,Att1-Att2,Sem):- Cat = ((s:Mood\np)/(s:to\np))/(s:adj\np), !, @@ -1080,7 +1080,7 @@ "it is ADJ that S" "it is ADJ whether S" "it is ADJ for S" -------------------------------------------------------------------------- */ +--- */ semlex_verb(Cat,Sym,Index,Att-Att,Sem):- Cat = ((s:adj\np)/s:em)/(s:adj\np), !, @@ -1117,7 +1117,7 @@ semlex_verb(Cat,_,_Index,Att-Att,Sem):- Cat = ((s:dcl\np_exp)/s:em)/pp, !, Sem = lam(PP,lam(S,lam(_,lam(F,app(S,lam(E,merge(app(PP,E),app(F,E)))))))). -------------------------------------------------------------------------- */ +--- */ /* ------------------------------------------------------------------------- @@ -1132,7 +1132,7 @@ B1:[]:prop(K,app(S,CC))]), merge(app(NP,lam(X,B2:drs([],[B2:[]:eq(X,K)]))), app(E,F)))))))). -------------------------------------------------------------------------- */ +--- */ /* ------------------------------------------------------------------------- @@ -1147,7 +1147,7 @@ app(app(VP,lam(P,app(P,X))),CC)), app(NP,lam(Y,B3:drs([],[B3:Index:eq(Y,X)]))))]), app(F,E))))))). -------------------------------------------------------------------------- */ +--- */ /* ------------------------------------------------------------------------- @@ -1172,7 +1172,7 @@ Cat = (s:Mood\np_exp)/(s:Aspect\np), !, aspect(Aspect,Mood,Index,Att1-Att2,TDRS), Sem = lam(VP,lam(NP,lam(E,app(app(TDRS,app(VP,NP)),E)))). -------------------------------------------------------------------------- */ +--- */ /* ------------------------------------------------------------------------- @@ -1190,7 +1190,7 @@ B1:[]:prop(K,app(S,CC))]), merge(app(app(AP,lam(P,app(P,K))),lam(G,B2:drs([],[B2:[]:role(E,G,result,1)]))), app(F,E)))))))))). -------------------------------------------------------------------------- */ +--- */ /* ------------------------------------------------------------------------- Comparative "make/find it COMP to VP" @@ -1208,19 +1208,19 @@ B2:[]:prop(K,DRS)]), merge(app(app(AP,lam(P,app(P,K))),lam(G,B3:drs([],[B3:[]:role(E,G,result,1)]))), app(F,E)))))))))). -------------------------------------------------------------------------- */ +--- */ /* ========================================================================= Closing -========================================================================= */ + */ closing(lam(_,_:drs([],[]))). /* ========================================================================= Modal Verbs -========================================================================= */ + */ aux_modal_verb(V):- aux_verb(V). aux_modal_verb(V):- modal_verb(_,V). Index: src/prolog/boxer/lexicon.pl =================================================================== --- src/prolog/boxer/lexicon.pl (revision 2527) +++ src/prolog/boxer/lexicon.pl (working copy) @@ -26,7 +26,7 @@ n 1 location -------------------------------------------------------------------------- */ +--- */ :- use_module(boxer(slashes)). :- use_module(boxer(string2digit),[string2digit/2,string2score/2]). @@ -48,7 +48,7 @@ /* ========================================================================= Punctuation -========================================================================= */ + */ semlex(t:_\s:_,_,_,Att-Att,Sem):- !, closing(CC), @@ -101,7 +101,7 @@ /* ========================================================================= Coordination (disjunction and negation) -========================================================================= */ + */ semlex(conj:n,Sym,Index,Att-Att,Sem):- Sym = or, @@ -124,7 +124,7 @@ /* ========================================================================= Coordination (conjuction) -========================================================================= */ + */ semlex(conj:n,Sym,Index,Att-Att,Sem):- option('--semantics',drg), !, @@ -221,7 +221,7 @@ /* ========================================================================= Compound Coordination -========================================================================= */ + */ %semlex(conj:F/conj:F,instead,Index,Att-Att,Sem):- !, % instead of % Sem = lam(C,lam(K1,lam(K2,app(app(C,B:drs([],[B:Index:not(K1)])),K2)))). @@ -235,7 +235,7 @@ /* ========================================================================= Quotes -========================================================================= */ + */ semlex(q,_,Index,Att-Att,Sem):- !, Sem = lam(X,B:drs([],[B:Index:pred(X,quotation,n,2)])). @@ -255,11 +255,11 @@ /* ========================================================================= Noun Phrases -========================================================================= */ + */ /* ------------------------------------------------------------------------- Expletive 'there' and other "special" nouns -------------------------------------------------------------------------- */ +--- */ semlex(n,many,Index,Att-Att,Sem):- att(Att,pos,'NN'), !, @@ -281,7 +281,7 @@ /* ------------------------------------------------------------------------- Nouns -------------------------------------------------------------------------- */ +--- */ semlex(n,other,Index,Att-Att,Sem):- % OTHERS \+ option('--semantics',drg), @@ -375,7 +375,7 @@ /* ------------------------------------------------------------------------- Relational nouns -------------------------------------------------------------------------- */ +--- */ semlex(n/pp,Sym,Index,Att-Att,Sem):- att(Att,pos,Pos), @@ -431,14 +431,14 @@ /* ------------------------------------------------------------------------- Determiners -------------------------------------------------------------------------- */ +--- */ semlex(np/n,Token,Index,Att1-Att2,Sem):- !, semlex_det(Token,Index,Att1-Att2,Sem). /* ------------------------------------------------------------------------- Possessives -------------------------------------------------------------------------- */ +--- */ semlex(np/(n/pp),_,Index,Att-Att,Sem):- !, Sem = lam(RN,lam(P,alfa(pro,B1:drs([B1:[]:Y],[B1:[]:pred(Y,male,n,2)]), @@ -449,7 +449,7 @@ /* ------------------------------------------------------------------------- Determiners (as many as X) -------------------------------------------------------------------------- */ +--- */ semlex(((np/n)/pp)/(s:adj\np),_,Index,Att-Att,Sem):- !, closing(CC), @@ -462,7 +462,7 @@ /* ------------------------------------------------------------------------- Many/Much [as NP] -------------------------------------------------------------------------- */ +--- */ semlex(np,many,Index,Att-Att,Sem):- !, Sem = lam(P,merge(B:drs([B:[]:X],[B:Index:pred(X,quantity,n,1)]),app(P,X))). @@ -473,7 +473,7 @@ /* ------------------------------------------------------------------------- There insertion -------------------------------------------------------------------------- */ +--- */ semlex(np,'there',Index,Att-Att,Sem):- att(Att,pos,'EX'), !, @@ -482,7 +482,7 @@ /* ------------------------------------------------------------------------- Pronouns (non-reflexives) -------------------------------------------------------------------------- */ +--- */ semlex( np, Lemma,Index,Att-Att,Sem):- member(Lemma,['I',i,me,mine]), !, @@ -537,7 +537,7 @@ /* ------------------------------------------------------------------------- Reflexive Pronouns -------------------------------------------------------------------------- */ +--- */ semlex( np, Lemma,Index,Att-Att,Sem):- member(Lemma,[myself,yourself,thyself,ourselves]), !, @@ -562,7 +562,7 @@ /* ------------------------------------------------------------------------- Demonstratives and Quantificational Noun Phrases -------------------------------------------------------------------------- */ +--- */ semlex( np, Lemma,Index,Att-Att,Sem):- member(Lemma,['none','neither',nothing]), !, @@ -602,12 +602,12 @@ semlex( np_thr, _Lemma,Index,Att-Att,Sem):- !, Sem = lam(P,merge(B:drs([B:Index:X],[]),app(P,X))). -------------------------------------------------------------------------- */ +--- */ /* ------------------------------------------------------------------------- NP Why -------------------------------------------------------------------------- */ +--- */ semlex( np, Lemma,Index,Att-Att,Sem):- Lemma = 'why', !, @@ -619,7 +619,7 @@ /* ------------------------------------------------------------------------- NP (all others) -------------------------------------------------------------------------- */ +--- */ semlex(np,Sym,Index,Att-Att,Sem):- att(Att,pos,Pos), member(Pos,['NNP','NNPS']), !, @@ -633,7 +633,7 @@ /* ------------------------------------------------------------------------- NP/PP -------------------------------------------------------------------------- */ +--- */ semlex(np/pp, Sym,Index,Att-Att,Sem):- !, att(Att,sense,Sense), @@ -644,7 +644,7 @@ /* ------------------------------------------------------------------------- Question words: whose -------------------------------------------------------------------------- */ +--- */ semlex(Cat,whose,Index,Att-Att,Sem):- member(Cat,[(s:wq/(s:dcl\np))/n, @@ -659,7 +659,7 @@ /* ------------------------------------------------------------------------- Question words: which/what N -------------------------------------------------------------------------- */ +--- */ semlex(Cat,_Sym,Index,Att-Att,Sem):- member(Cat,[(s:wq/(s:dcl\np))/n, @@ -682,7 +682,7 @@ /* ------------------------------------------------------------------------- Question words: how much/many -------------------------------------------------------------------------- */ +--- */ semlex(Cat,_Sym,Index,Att-Att,Sem):- member(Cat,[(s:wq/(s:q/np))/np, @@ -697,7 +697,7 @@ /* ------------------------------------------------------------------------- Question words: how much/many N -------------------------------------------------------------------------- */ +--- */ semlex(Cat,_Sym,Index,Att-Att,Sem):- member(Cat,[((s:wq/(s:q/np))/n)/(np/n), @@ -746,7 +746,7 @@ /* ------------------------------------------------------------------------- Question words: how ADJ -------------------------------------------------------------------------- */ +--- */ semlex(Cat,_Sym,Index,Att-Att,Sem):- member(Cat,[(s:wq/(s:q/(s:adj\np)))/(s:adj\np), @@ -771,7 +771,7 @@ /* ------------------------------------------------------------------------- Question words: basic question words -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- member(Cat,[s:wq/(s:dcl\np), @@ -901,7 +901,7 @@ /* ========================================================================= Relative pronouns, pied-piping ("N under which S", "NP under which S") -========================================================================= */ + */ semlex(((np\np)/s:dcl)\((s:F\s:F)/np),_Sym,_Index,Att-Att,Sem):- !, closing(CC), @@ -921,18 +921,18 @@ /* ========================================================================= Verbs -========================================================================= */ + */ semlex(Cat,Sym,Index,Att,Sem):- semlex_verb(Cat,Sym,Index,Att,Sem), !. /* ========================================================================= Adjectives -========================================================================= */ + */ /* ------------------------------------------------------------------------- Wrongly Classified Adjectives + "own" -------------------------------------------------------------------------- */ +--- */ semlex(n/n,Sym,_Index,Att-Att,Sem):- member(Sym,[one,few]), @@ -953,7 +953,7 @@ /* ------------------------------------------------------------------------- Negation Adjectives -------------------------------------------------------------------------- */ +--- */ %semlex(Cat,Sym,_,Index,Att-Att,Sem):- % category(adj,Cat,_), @@ -972,7 +972,7 @@ /* ------------------------------------------------------------------------- Presuppositional Adjectives -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- \+ option('--semantics',drg), @@ -986,7 +986,7 @@ /* ------------------------------------------------------------------------- Present participles, Gerunds -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att1-Att2,Sem):- member(Cat,[n/n,n\n]), @@ -1000,7 +1000,7 @@ /* ------------------------------------------------------------------------- Past Participles -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att1-Att2,Sem):- member(Cat,[n/n,n\n]), @@ -1014,7 +1014,7 @@ /* ------------------------------------------------------------------------- Noun Noun Compounds -------------------------------------------------------------------------- */ +--- */ semlex(Cat,'%',Index,Att1-Att2,Sem):- att(Att1,pos,'NN'), @@ -1129,7 +1129,7 @@ /* ------------------------------------------------------------------------- Singular Superlatives -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- \+ option('--semantics',drg), @@ -1143,7 +1143,7 @@ /* ------------------------------------------------------------------------- Cardinal Adjectives -------------------------------------------------------------------------- */ +--- */ semlex(n/n,Sym,Index,Att-Att,Sem):- string2digit(Sym,Digit), !, @@ -1170,12 +1170,12 @@ [B:[]:card(Y,Number,eq), B:Index:pred(Y,Suffix,n,Sense), B:[]:rel(X,Y,Relation,0)]),app(P,X)))). -------------------------------------------------------------------------- */ +--- */ /* ------------------------------------------------------------------------- Singular Intersective Adjectives -------------------------------------------------------------------------- */ +--- */ % thematic role analysis % @@ -1207,7 +1207,7 @@ /* ------------------------------------------------------------------------- Adjectives introducing a degree -------------------------------------------------------------------------- */ +--- */ semlex(d/n,Sym,Index,Att-Att,Sem):- !, %% Sem = lam(P,lam(X,lam(D,merge(B:drs([],[B:Index:pred(D,degree,n,1),Index:rel(X,D,Sym,0)]),app(P,X))))). @@ -1216,11 +1216,11 @@ /* ========================================================================= Other Modifiers -========================================================================= */ + */ /* ------------------------------------------------------------------------- Superlative: at least/most/best (no idea how to specify semantics) -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- member(Cat,[(s:_/s:_)/(s:asup\np),(np/np)/(s:asup\np)]), !, @@ -1236,7 +1236,7 @@ /* ------------------------------------------------------------------------- Comparatives -------------------------------------------------------------------------- */ +--- */ % more than 10 dogs % @@ -1286,7 +1286,7 @@ /* ------------------------------------------------------------------------- Superlatives: (the) most/least ... -------------------------------------------------------------------------- */ +--- */ semlex(Cat,most,Index,Att-Att,Sem):- member(Cat,[(n/n)/(d/n)]), !, @@ -1304,7 +1304,7 @@ /* ------------------------------------------------------------------------- Compound numerals -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- member(Cat,[(n/n)/(n/n), @@ -1317,7 +1317,7 @@ /* ------------------------------------------------------------------------- Compound superlative adjectives -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- \+ option('--semantics',drg), @@ -1331,7 +1331,7 @@ /* ------------------------------------------------------------------------- Intensifiers -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- att(Att,pos,Pos), @@ -1359,7 +1359,7 @@ /* ------------------------------------------------------------------------- Compound adjectives (actually, the hyphen in compound adjectives) -------------------------------------------------------------------------- */ +--- */ semlex(pp\n,'-',Index,Att-Att,Sem):- !, Sem = lam(N,lam(X,alfa(def,merge(B1:drs([B1:[]:Y],[]),app(N,Y)), @@ -1376,7 +1376,7 @@ /* ------------------------------------------------------------------------- Definite Prepositions -------------------------------------------------------------------------- */ +--- */ % except % @@ -1441,7 +1441,7 @@ /* ------------------------------------------------------------------------- Complementizers (Wh) -------------------------------------------------------------------------- */ +--- */ semlex(s:qem/s:dcl,Sym,Index,Att-Att,Sem):- ( Sym=how, Pred=manner, Sense=2, Rel=manner_rel; @@ -1457,7 +1457,7 @@ /* ------------------------------------------------------------------------- Complementizers -------------------------------------------------------------------------- */ +--- */ semlex(Cat,_Sym,Index,Att-Att,Sem):- member(Cat,[s:em/s:dcl,s:bem/s:b,s:em/s:b,s:qem/s:dcl]), !, @@ -1487,7 +1487,7 @@ /* ------------------------------------------------------------------------- Locative Adverbs -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att1-Att2,Sem):- category(vpadv,Cat,_), @@ -1513,7 +1513,7 @@ /* ------------------------------------------------------------------------- Not -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- category(vpadv,Cat,_), @@ -1537,7 +1537,7 @@ /* ------------------------------------------------------------------------- Cardinals that function as VP modifiers (often wrongly analysed) -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att1-Att2,Sem):- att(Att1,pos,'CD'), @@ -1549,7 +1549,7 @@ /* ------------------------------------------------------------------------- NPs that function as VP modifiers -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att1-Att2,Sem):- category(vpadv,Cat,_), @@ -1577,12 +1577,12 @@ Sym = more, Cat = (s:adj\np)/(s:adj\np), !, Sem = lam(X,lam(Q,lam(F,app(app(X,Q),lam(D1,merge(B:drs([B:[]:D2],[B:Index:rel(D1,D2,more,0)]),app(F,D1))))))). -------------------------------------------------------------------------- */ +--- */ /* ------------------------------------------------------------------------- Adverbs (VP modifying) -------------------------------------------------------------------------- */ +--- */ %semlex(Cat,Sym,Index,Att-Att,Sem):- % category(vpadv,Cat,_), @@ -1604,7 +1604,7 @@ /* ------------------------------------------------------------------------- "hard to take", "easy to please" -------------------------------------------------------------------------- */ +--- */ semlex((s:adj\np)/((s:to\np)/np),Sym,Index,Att-Att,Sem):- !, closing(CC), @@ -1615,7 +1615,7 @@ /* ------------------------------------------------------------------------- Definite prepositions -------------------------------------------------------------------------- */ +--- */ % "the" as apposition trigger % @@ -1652,7 +1652,7 @@ /* ------------------------------------------------------------------------- Prepositional Phrases -------------------------------------------------------------------------- */ +--- */ semlex(pp,Sym,Index,Att-Att,Sem):- !, Sem = lam(X,B:drs([B:[]:Y],[B:Index:pred(Y,thing,n,12), @@ -1661,7 +1661,7 @@ /* ------------------------------------------------------------------------- Prepositions -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- member(Cat,[(n\n)/np, @@ -1850,7 +1850,7 @@ /* ------------------------------------------------------------------------- PP complements -------------------------------------------------------------------------- */ +--- */ % ... limited to providing ... % @@ -1875,7 +1875,7 @@ /* ------------------------------------------------------------------------- Discourse connectors: if -------------------------------------------------------------------------- */ +--- */ semlex(Cat,if,Index,Att-Att,Sem):- member(Cat,[((s:X\np)\(s:X\np))/s:dcl]), !, @@ -1886,7 +1886,7 @@ /* ------------------------------------------------------------------------- Discourse connectors: where -------------------------------------------------------------------------- */ +--- */ semlex(Cat,where,Index,Att1-Att2,Sem):- member(Cat,[((s:X\np)\(s:X\np))/s:dcl]), !, @@ -1898,7 +1898,7 @@ /* ------------------------------------------------------------------------- Discourse connectors: when -------------------------------------------------------------------------- */ +--- */ semlex(Cat,when,Index,Att-Att,Sem):- option('--tense',true), @@ -1911,7 +1911,7 @@ /* ------------------------------------------------------------------------- Discourse connectors: as does NP -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- option('--theory',drt), @@ -1931,7 +1931,7 @@ /* ------------------------------------------------------------------------- Discourse connectors (VP modifying) -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- option('--theory',sdrt), @@ -1973,7 +1973,7 @@ /* ------------------------------------------------------------------------- Prepositions: "VP prep VPing" -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- Sym = without, @@ -2042,7 +2042,7 @@ /* ------------------------------------------------------------------------- Control Prepositions (NP) -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- member(Cat,[(((s:X\np)\(s:X\np))/(s:ng\np))/np, @@ -2056,7 +2056,7 @@ /* ------------------------------------------------------------------------- Control Prepositions (N) Example: "in", as in: "I had a plan in place to respond." -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- member(Cat,[(((s:X\np)\(s:X\np))/(s:ng\np))/n, @@ -2093,7 +2093,7 @@ /* ------------------------------------------------------------------------- Sentence-initial determiners -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Lemma,Index,Att1-Att2,Sem):- member(Lemma,[the,that,this,those,these]), @@ -2119,7 +2119,7 @@ /* ------------------------------------------------------------------------- Example: With violence escalating in Kosovo, S -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- member(Cat,[((s:X/s:X)/(s:ng\np))/np, @@ -2146,7 +2146,7 @@ /* ------------------------------------------------------------------------- instead (of) -------------------------------------------------------------------------- */ +--- */ semlex(Cat,instead,Index,Att-Att,Sem):- member(Cat,[((s:X\np)\(s:X\np))/pp, @@ -2157,7 +2157,7 @@ /* ------------------------------------------------------------------------- Double prepositions, such as "out of", "together with" -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- att(Att,pos,Pos), @@ -2177,7 +2177,7 @@ /* ------------------------------------------------------------------------- Double prepositions, such as "Cycling in the north of France, ..." -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- att(Att,pos,Pos), @@ -2208,7 +2208,7 @@ /* ------------------------------------------------------------------------- VP adverb modifier (negation) -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- notSymbol(Sym), @@ -2231,7 +2231,7 @@ /* ------------------------------------------------------------------------- VP adverb modifier (Cardinals that function as modifiers) -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att1-Att2,Sem):- att(Att1,pos,'CD'), @@ -2247,7 +2247,7 @@ /* ------------------------------------------------------------------------- VP adverb modifier (NPs that function as modifiers) -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att1-Att2,Sem):- member(Cat,[((s:X\np)/(s:X\np))/((s:X\np)/(s:X\np)), @@ -2265,7 +2265,7 @@ /* ------------------------------------------------------------------------- VP adverb modifier (intersective) -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- member(Cat,[((s:X\np)/(s:X\np))/((s:X\np)/(s:X\np)), @@ -2317,7 +2317,7 @@ /* ------------------------------------------------------------------------- Preposition (in front of WH, as in "From where ...") -------------------------------------------------------------------------- */ +--- */ semlex((s:wq/(s:q/pp))/(s:wq/(s:q/np)),Sym,Index,Att-Att,Sem):- Sem = lam(Q,lam(W,lam(F,app(app(Q,V),F)))), @@ -2329,7 +2329,7 @@ /* ------------------------------------------------------------------------- Possessive -------------------------------------------------------------------------- */ +--- */ semlex(Cat,_Lemma,Index,Att-Att,Sem):- member(Cat,[(np:nb/n)/(n/n), @@ -2385,7 +2385,7 @@ /* ------------------------------------------------------------------------- Emphasising Pronouns -------------------------------------------------------------------------- */ +--- */ semlex(np\np, himself,Index,Att-Att,Sem):- !, Sem = lam(Q,lam(P,app(Q,lam(X,merge(B:drs([],[B:Index:pred(X,male,n,2)]),app(P,X)))))). @@ -2403,7 +2403,7 @@ /* ------------------------------------------------------------------------- NP modifiers: floating quantifiers -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- option('--x',false), @@ -2414,7 +2414,7 @@ /* ------------------------------------------------------------------------- NP modifiers: only -------------------------------------------------------------------------- */ +--- */ semlex(Cat,only,Index,Att-Att,Sem):- member(Cat,[np\np, np/np]), !, @@ -2427,7 +2427,7 @@ /* ------------------------------------------------------------------------- NP modifiers: negation -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- member(Cat,[np\np, np/np]), @@ -2442,7 +2442,7 @@ /* ------------------------------------------------------------------------- NP modifiers -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att1-Att2,Sem):- att(Att1,pos,Pos), @@ -2490,7 +2490,7 @@ /* ------------------------------------------------------------------------- NP modifiers (superlative contruction) -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- member(Cat,[d/np]), !, @@ -2506,12 +2506,12 @@ (np/np)/(np/np)]), member(Sym,[there,here,ago,such,now]), !, Sem = lam(M,lam(Q,lam(P,app(app(M,Q),P)))). -------------------------------------------------------------------------- */ +--- */ /* ------------------------------------------------------------------------- NP modifier modifiers (proper names) -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- att(Att,pos,Pos), @@ -2525,7 +2525,7 @@ /* ------------------------------------------------------------------------- NP modifier modifiers (not) -------------------------------------------------------------------------- */ +--- */ semlex(Cat,not,Index,Att-Att,Sem):- member(Cat,[(np\np)/(np\np), @@ -2537,7 +2537,7 @@ /* ------------------------------------------------------------------------- NP modifier modifiers -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- member(Cat,[(np\np)/(np\np), @@ -2551,7 +2551,7 @@ /* ------------------------------------------------------------------------- NP modifier modifiers, superlative ("most notably") -------------------------------------------------------------------------- */ +--- */ semlex(Cat,_Sym,Index,Att-Att,Sem):- member(Cat,[(np/np)/(d/np)]), !, @@ -2562,7 +2562,7 @@ /* ------------------------------------------------------------------------- NPs that function as S modifiers -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att1-Att2,Sem):- category(smod,Cat,Sym), @@ -2600,7 +2600,7 @@ /* ------------------------------------------------------------------------- S modifiers -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- notSymbol(Sym), @@ -2615,7 +2615,7 @@ /* ------------------------------------------------------------------------- S modifier modifiers -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- notSymbol(Sym), @@ -2656,7 +2656,7 @@ /* ------------------------------------------------------------------------- Mostly Temporal modifiers: "every month", "this week", "Nov. 29" -------------------------------------------------------------------------- */ +--- */ %semlex(Cat,this,Index,Att-Att,Sem):- % member(Cat,[((s:X\np)\(s:X\np))/n, @@ -2724,7 +2724,7 @@ /* ------------------------------------------------------------------------- Noun subcategorising for sentence -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- member(Cat,[n/s:em,n/s:qem,n/s:bem]), !, @@ -2758,7 +2758,7 @@ /* ------------------------------------------------------------------------- NP modifying noun -------------------------------------------------------------------------- */ +--- */ semlex(n/np,Sym,Index,Att-Att,Sem):- !, att(Att,sense,Sense), @@ -2768,7 +2768,7 @@ /* ------------------------------------------------------------------------- PP modifiers -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- option('--semantics',drg), @@ -2816,7 +2816,7 @@ /* ------------------------------------------------------------------------- Preposition: the (as in "the week before") -------------------------------------------------------------------------- */ +--- */ semlex(Cat,the,Index,Att1-Att2,Sem):- member(Cat,[(pp\pp)/n]), !, @@ -2836,7 +2836,7 @@ /* ------------------------------------------------------------------------- Discourse connectors: when -------------------------------------------------------------------------- */ +--- */ semlex(Cat,when,Index,Att-Att,Sem):- option('--tense',true), @@ -2859,7 +2859,7 @@ /* ------------------------------------------------------------------------- Discourse connectors: if -------------------------------------------------------------------------- */ +--- */ semlex(Cat,if,Index,Att-Att,Sem):- member(Cat,[(s:X/s:X)/s:dcl, @@ -2876,7 +2876,7 @@ /* ------------------------------------------------------------------------- Discourse connectors: if -------------------------------------------------------------------------- */ +--- */ semlex((s:X\s:X)/s:dcl,and,_Index,Att-Att,Sem):- option('--theory',drt), !, @@ -2886,7 +2886,7 @@ /* ------------------------------------------------------------------------- Discourse connectors: all others -------------------------------------------------------------------------- */ +--- */ semlex(Cat,Sym,Index,Att-Att,Sem):- option('--theory',sdrt), @@ -2929,7 +2929,7 @@ /* ------------------------------------------------------------------------- Non-Restrictive Relative Pronous -------------------------------------------------------------------------- */ +--- */ semlex(Cat,_Sym,_,Att-Att,Sem):- member(Cat,[(np\np)/(s:_\np),(np\np)/(s:_/np)]), @@ -2952,7 +2952,7 @@ /* ------------------------------------------------------------------------- Restrictive Relative Pronous -------------------------------------------------------------------------- */ +--- */ semlex(Cat,_Sym,_Index,Att-Att,Sem):- member(Cat,[(n\n)/(s:_\np), @@ -2966,7 +2966,7 @@ /* ------------------------------------------------------------------------- Other kind of relative pronous (pied piping) -------------------------------------------------------------------------- */ +--- */ semlex(Cat,_Sym,Index,Att-Att,Sem):- Cat=((np\np)/(s:dcl\np))\(np/np), !, @@ -2978,7 +2978,7 @@ /* ------------------------------------------------------------------------- whose -------------------------------------------------------------------------- */ +--- */ semlex(((np\np)/(s:dcl\np))/n,_,Index,Att1-Att2,Sem):- !, closing(CC), @@ -2990,7 +2990,7 @@ /* ------------------------------------------------------------------------- Further relative pronouns -------------------------------------------------------------------------- */ +--- */ semlex(((n\n)/(s:dcl\np))/n,_,Index,Att1-Att2,Sem):- !, closing(CC), @@ -3020,7 +3020,7 @@ /* ------------------------------------------------------------------------- Interjections and Sentential Categories -------------------------------------------------------------------------- */ +--- */ %semlex(Cat,Sym,Index,Att-Att,Sem):- % option('--x',true), @@ -3037,7 +3037,7 @@ /* ========================================================================= Aux Predicates -========================================================================= */ + */ notSymbol( not ). notSymbol( 'n\'t' ). Index: src/prolog/boxer/mergeDRT.pl =================================================================== --- src/prolog/boxer/mergeDRT.pl (revision 2527) +++ src/prolog/boxer/mergeDRT.pl (working copy) @@ -7,7 +7,7 @@ /* ======================================================================== Merge reduction -======================================================================== */ +*/ mergeDrs(Var,Var):- var(Var), !. @@ -40,7 +40,7 @@ /* ======================================================================== Merge reduction -======================================================================== */ +*/ % Cannot reduce a variable % @@ -143,7 +143,7 @@ /* ======================================================================== Projection Normal Form -======================================================================== */ +*/ pnf(Var,Var):- var(Var), !. pnf(alfa(T1,alfa(T2,B1,B2),B3),alfa(T2,N1,N2)):- !, pnf(B1,N1), pnf(alfa(T1,B2,B3),N2). @@ -158,7 +158,7 @@ /*======================================================================== DRS-merge (Conditions) -========================================================================*/ +*/ mergeConds([B:F:Cond1|C1],[B:F:Cond2|C2]):- !, mergeConds([Cond1|C1],[Cond2|C2]). @@ -223,7 +223,7 @@ /* ======================================================================== Merge -======================================================================== */ +*/ merge(drs(D1,C1),drs(D2,C2),drs(D3,C3)):- !, merge(D1,D2,D3), merge(C1,C2,C3). merge([],L,L):- !. Index: src/prolog/boxer/noncomp.pl =================================================================== --- src/prolog/boxer/noncomp.pl (revision 2527) +++ src/prolog/boxer/noncomp.pl (working copy) @@ -7,7 +7,7 @@ /* ======================================================================== Non-compositional reduction rules -======================================================================== */ +*/ noncomp(B1:I1:named(X1,Sym1,Type,_),B2:I2:named(X2,Sym2,Type,Sense),K):- X1 == X2, B1 == B2,!, @@ -46,12 +46,12 @@ adjacent([I],[J],[I,J]):- !, J is I + 1. adjacent(Is,Js,Ks):- member(I,Is), member(J,Js), J is I + 1, !, append(Is,Js,Ks). -========================================================================*/ +*/ /*======================================================================== Concatenate Dates -========================================================================*/ +*/ concat_dates(date([]:'+', []:'XXXX', Month, Day), date([]:'+', Year, []:'XX', Day), @@ -97,5 +97,5 @@ num2day(Num,Day):- integer(Num), Num > 9, Num < 32, atom_number(Day,Num). -========================================================================*/ +*/ Index: src/prolog/boxer/output.pl =================================================================== --- src/prolog/boxer/output.pl (revision 2527) +++ src/prolog/boxer/output.pl (working copy) @@ -3,8 +3,13 @@ printFooter/1, printSem/4, printDerList/2, - printBox/2]). + printBox/2, + boxer_assertz/3]). +:- thread_local boxer_assertz/3. +:- multifile boxer_assertz/3. +:- discontiguous boxer_assertz/3. + :- use_module(boxer(xdrs2xml),[xdrs2xml/2,der2xml/3]). :- use_module(boxer(drs2fdrs),[instDrs/1]). :- use_module(boxer(printDrs),[printDrs/3]). @@ -20,7 +25,7 @@ /* ------------------------------------------------------------------------ Options ------------------------------------------------------------------------- */ +-- */ printOptions([],Stream):- !, nl(Stream). @@ -32,29 +37,29 @@ /* ------------------------------------------------------------------------ Print header: --format no ------------------------------------------------------------------------- */ +-- */ printHeader(_,_,_,_):- option('--format',no), !. /* ------------------------------------------------------------------------ Print header: --format prolog ------------------------------------------------------------------------- */ +-- */ printHeader(Stream,_,Command,Options):- option('--format',prolog), !, - format(Stream,'%%% This output was generated by the following command:~n',[]), - format(Stream,'%%% ~p ',[Command]), + 'format'(Stream,'%%% This output was generated by the following command:~n',[]), + 'format'(Stream,'%%% ~p ',[Command]), printOptions(Options,Stream), ( option('--semantics',drs), !, - format(Stream,'~n:- multifile sem/3, id/2.',[]), - format(Stream,'~n:- discontiguous sem/3, id/2.',[]), - format(Stream,'~n:- dynamic sem/3, id/2.~n',[]) + 'format'(Stream,'~n:- multifile sem/3, id/2.',[]), + 'format'(Stream,'~n:- discontiguous sem/3, id/2.',[]), + 'format'(Stream,'~n:- dynamic sem/3, id/2.~n',[]) ; true ). /* ------------------------------------------------------------------------ Print header: --format latex ------------------------------------------------------------------------- */ +-- */ printHeader(Stream,_,_,_):- option('--format',latex), !, @@ -86,25 +91,25 @@ /* ------------------------------------------------------------------------ Print header: --format dot ------------------------------------------------------------------------- */ +-- */ printHeader(_,_,_,_):- option('--format',dot), !. /* ------------------------------------------------------------------------ Print header: --format xml ------------------------------------------------------------------------- */ +-- */ printHeader(Stream,Version,_,_):- option('--format',xml), !, - format(Stream,'~n',[]), - format(Stream,'~n',[]), - format(Stream,'~n',[Version]). + 'format'(Stream,'~n',[]), + 'format'(Stream,'~n',[]), + 'format'(Stream,'~n',[Version]). /* ------------------------------------------------------------------------ Print header: failed, generate warning ------------------------------------------------------------------------- */ +-- */ printHeader(_,_,_,_):- option('--format',Format), @@ -114,22 +119,22 @@ /* ------------------------------------------------------------------------ Print footer ------------------------------------------------------------------------- */ +-- */ printFooter(Stream):- option('--format',xml), - format(Stream,'~n',[]). + 'format'(Stream,'~n',[]). printFooter(Stream):- option('--format',latex), !, - format(Stream,'\\end{document}~n',[]). + 'format'(Stream,'\\end{document}~n',[]). printFooter(_). -/* ======================================================================== +/*======================================================================== Print Utterance + Semantic Representation -======================================================================== */ + */ printSem(Stream,_Id,_Index,Ders):- option('--semantics',der), !, %%% derivation @@ -143,7 +148,7 @@ /* ======================================================================= Print Derivations -========================================================================*/ +*/ printDerList(_,[]):- !. @@ -153,6 +158,12 @@ printDerList(Stream,L). printDerList(Stream,[der(I,Der)|L]):- + option('--loaded',do),!, + output:boxer_assertz(Stream,der(I,Der),[]), + printDer(Der,Stream), + printDerList(Stream,L). + +printDerList(Stream,[der(I,Der)|L]):- write(Stream,'der( '), write(Stream,I), write(Stream,', '), printDer(Der,Stream), write(Stream,' ).'), nl(Stream), !, @@ -162,18 +173,29 @@ warning('cannot print derivation ~p',[I]), printDerList(Stream,L). - /*======================================================================== Print Derivation (bit of a hack right now!) -========================================================================*/ +*/ +printDer(Comb,Stream):- fail, + option('--loaded',do),!, + with_output_to(string(String), + (current_input(IStream), + must(printDirAtom(Comb,IStream)), + 'format'(IStream,'.~n',[]))), + read_term_from_atom(String,Term,[]), + output:boxer_assertz(Stream,printDer(Term,Comb),[]),!. printDer(Comb,Stream):- + printDirAtom(Comb,Stream). + + +printDirAtom(Comb,Stream):- Comb = t(Cat,Tok,Sem,Att,_), !, betaConvert(Sem,Red), \+ \+ ( instDrs(Red), write_term(Stream,t(Red,Cat,Tok,Att),[numbervars(true),quoted(true)]) ). -printDer(Comb,Stream):- +printDirAtom(Comb,Stream):- Comb =.. [Rule,Cat,_,Sem,_,_,T], member(Rule,[ftr,btr,tc]), !, write(Stream,Rule), @@ -184,10 +206,10 @@ \+ \+ ( instDrs(Red), write_term(Stream,Red,[numbervars(true),quoted(true)]) ), write(Stream,','), - printDer(T,Stream), + printDirAtom(T,Stream), write(Stream,')'). -printDer(Comb,Stream):- +printDirAtom(Comb,Stream):- Comb =.. [Rule,Cat,Sem,_,_,L,R], !, write(Stream,Rule), write(Stream,'('), @@ -197,12 +219,12 @@ \+ \+ ( instDrs(Red), write_term(Stream,Red,[numbervars(true),quoted(true)]) ), write(Stream,','), - printDer(L,Stream), + printDirAtom(L,Stream), write(Stream,','), - printDer(R,Stream), + printDirAtom(R,Stream), write(Stream,')'). -printDer(Comb,Stream):- +printDirAtom(Comb,Stream):- Comb =.. [Rule,Cat,_,Sem,_,_,L,R], !, write(Stream,Rule), write(Stream,'('), @@ -212,30 +234,35 @@ \+ \+ ( instDrs(Red), write_term(Stream,Red,[numbervars(true),quoted(true)]) ), write(Stream,','), - printDer(L,Stream), + printDirAtom(L,Stream), write(Stream,','), - printDer(R,Stream), + printDirAtom(R,Stream), write(Stream,')'). -printDer(Comb,_):- +printDirAtom(Comb,_):- warning('cannot print the derivation ~p',[Comb]). /* ======================================================================== Print DRS -======================================================================== */ +*/ printXDRS(Stream,_,_,XDRS):- option('--semantics',drs), + option('--loaded',do),!, + output:boxer_assertz(Stream,XDRS,[]),!. + +printXDRS(Stream,_,_,XDRS):- + option('--semantics',drs), option('--format',no), !, printBox(Stream,XDRS). printXDRS(Stream,Id,_Index,XDRS):- option('--semantics',drs), option('--format',xml), !, - format(Stream,'~n',[Id]), + 'format'(Stream,'~n',[Id]), xdrs2xml(XDRS,Stream), - format(Stream,'~n',[]). + 'format'(Stream,'~n',[]). printXDRS(Stream,_Id,_Index,XDRS):- option('--semantics',drs), @@ -244,11 +271,12 @@ drs2tex(DRS,Stream), nl(Stream), nl(Stream). + printXDRS(Stream,Id,Index,XDRS):- option('--semantics',drs), !, XDRS = xdrs(Tags,DRS), - format(Stream,'id(~q,~p).~n',[Id,Index]), - format(Stream,'sem(~p,',[Index]), + printId(Stream,Id,Index), + 'format'(Stream,'sem(~p,',[Index]), printStuff(Tags,Stream,','), printStuff(DRS,Stream,').'), printBox(Stream,DRS), @@ -257,26 +285,32 @@ /* ======================================================================== Print PDRS -======================================================================== */ +*/ printXDRS(Stream,_,_,XDRS):- option('--semantics',pdrs), + option('--loaded',do), + output:boxer_assertz(Stream,XDRS,[]),!. + + +printXDRS(Stream,_,_,XDRS):- + option('--semantics',pdrs), option('--format',no), !, printBox(Stream,XDRS). printXDRS(Stream,Id,_Index,XDRS):- option('--semantics',pdrs), option('--format',xml), !, - format(Stream,'~n',[Id]), + 'format'(Stream,'~n',[Id]), xdrs2xml(XDRS,Stream), printBox(Stream,XDRS), - format(Stream,'~n',[]). + 'format'(Stream,'~n',[]). printXDRS(Stream,Id,Index,XDRS):- option('--semantics',pdrs), XDRS = xdrs(Tags,DRS), - format(Stream,'id(~q,~p).~n',[Id,Index]), - format(Stream,'sem(~p,',[Index]), + printId(Stream,Id,Index), + 'format'(Stream,'sem(~p,',[Index]), printStuff(Tags,Stream,','), printStuff(DRS,Stream,').'), printBox(Stream,XDRS), @@ -285,8 +319,14 @@ /* ======================================================================== Print DRG -======================================================================== */ +*/ +printXDRS(Stream,_,_,XDRS):- + option('--semantics',drg), + option('--loaded',do), + output:boxer_assertz(Stream,XDRS,[]),!. + + printXDRS(Stream,_Id,_Index,XDRS):- option('--semantics',drg), !, XDRS = xdrs(_,Tuples), @@ -296,41 +336,56 @@ /* ======================================================================== Print FOL -======================================================================== */ +*/ +printXDRS(Stream,_,_,XDRS):- + option('--semantics',fol), + option('--loaded',do), + output:boxer_assertz(Stream,XDRS,[]),!. + printXDRS(Stream,Id,Index,XDRS):- option('--semantics',fol), !, - format(Stream,'id(~q,~p).~n',[Id,Index]), + printId(Stream,Id,Index), XDRS = xdrs(_Tags,FOL), numbervars(FOL,0,_), - format(Stream,'fol(~p,',[Index]), + 'format'(Stream,'fol(~p,',[Index]), write_term(Stream,FOL,[numbervars(true),quoted(true)]), write(Stream,').'), nl(Stream). /* ======================================================================== Print TACITUS -======================================================================== */ +*/ +printXDRS(Stream,_,_,XDRS):- + option('--semantics',tacitus), + option('--loaded',do), + output:boxer_assertz(Stream,XDRS,[]),!. + printXDRS(Stream,Id,Index,XDRS):- option('--semantics',tacitus), !, - format(Stream,'id(~q,~p).~n',[Id,Index]), + printId(Stream,Id,Index), XDRS = xdrs(Tags,TAC), printTags(Tags,Stream,''), printTAC(TAC,Stream). +printId(Stream,Id,Index):- + option('--loaded',do), + output:boxer_assertz(Stream,id(Id,Index),[]),!. +printId(Stream,Id,Index):-'format'(Stream,'id(~q,~p).~n',[Id,Index]). + /*======================================================================== Print Box -========================================================================*/ +*/ printBox(Stream,XDRS):- option('--box',true), option('--format',xml), !, - format(Stream,'~n ~n~n',[]). + 'format'(Stream,'--> ~n~n',[]). printBox(Stream,XDRS):- option('--box',true), !, @@ -343,7 +398,7 @@ /* ======================================================================== Left Margin (for DRS printing) -======================================================================== */ +*/ leftMargin(Margin):- option('--format',prolog), !, Margin = '%%% '. leftMargin(Margin):- option('--format',latex), !, Margin = '%%% '. @@ -353,11 +408,15 @@ /*======================================================================== Print Utterance -========================================================================*/ +*/ printUtterance(Stream,Words):- + option('--loaded',do), + output:boxer_assertz(Stream,words(Words),[]),!. + +printUtterance(Stream,Words):- option('--format',prolog), !, - format(Stream,'%%% ',[]), + 'format'(Stream,'%%% ',[]), printWords(Words,Stream), nl(Stream). @@ -369,15 +428,15 @@ printUtterance(Stream,Words):- option('--format',dot), !, - format(Stream,'# ',[]), + 'format'(Stream,'# ',[]), printWords(Words,Stream), nl(Stream). printUtterance(Stream,Words):- option('--format',xml), !, - format(Stream,' ~n~n',[]). + 'format'(Stream,'--> ~n~n',[]). printUtterance(Stream,Words):- option('--format',no), !, @@ -387,7 +446,7 @@ /*======================================================================== Print Words -========================================================================*/ +*/ printWords([],_):- !. @@ -398,7 +457,7 @@ printWords([ID:[tok:New|R]|L],Stream). printWords([_ID:[tok:Tok|_]|L],Stream):- !, - format(Stream,'~w ',[Tok]), + 'format'(Stream,'~w ',[Tok]), printWords(L,Stream). printWords([_Unknown|L],Stream):- !, @@ -407,17 +466,24 @@ /*======================================================================== Print Stuff -========================================================================*/ +*/ printStuff(Stuff,Stream,Closing):- - numbervars(Stuff,1,_), + option('--loaded',do), + boxer_assertz(Stream,stuff(Stuff),[numbervars(true),quoted(true)]), write_term(Stream,Stuff,[numbervars(true),quoted(true)]), - format(Stream,'~p',[Closing]). + 'format'(Stream,'~p',[Closing]). +printStuff(Stuff,Stream,Closing):- + numbervars(Stuff,1,_), + portray_clause(Stream,Stuff,[numbervars(true),quoted(true)]), + % write_term(Stream,Stuff,[numbervars(true),quoted(true)]), + 'format'(Stream,'~p',[Closing]). + /*======================================================================== Print Tags -========================================================================*/ +*/ printTags([],Stream,Ending):- write(Stream,Ending). Index: src/prolog/boxer/ppDrs.pl =================================================================== --- src/prolog/boxer/ppDrs.pl (revision 2527) +++ src/prolog/boxer/ppDrs.pl (working copy) @@ -10,7 +10,7 @@ /*======================================================================== Dynamic Predicates -========================================================================*/ +*/ :- dynamic counter/1. @@ -19,7 +19,7 @@ /*======================================================================== Postprocessing XDRSs -========================================================================*/ +*/ ppDrs(X,_,X):- !. @@ -34,7 +34,7 @@ /*======================================================================== Postprocessing DRSs -========================================================================*/ +*/ ppDrs(merge(A1,A2),P,E,W,C,CD1-CD3,merge(A3,A4)):- !, ppDrs(A1,P,E,W,C,CD1-CD2,A3), @@ -55,7 +55,7 @@ /*======================================================================== Postprocessing DRS-Conditions -========================================================================*/ +*/ ppConds(drs([],[]),_,_,_,_,CD-CD,drs([],[])):- !. @@ -101,7 +101,7 @@ /*======================================================================== Postprocessing DRS-Conditions -========================================================================*/ +*/ checkDrs(B1,POS,NE,Words,Context,CDRS,B4):- rule(Check,Remove,Constraints,Add), @@ -116,7 +116,7 @@ /*======================================================================== Member check DRS-Conditions -========================================================================*/ +*/ member(drs([],[]),_,_):- !. @@ -139,7 +139,7 @@ /*======================================================================== Remove DRS-Conditions -========================================================================*/ +*/ remove(drs([],[]),B,B):- !. @@ -154,7 +154,7 @@ /*======================================================================== Add DRS-Conditions -========================================================================*/ +*/ add(drs([],[]),B,B). @@ -167,7 +167,7 @@ /*======================================================================== Check constraints -========================================================================*/ +*/ checkConstraints([],_,_,_,_). @@ -240,7 +240,7 @@ /* ------------------------------------------------------------------------------ Next ------------------------------------------------------------------------------- */ +-------- */ nextYear(Year,NextYear):- atom_number(Year,Y), @@ -263,7 +263,7 @@ /* ------------------------------------------------------------------------------ Last ------------------------------------------------------------------------------- */ +-------- */ lastYear(Year,LastYear):- atom_number(Year,Y), @@ -286,7 +286,7 @@ /* ------------------------------------------------------------------------------ Dealing with Quotes [new] ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[]), drs([],[[I]:pred(X,quotation,n,2),[J]:pred(X,quotation,n,2)]), @@ -298,7 +298,7 @@ /* ------------------------------------------------------------------------------ Dealing with Quotes [old, bit of a hack] ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[]), drs([],[I:pred(X,Sym,a,0)]), @@ -325,7 +325,7 @@ /* ------------------------------------------------------------------------------ Dealing with URLs and emails ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[]), drs([],[I:pred(X,Sym,_,Sense)]), @@ -360,7 +360,7 @@ /* ------------------------------------------------------------------------------ Title, Names ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[]), drs([],[I:named(X,Title,nam,Sense1),J:named(X,Sym,Type,Sense2)]), @@ -394,7 +394,7 @@ /* ------------------------------------------------------------------------------ Ampersand in company names ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[]), drs([],[[I]:pred(X,'&',a,_)]), @@ -427,12 +427,12 @@ [ ne(I,['I-LOC','B-LOC','I-LOCATION']) ], drs([],[[I]:named(X,Sym,loc,Sense)])). ------------------------------------------------------------------------------- */ +-------- */ /* ------------------------------------------------------------------------------ Compound numeral expressions (e.g. "4 billion") ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[]), drs([],[[I]:card(X,Num1,Type),[J]:card(X,1000000000,Type)]), @@ -453,7 +453,7 @@ Num2 is integer(1000000 * Num1) ], drs([],[[I,J]:card(X,Num2,Type)])). ------------------------------------------------------------------------------- */ +-------- */ /* ------------------------------------------------------------------------------ @@ -467,11 +467,11 @@ Num2 is integer(1000 * Num1) ], drs([],[[I,J]:card(X,Num2,Type)])). ------------------------------------------------------------------------------- */ +-------- */ /* ------------------------------------------------------------------------------ Compound numeral expressions (e.g. "four feet ten inches") ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[]), drs([],[[I]:card(X,Num1,Type),[J]:pred(X,foot,n,Sense), @@ -486,7 +486,7 @@ /* ------------------------------------------------------------------------------ Date expressions (e.g. "March 2, 2004") ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[]), drs([],[[I]:pred(X,Month,a,_),[J]:card(X,Day,ge),[K]:card(X,Year,ge)]), @@ -529,7 +529,7 @@ /* ------------------------------------------------------------------------------ Clocktime expressions (e.g. "at 4 : 30 pm") ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[]), drs([],[[I]:card(X,Hour,ge),[I]:pred(X,thing,n,12),[J]:rel(X,Y,':',_),[K]:card(Y,Minutes,ge),[L]:pred(Y,AMPM,n,_)]), @@ -558,7 +558,7 @@ /* ------------------------------------------------------------------------------ Clocktime expressions (e.g. "2200 GMT") ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[]), drs([],[[I]:card(X,Time,ge),[J]:pred(X,gmt,n,_)]), @@ -571,7 +571,7 @@ /* ------------------------------------------------------------------------------ Date expressions (e.g. "10th of March , 2004") ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[]), drs([],[[I]:pred(X,Day,_,_),[J]:rel(X,Y,of,_),[K]:named(Y,Month,nam,_),[M]:card(_,Year,ge)]), @@ -605,7 +605,7 @@ /* ------------------------------------------------------------------------------ Date expressions (e.g. "June 30", "28 July") ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[]), drs([],[[I]:named(X,Month,nam,_),[J]:card(X,Day,ge)]), @@ -646,7 +646,7 @@ /* ------------------------------------------------------------------------------ Date expressions (e.g. "June 1998") ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[]), drs([],[[I]:named(X,Month,nam,_),[J]:card(X,Year,ge)]), @@ -661,7 +661,7 @@ /* ------------------------------------------------------------------------------ Date expressions (e.g. "June") ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[]), drs([],[[I]:named(X,Month,nam,_)]), @@ -682,7 +682,7 @@ /* ------------------------------------------------------------------------------ Date expressions (years B.C.) ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[]), drs([],[[I]:card(X,Year,ge),[J]:named(X,BC,_,_)]), @@ -707,7 +707,7 @@ /* ------------------------------------------------------------------------------ Date expressions (years A.D.) ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[]), drs([],[[I]:card(X,Year,ge),[J]:named(X,AD,_,_)]), @@ -752,7 +752,7 @@ /* ------------------------------------------------------------------------------ Date expressions (years) ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[]), drs([],[[I]:card(X,Year,ge)]), @@ -768,7 +768,7 @@ /* ------------------------------------------------------------------------------ Date expressions (e.g. "in/by/to/from 1992") ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[[J]:rel(_,X,_,_)]), drs([],[[I]:card(X,Year,ge)]), @@ -784,7 +784,7 @@ /* ------------------------------------------------------------------------------ Date expressions (decades) ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[_:rel(_,X,in,_)]), drs([],[[I]:pred(X,Decade,_,_)]), @@ -805,7 +805,7 @@ /* ------------------------------------------------------------------------------ Date expressions (e.g. 11th century) ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[]), drs([],[[I]:pred(X,Century,a,_),[J]:pred(X,century,n,_)]), @@ -826,7 +826,7 @@ /* ------------------------------------------------------------------------------ Date expressions (e.g. "the september 11 plot") ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[]), drs([],[[I]:named(X,Month,nam,_),[]:rel(X,Y,nn,Sense),[J]:card(Y,Day,ge)]), @@ -840,7 +840,7 @@ /* ------------------------------------------------------------------------------ Date expressions (repair rules) ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[]), drs([_:Y],[[L]:timex(X,date([]:'+',[L]:Year,[]:_,[]:_)),[I,J]:timex(Y,date([]:'+',[]:_,[I]:Month,[J]:Day)),[L]:rel(E,X,rel,0),_:rel(E,Y,rel,0)]), @@ -854,7 +854,7 @@ /* ------------------------------------------------------------------------------ Indirect time expressions: today ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[]), drs([],[I:pred(X,today,n,_)]), @@ -868,7 +868,7 @@ /* ------------------------------------------------------------------------------ Indirect time expressions: next/last/this year/month ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[]), drs([],[[I]:pred(X,current,a,1),[J]:pred(X,year,n,_)]), @@ -923,7 +923,7 @@ /* ------------------------------------------------------------------------------ Date expressions (implicit year) ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[_:rel(E,X,_,_),_:pred(E,future,a,1)]), drs([],[I1:timex(X,date([]:'+',[]:'XXXX',I2:Month,Day))]), @@ -956,7 +956,7 @@ /* ------------------------------------------------------------------------------ NN-resolution (e.g. "document collection/grape variety") ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[[I]:pred(X,_,n,_),[J]:pred(Y,Collection,n,_)]), drs([],[[]:rel(X,Y,nn,_)]), @@ -970,7 +970,7 @@ /* ------------------------------------------------------------------------------ Cardinals: just/exactly/at most CARD ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[]), drs([],[[I]:pred(X,just,a,_),[J]:card(X,C,ge)]), @@ -997,7 +997,7 @@ /* ------------------------------------------------------------------------------ Compound Names ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[]), drs([],[I:named(X,Sym1,Type,Sense),J:named(X,Sym2,nam,_)]), @@ -1029,7 +1029,7 @@ /* ------------------------------------------------------------------------------ NN compounds: DATE + NAME / NOUN ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[J:named(X,_,_,_)]), drs([],[I:timex(X,Timex)]), @@ -1059,7 +1059,7 @@ /* ------------------------------------------------------------------------------ NN compounds: PN + NOUN + NOUN ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[J:pred(X,Sym,n,_)]), drs([],[H:named(X,Sym0,Type,Sense),I:pred(X,Sym1,n,Sense1)]), @@ -1077,7 +1077,7 @@ /* ------------------------------------------------------------------------------ NN compounds: NOUN + PN + NOUN ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[J:pred(X,Sym,n,_)]), drs([],[H:pred(X,Sym0,n,Sense1),I:named(X,Sym1,Type,Sense)]), @@ -1095,7 +1095,7 @@ /* ------------------------------------------------------------------------------ NN compounds: CARD + NOUN + NOUN ------------------------------------------------------------------------------- */ +-------- */ % [4007]:pred(_G10737, percent, n, 1), [4006]:card(_G10737, 83.4, ge), [4008]:pred(_G10737, interest, n, 0)] @@ -1125,12 +1125,12 @@ drs([I:New],[I:pred(New,Sym,n,Sense),[]:rel(New,X,nn,0)]) ). ------------------------------------------------------------------------------- */ +-------- */ /* ------------------------------------------------------------------------------ NN compounds: NOUN + ADJ + NOUN ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[J:pred(X,_,a,_),K:pred(X,_,n,_)]), drs([],[I:pred(X,Sym,n,Sense)]), @@ -1145,7 +1145,7 @@ /* ------------------------------------------------------------------------------ NN compounds: PN + PN + NOUN ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[J:pred(X,_,n,_)]), drs([],[H:named(X,Sym0,per,Sense1),I:named(X,Sym1,per,Sense2)]), @@ -1159,7 +1159,7 @@ /* ------------------------------------------------------------------------------ NN compounds: NAME + NOUN ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[J:pred(X,_,n,_)]), drs([],[I:named(X,Sym1,Type,Sense1)]), @@ -1172,7 +1172,7 @@ /* ------------------------------------------------------------------------------ NN compounds: NOUN + NAME ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[J:named(X,_,_,_)]), drs([],[I:pred(X,Sym,n,Sense)]), @@ -1186,7 +1186,7 @@ /* ------------------------------------------------------------------------------ Dimensional Adjectives ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[]), drs([],[[I]:pred(X,Adj,a,_)]), @@ -1201,7 +1201,7 @@ /* ------------------------------------------------------------------------------ Framenet targets ------------------------------------------------------------------------------- */ +-------- */ rule(drs([],[]), drs([],[I:pred(E,Sym,v,0)]), @@ -1244,7 +1244,7 @@ /* ------------------------------------------------------------------------------ Framenet roles ------------------------------------------------------------------------------- */ +-------- */ % basic two-place relation % @@ -1279,7 +1279,7 @@ /*======================================================================== New Refs -========================================================================*/ +*/ newref(X):- counter(Old), @@ -1291,7 +1291,7 @@ /*======================================================================== Adjacent Indexes -========================================================================*/ +*/ adjacent(A,B,C):- reverse(A,[I|_]), @@ -1302,7 +1302,7 @@ /*======================================================================== Months -========================================================================*/ +*/ month('january','01'). month('jan','01'). @@ -1395,7 +1395,7 @@ /*======================================================================== Format Years -========================================================================*/ +*/ yearBC(bc). yearBC(bce). @@ -1432,7 +1432,7 @@ /*======================================================================== Centuries -========================================================================*/ +*/ century('1st', '00XX'). century('first', '00XX'). @@ -1469,7 +1469,7 @@ /*======================================================================== Decades -========================================================================*/ +*/ decade(Date,Decade):- name(Date,[A,B,C,48]), @@ -1519,7 +1519,7 @@ /*======================================================================== Days -========================================================================*/ +*/ day(1,'01'). day('1st','01'). @@ -1587,7 +1587,7 @@ /*======================================================================== Hours -========================================================================*/ +*/ hour(N,'a.m.',NN):- !, hour(N,am,NN). hour(N,'p.m.',NN):- !, hour(N,pm,NN). @@ -1631,7 +1631,7 @@ /*======================================================================== Dimensions -========================================================================*/ +*/ dimension(big,size,1). dimension(small,size,1). @@ -1657,7 +1657,7 @@ /*======================================================================== Quoted strings -========================================================================*/ +*/ quoted(Pred):- atom(Pred), @@ -1670,7 +1670,7 @@ /*======================================================================== URL -========================================================================*/ +*/ url(Pred):- atom(Pred), @@ -1680,7 +1680,7 @@ /*======================================================================== Email -========================================================================*/ +*/ email(Pred):- atom(Pred), @@ -1691,7 +1691,7 @@ /*======================================================================== Postprocessing Words -========================================================================*/ +*/ ppWords([],_,[],[]). @@ -1726,7 +1726,7 @@ /*======================================================================== Postprocessing quoted strings -========================================================================*/ +*/ convertQuotes([],[]). Index: src/prolog/boxer/presupDRT.pl =================================================================== --- src/prolog/boxer/presupDRT.pl (revision 2527) +++ src/prolog/boxer/presupDRT.pl (working copy) @@ -11,7 +11,7 @@ /* ======================================================================== Main predicate: resolveDrs/2 -======================================================================== */ +*/ resolveDrs(B1,B2):- resolveDrs(B1,B2,_). @@ -19,7 +19,7 @@ /* ======================================================================== Main predicate: resolveDrs/3 (DRS) -======================================================================== */ +*/ resolveDrs(alfa(top,B1,B2),RDRS,Links):- option('--theory',drt), !, @@ -36,7 +36,7 @@ /* ======================================================================== Main predicate: resolveDrs/3 (SDRS) -======================================================================== */ +*/ resolveDrs(B,SDRS,Links):- option('--theory',sdrt), @@ -62,7 +62,7 @@ binding links. "Ac" holds a list of accommodation sites (represented as a/1 terms), and "Bi" a list of binding sites (represented as r/2 terms). -======================================================================== */ +*/ resolveDrs(ADRS,DRS,L1,L3):- findAlfaDrs(ADRS,RDRS,alfa(Type,Alfa),Ac,[]-Bi), !, @@ -76,7 +76,7 @@ /* ======================================================================== Find First Alfa-DRS (DRSs) -======================================================================== */ +*/ findAlfaDrs(alfa(top,B1,B3),Res,Alfa,Ac,Bi1-Bi2):- !, mergeDrs(B1,M1), @@ -151,7 +151,7 @@ /* ======================================================================== Find First Alfa-DRS (DRS-Conditions) -======================================================================== */ +*/ findAlfaConds([I:X1|C1],[I:X2|C2],Alfa,Ac,Bi1-Bi2):- !, findAlfaConds([X1|C1],[X2|C2],Alfa,Ac,Bi1-Bi2). @@ -205,7 +205,7 @@ /* ======================================================================== Resolve alfa: binding or accommodation -======================================================================== */ +*/ resolveAlfa(Alfa,Type,Ac,Bi,B,L1,L2):- option('--presup',max), @@ -222,7 +222,7 @@ /* ------------------------------------------------------------------------ Typology: atype(Type, Global, Local, Binding) ------------------------------------------------------------------------- */ +-- */ atype(def,1,1,1). % definite descriptions atype(nam,1,0,1). % proper names @@ -235,7 +235,7 @@ /* ------------------------------------------------------------------------ Binding: select an antecedent, then merge the domain and the conditions ------------------------------------------------------------------------- */ +-- */ bindAlfa(Type,[a(drs([],[]))|P],Alfa,L1,L2):- !, %%% cannot bind here, so try next level of DRS @@ -282,14 +282,14 @@ /* ------------------------------------------------------------------------ Check if two indices share a common element ------------------------------------------------------------------------- */ +-- */ common(Index1,Index2):- member(X,Index1), member(X,Index2), !. /* ------------------------------------------------------------------------ Check if coordinated items are resolved to the same antecedent ------------------------------------------------------------------------- */ +-- */ coordinated(AnaIndex,AntIndex,Bound):- \+ ( member(bind(AnaIndex,OtherIndex),Bound), @@ -345,7 +345,7 @@ /* ------------------------------------------------------------------------ Forced local accommodation (option 'presup --min') ------------------------------------------------------------------------- */ +-- */ accommodateAlfa(_,[a(Alfa)],Alfa):- option('--presup',min), !. %%% force local accommodation @@ -362,7 +362,7 @@ order of the list corresponds to the level of the accommodation site: the first a/1 term is the most global site, the last element the most local accommodation site. ------------------------------------------------------------------------- */ +-- */ accommodateAlfa(Type,[r(R,R)|P],Alfa):- !, accommodateAlfa(Type,P,Alfa). @@ -390,7 +390,7 @@ /* ======================================================================== Do not resolve remaining of projection path -======================================================================== */ +*/ dontResolve([]):- !. @@ -403,7 +403,7 @@ /* ======================================================================== Merge Domains - Check for Duplicates; Copy Indexes -======================================================================== */ +*/ mergeDomains([],L,L):- !. @@ -427,7 +427,7 @@ /* ======================================================================== Merge Conditions - Check for Duplicates; Copy Indexes -======================================================================== */ +*/ mergeConditions([],L,L):- !. Index: src/prolog/boxer/printCCG.pl =================================================================== --- src/prolog/boxer/printCCG.pl (revision 2527) +++ src/prolog/boxer/printCCG.pl (working copy) @@ -7,7 +7,7 @@ /* ---------------------------------------------------------------------- Main Predicate ----------------------------------------------------------------------- */ + */ printCCG(CCG,Stream):- ccg2lines(CCG,_,Lines), !, @@ -20,7 +20,7 @@ /* ---------------------------------------------------------------------- Print Lines (the CCG derivation) ----------------------------------------------------------------------- */ + */ printLines([],Stream):- nl(Stream). @@ -32,7 +32,7 @@ /* ---------------------------------------------------------------------- Compute each line ----------------------------------------------------------------------- */ + */ ccg2lines(n(X),Len,Lines):- !, ccg2lines(X,Len,Lines). @@ -91,7 +91,7 @@ /* ---------------------------------------------------------------------- Combine Lines ----------------------------------------------------------------------- */ + */ combLines(MaxLeft,Left,MaxRight,Right,Max,New):- Max is MaxLeft + MaxRight + 1, @@ -115,7 +115,7 @@ /* ---------------------------------------------------------------------- Filling out spaces to the right (sometimes needed) ----------------------------------------------------------------------- */ + */ fillRight(L,TreeLen,CatLen,TreeLen,L):- TreeLen > CatLen, !. @@ -138,7 +138,7 @@ /* ---------------------------------------------------------------------- Format a rule ----------------------------------------------------------------------- */ + */ rule(Rule,Max,Line):- atom_length(Rule,Len), @@ -151,7 +151,7 @@ /* ---------------------------------------------------------------------- Format a cat ----------------------------------------------------------------------- */ + */ cat(Cat,Max,Line):- atom_length(Cat,Len), @@ -162,7 +162,7 @@ /* ---------------------------------------------------------------------- Fill a line with a character ----------------------------------------------------------------------- */ + */ fill(Atom,Len,Result):- atom_codes(Atom,[Code]), @@ -180,7 +180,7 @@ /* ---------------------------------------------------------------------- Convert a CCG cat to an atom ----------------------------------------------------------------------- */ + */ cat2atom(Cat,Atom):- cat2atom(Cat,Atom,top). @@ -224,7 +224,7 @@ /* ---------------------------------------------------------------------- Binary Rule Name ----------------------------------------------------------------------- */ + */ binRuleName(ba(N,_,_,_,Left,Right),N,Left,Right,'<'). binRuleName(fa(N,_,_,_,Left,Right),N,Left,Right,'>'). Index: src/prolog/boxer/printDrs.pl =================================================================== --- src/prolog/boxer/printDrs.pl (revision 2527) +++ src/prolog/boxer/printDrs.pl (working copy) @@ -5,14 +5,14 @@ /* ======================================================================== Counter for discourse referents -======================================================================== */ +*/ :- dynamic counter/1. counter(0). /* ======================================================================== Main Predicate -======================================================================== */ +*/ printDrs(B):- printDrs(user_output,B). @@ -34,7 +34,7 @@ /* ======================================================================== Print DRS Lines -======================================================================== */ +*/ printDrsLines([],_,_):- !. @@ -48,7 +48,7 @@ /* ======================================================================== Dealing with a variable -======================================================================== */ +*/ avar(Var):- var(Var), !. avar(Var):- atom(Var), !. @@ -61,7 +61,7 @@ +Lines, % List of lists of character codes of equal length +Width) % Length of the lines -======================================================================== */ +*/ formatDrs(Var,[Line,Line,Line,Codes,Line],N):- avar(Var), !, @@ -133,7 +133,7 @@ /*======================================================================== Format Complex DRSs -========================================================================*/ +*/ complexDrs(merge(Drs1,Drs2),'+',Drs1,Drs2):- !. complexDrs(alfa(_,Drs1,Drs2),'*',Drs1,Drs2):- !. @@ -142,7 +142,7 @@ /*======================================================================== Format Discourse Referents -========================================================================*/ +*/ formatRefs([],[]):- !. @@ -163,7 +163,7 @@ /*======================================================================== Format Lambda bound Variable -========================================================================*/ +*/ formatLambda(Var,Out,N):- makeConstant(Var,Code), @@ -176,7 +176,7 @@ /*======================================================================== Turn a discourse referent into a Prolog constant -========================================================================*/ +*/ makeConstant(X,Code):- !, makeConst(X,Code,120). @@ -207,7 +207,7 @@ /*======================================================================== Format a Line -========================================================================*/ +*/ formatLine(_,0,L-L):- !. @@ -218,7 +218,7 @@ /*======================================================================== Formatting DRS-Conditions -========================================================================*/ +*/ formatConds([],L-L,N-N):- !. @@ -235,7 +235,7 @@ /*======================================================================== Formatting Condition -========================================================================*/ +*/ formatCond(cons([C]),L1-L2,N1-N3):- !, formatDrs(C,Lines,N2), @@ -329,7 +329,7 @@ /*======================================================================== Formatting Complex Conditions -========================================================================*/ +*/ complexCond(imp(Drs1,Drs2), '>' ,Drs1,Drs2). complexCond(or(Drs1,Drs2), 'V' ,Drs1,Drs2). @@ -342,7 +342,7 @@ /*======================================================================== Formatting Constant Relations -========================================================================*/ +*/ specialRel(temp_before, 60):- !. %%% < specialRel(temp_included, 91):- !. %%% [ @@ -355,7 +355,7 @@ /*======================================================================== Formatting Basic Conditions -========================================================================*/ +*/ formatBasic(pred(Arg,Functor,_,_),Line):- !, atom_codes(Functor,F), @@ -404,7 +404,7 @@ /*======================================================================== Combining Lines of Characters (Complex DRS-Conditions) -========================================================================*/ +*/ combLinesConds([A1,B1,C1,D1|Rest1],[A2,B2,C2,D2|Rest2],Result,Op,N1,N2):- combLinesDrs([A1,B1,C1],[A2,B2,C2],Firsts,N1,N2), @@ -415,7 +415,7 @@ /*======================================================================== Add Left Margin -========================================================================*/ +*/ addLeftMargin([],[],_,_):- !. @@ -427,7 +427,7 @@ /*======================================================================== Combining Lines of Characters (Complex DRSs) -========================================================================*/ +*/ combLinesDrs([A1,B1,C1,D1|Rest1],[A2,B2,C2,D2|Rest2],Result,Op,N1,N2):- combLinesDrs([A1,B1,C1],[A2,B2,C2],Firsts,N1,N2), @@ -460,7 +460,7 @@ /*======================================================================== Close Conditions (add '|') -========================================================================*/ +*/ closeConds([],[[124|Bottom]],Width):- !, formatLine(95,Width,[124]-Bottom). @@ -473,7 +473,7 @@ /*======================================================================== Close Line -========================================================================*/ +*/ closeLine(Number,Left,Right,Result):- length(Left,N1), @@ -492,7 +492,7 @@ /*======================================================================== Time Expressions -========================================================================*/ +*/ timex(date(_:Y,_:M,_:D),Timex):- !, timex(date('+',Y,M,D),Timex). Index: src/prolog/boxer/resolveDRT.pl =================================================================== --- src/prolog/boxer/resolveDRT.pl (revision 2527) +++ src/prolog/boxer/resolveDRT.pl (working copy) @@ -11,14 +11,14 @@ /* ======================================================================== Dynamic Predicate -======================================================================== */ +*/ :- dynamic antecedent/2. /* ======================================================================== Managing Gold Standard Antecedents -======================================================================== */ +*/ goldAntecedent(Index,Att):- att(Att,antecedent,Antecedent), @@ -31,7 +31,7 @@ /* ======================================================================== Main predicate: resolveDrs/1 -======================================================================== */ +*/ resolveDrs(B):- option('--resolve',true), !, resolveDRS(B,[]-_,[]-_). resolveDrs(_). @@ -42,7 +42,7 @@ Context is a diffrerence list of pointed DRSs (i.e. a projection path), ordered on recency (closest first). -======================================================================== */ +*/ resolveDRS(sdrs([],_),C-C,P-P):- !. @@ -76,7 +76,7 @@ /* ======================================================================== Resolve Conditions -======================================================================== */ +*/ resolveConds([],_,P-P):- !. @@ -120,7 +120,7 @@ K2:dog(X,Y) K3:male(Y) K1:walks(X) -======================================================================== */ +*/ anaphoric(P:drs(PDom,PCon),F:drs(FDom,FCon),Context,Presups):- member(F:_:_,PDom), \+ P==F, % pick a free pointer (of DRS domain) @@ -133,7 +133,7 @@ /* ======================================================================== Check for bound variable -======================================================================== */ +*/ boundVar(X,P1,Dom):- member(P2:_:Y,Dom), @@ -144,7 +144,7 @@ /* ======================================================================== Check if there are no free variables -======================================================================== */ +*/ noFreeVars([],_,_). @@ -159,7 +159,7 @@ /* ======================================================================== Compute Anaphoric Material -======================================================================== */ +*/ anaphoricSet([],_,[]). anaphoricSet([P:E|L1],F,[P:E|L2]):- P==F, !, anaphoricSet(L1,F,L2). @@ -175,7 +175,7 @@ +Pair of Ingoing and Output List of Presuppositions +List of DRSs (local DRS + context DRS, to check for binding violations) -Accumulator of solution/4) -======================================================================== */ +*/ % No further context DRSs, no presupposed DRSs, but earlier binding % solutions; so pick most probable solution @@ -230,7 +230,7 @@ /* ======================================================================== Best (sorted on score, the lower the better!) -======================================================================== */ +*/ best([Solution|_],Bs,ADRS,P-[ADRS|P]):- Solution = solution(_Score,_,_,free), @@ -267,7 +267,7 @@ -Matching Score, -Matching Type) -======================================================================== */ +*/ match(K1,C1,X,drs([_:_:Y|_],C2),Y,0,bow):- antecedent(I2,AntInd), % there is a gold antecedent @@ -287,7 +287,7 @@ /* ======================================================================== Check for Conflicts -======================================================================== */ +*/ noconflicts(X,_,Y,C2):- %%% resolving should \+ \+ ( X=Y, %%% not result in X=X @@ -298,7 +298,7 @@ /* ======================================================================== Matching (anaphor, antecedent) -======================================================================== */ +*/ % time matching(Y^pred(Y,now,a,1),Z^pred(Z,now,a,1),0.99,a:now). Index: src/prolog/boxer/sdrt.pl =================================================================== --- src/prolog/boxer/sdrt.pl (revision 2527) +++ src/prolog/boxer/sdrt.pl (working copy) @@ -6,7 +6,7 @@ /* ========================================================================= Subordinate SDRT relations -========================================================================= */ + */ subordinate(elaboration). subordinate(instance). @@ -19,7 +19,7 @@ /* ========================================================================= Coordinate SDRT relations -========================================================================= */ + */ coordinate(continuation). coordinate(narration). @@ -29,7 +29,7 @@ /* ========================================================================= Insert DRS into SDRS -========================================================================= */ + */ mergeSDRS(smerge(S1,S2,Rel,_Pops),S3):- subordinate(Rel), !, @@ -42,7 +42,7 @@ /* ========================================================================= Insert subordinate DRS into SDRS -========================================================================= */ + */ % DRS + (S)DRS % @@ -68,7 +68,7 @@ /* ========================================================================= Insert coordinate DRS into SDRS -========================================================================= */ + */ % Make SDRSs of both DRSs (if needed) % Index: src/prolog/boxer/sortalCheck.pl =================================================================== --- src/prolog/boxer/sortalCheck.pl (revision 2527) +++ src/prolog/boxer/sortalCheck.pl (working copy) @@ -8,7 +8,7 @@ /*======================================================================== Sortal Check (main) -========================================================================*/ +*/ sortalCheckDrs(B,Var):- sortalCheckDrs(B,Var,[],P), @@ -17,7 +17,7 @@ /*======================================================================== Sortal Check (DRSs) -========================================================================*/ +*/ sortalCheckDrs(_:drs([],C),Var,P1,P2):- !, sortalCheckConds(C,Var,P1,P2). @@ -40,7 +40,7 @@ /*======================================================================== Sortal Check (DRS-Conditions) -========================================================================*/ +*/ sortalCheckConds([],_,P,P):- !. @@ -116,7 +116,7 @@ /*======================================================================== Consistency Check (all referents) -========================================================================*/ +*/ allconsistent([]):- !. @@ -127,7 +127,7 @@ /*======================================================================== Consistency Check -========================================================================*/ +*/ consistent([]):- !. @@ -140,7 +140,7 @@ /*======================================================================== Add super concepts (by iteration until fixed point is reached) -========================================================================*/ +*/ addSupConcepts(C1,C3):- addSuper(C1,[],C2,Add), addSupConcepts(Add,C2,C3). addSupConcepts([],C1,C2):- !, C2=C1. @@ -149,7 +149,7 @@ /*======================================================================== Add super concepts (one cycle) -========================================================================*/ +*/ addSuper([],L,L,[]). @@ -164,7 +164,7 @@ /*======================================================================== Check for a conflict -========================================================================*/ +*/ conflict(L):- member(X,L), Index: src/prolog/boxer/string2digit.pl =================================================================== --- src/prolog/boxer/string2digit.pl (revision 2527) +++ src/prolog/boxer/string2digit.pl (working copy) @@ -5,7 +5,7 @@ /*======================================================================== Converting strings to digits -========================================================================*/ +*/ string2digit(X,Y):- %%% forty-five ==> 45 atom(X), @@ -49,7 +49,7 @@ /*======================================================================== Converting strings to score -========================================================================*/ +*/ string2score(X,Y):- name(X,[N1|Codes]), @@ -60,7 +60,7 @@ /*======================================================================== Look-up table -========================================================================*/ +*/ s2d(zero,0). s2d(one,1). Index: src/prolog/boxer/transform.pl =================================================================== --- src/prolog/boxer/transform.pl (revision 2527) +++ src/prolog/boxer/transform.pl (working copy) @@ -12,12 +12,12 @@ /* ------------------------------------------------------------------------- - Pre-Processing of CCG derivation to ensure correct format -------------------------------------------------------------------------- */ + Pre-Processing of CCG derivation to ensure correct 'format' +--- */ preprocess(SID,X,Y,Tags,Start,End):- - setTokID(SID,Start,TokID), - trans(X,TokID,Y,End,Tags), !. + must_det(setTokID(SID,Start,TokID)), + must_det(trans(X,TokID,Y,End,Tags)), !. preprocess(SID,_,_,_,_,_):- error('unable to preprocess derivation ~p',[SID]), !, fail. @@ -25,7 +25,7 @@ /* ------------------------------------------------------------------------- Funny (C&C wrongly analysed cases of N coordination) -------------------------------------------------------------------------- */ +--- */ trans(fa(n,X,funny(n,Conj,fa(n,Y,Z))),N1,X2,N3,Tags):- !, trans(fa(n,ba(n/n,X,conj((n/n)\(n/n),n/n,Conj,Y)),Z),N1,X2,N3,Tags). @@ -38,7 +38,7 @@ /* ------------------------------------------------------------------------- Punctuation typechange rules -------------------------------------------------------------------------- */ +--- */ trans(rtc(C,X1,Pu1),N1,ba(C,nil,Att,Str,X2,X3),N3,Tags1-Tags3):- Pu1 =.. [t,_|Cs], !, @@ -61,7 +61,7 @@ /* ------------------------------------------------------------------------- Punctuation rules -------------------------------------------------------------------------- */ +--- */ trans(rp(Cat,X1,Y0),N1,X2,N3,Tags):- Y0 =.. [t,_|L], !, Y1 =.. [t,Cat\Cat|L], @@ -74,7 +74,7 @@ /* ------------------------------------------------------------------------- Application -------------------------------------------------------------------------- */ +--- */ trans(fa(_,X1,Y1), N1, fa(C1,nil,Att,Str,X2,Y2), N3, Tags1-Tags3):- !, trans(X1,N1,X2,N2,Tags1-Tags2), @@ -95,7 +95,7 @@ /* ------------------------------------------------------------------------- Composition -------------------------------------------------------------------------- */ +--- */ trans(fc(_,X1,Y1), N1, fc(C1/C3,nil,Att,Str,X2,Y2), N3, Tags1-Tags3):- !, trans(X1,N1,X2,N2,Tags1-Tags2), @@ -115,7 +115,7 @@ /* ------------------------------------------------------------------------- Generalised Composition -------------------------------------------------------------------------- */ +--- */ trans(gfc(C,N,X1,Y1), N1, gfc(C,N,nil,Att,Str,X2,Y2), N3, Tags1-Tags3):- !, trans(X1,N1,X2,N2,Tags1-Tags2), @@ -132,7 +132,7 @@ /* ------------------------------------------------------------------------- Crossed Composition -------------------------------------------------------------------------- */ +--- */ trans(bxc(_,X1,Y1), N1, bxc(C3/C1,nil,Att,Str,X2,Y2), N3, Tags1-Tags3):- !, trans(X1,N1,X2,N2,Tags1-Tags2), @@ -151,7 +151,7 @@ /* ------------------------------------------------------------------------- Generalised Crossed Composition -------------------------------------------------------------------------- */ +--- */ trans(gfxc(C,N,X1,Y1), N1, gfxc(C,N,nil,Att,Str,X2,Y2), N3, Tags1-Tags3):- !, trans(X1,N1,X2,N2,Tags1-Tags2), @@ -168,7 +168,7 @@ /* ------------------------------------------------------------------------- Conjuction (Coordination) -------------------------------------------------------------------------- */ +--- */ %trans(conj(np:nb\np:nb,np:nb,X1,Y1), N1, conj(np\np,np,nil,Att,X2,Y2), N3, Tags1-Tags3):- % X1 =.. [t,conj|Cs], !, @@ -213,7 +213,7 @@ /* ------------------------------------------------------------------------- Unary Rules: Type Changing -------------------------------------------------------------------------- */ +--- */ trans(lx(C,D,X),N1,T,N2,Tags):- !, trans(tc(C,D,X),N1,T,N2,Tags). @@ -227,7 +227,7 @@ /* ------------------------------------------------------------------------- Unary Rules: Type Raising -------------------------------------------------------------------------- */ +--- */ trans(tr(C1/(C1\C2),X1), N1, ftr(C1/(C1\C2),C2,nil,Att,Str,X2), N2, Tags):- !, trans(X1,N1,X2,N2,Tags), @@ -244,7 +244,7 @@ /* ------------------------------------------------------------------------- Substitution -------------------------------------------------------------------------- */ +--- */ trans(fs(C,X1,Y1), N1, fs(C,nil,Att,Str,X2,Y2), N3, Tags1-Tags3):- !, trans(X1,N1,X2,N2,Tags1-Tags2), @@ -273,7 +273,7 @@ /* ------------------------------------------------------------------------- Token (repair rules -- systematically wrong output of C&C parser) -------------------------------------------------------------------------- */ +--- */ trans(t(A,B,people,C,D,E),N,Tok,M,Tags):- option('--x',true), !, @@ -300,7 +300,7 @@ /* ------------------------------------------------------------------------- Token -------------------------------------------------------------------------- */ +--- */ % new input version (t/4 terms) trans(t(Cat1,Tok,Pos,Tags),N,t(Cat2,Tok,nil,[pos:Pos|Tags],N),M,T1-T2):- @@ -318,14 +318,14 @@ /* ========================================================================= String Formation -========================================================================= */ + */ strings(D1,D2,W):- topstr(D1,W1), topstr(D2,W2), append(W1,W2,W). /* ========================================================================= External Context Information (for now only Word Sense Disambiguation) -========================================================================= */ + */ context(Number,Sense):- number(Number), !, Sense = [sense:Number]. context(_,Sense):- Sense = []. @@ -333,7 +333,7 @@ /* ========================================================================= Determine Feature on N -========================================================================= */ + */ featureN('NNPS', nam):- !. featureN('NNP', nam):- !. @@ -344,7 +344,7 @@ /* ========================================================================= Adjust features (mostly bugs in C&C parser) -========================================================================= */ + */ adjustFeatures(conj/conj, conj:X/conj:X):- !. @@ -371,7 +371,7 @@ /* ========================================================================= Adjust features -========================================================================= */ + */ adjustFeatures(F1/A1,F2/A2):- !, adjustFeatures(F1,F2), @@ -386,24 +386,26 @@ /* ========================================================================= Adding Info -========================================================================= */ + */ tags(T,ID,Tags,[ID:Tags|T]). /* ========================================================================= Get top categorie, semantics or attributes from a derivation -========================================================================= */ + */ +must_det(G):- G,!. +must_det(G):-trace,G. -topcat(Der,Cat):- top(Der,Cat,_,_,_), !. -topsem(Der,Sem):- top(Der,_,Sem,_,_), !. -topatt(Der,Att):- top(Der,_,_,Att,_), !. -topstr(Der,Str):- top(Der,_,_,_,Str), !. +topcat(Der,Cat):- (top(Der,Cat,_,_,_)), !. +topsem(Der,Sem):- (top(Der,_,Sem,_,_)), !. +topatt(Der,Att):- (top(Der,_,_,Att,_)), !. +topstr(Der,Str):- (top(Der,_,_,_,Str)), !. /* ========================================================================= Top categorie, semantics or attributes from a derivation -========================================================================= */ + */ top(fa(C,S,A,W,_,_),C,S,A,W). top(ba(C,S,A,W,_,_),C,S,A,W). @@ -434,7 +436,7 @@ /* ------------------------------------------------------------------------- Take attributes from head -------------------------------------------------------------------------- */ +--- */ headAtt(D1,D2,Att):- topcat(D1,C/C), !, topatt(D2,Att). headAtt(D1,D2,Att):- topcat(D2,C\C), !, topatt(D1,Att). @@ -443,7 +445,7 @@ /* ------------------------------------------------------------------------- Set Token-ID -------------------------------------------------------------------------- */ +--- */ setTokID(_,Start,Start):- option('--tokid',global), !. Index: src/prolog/boxer/tuples.pl =================================================================== --- src/prolog/boxer/tuples.pl (revision 2527) +++ src/prolog/boxer/tuples.pl (working copy) @@ -474,7 +474,7 @@ /* ======================================================================= - Convert words in tuple format + Convert words in tuple 'format' ======================================================================= */ word([],_,_,[]):- !. @@ -491,9 +491,9 @@ write_tuples([tuple(_Index,Order,Node1,Edge,Node2,Words)|L],Stream):- !, write_node(Node1,Stream), - format(Stream,' ~w ',[Edge]), + 'format'(Stream,' ~w ',[Edge]), write_node(Node2,Stream), - format(Stream,' ~w [ ',[Order]), + 'format'(Stream,' ~w [ ',[Order]), write_tokens(Words,Stream), write_tuples(L,Stream). @@ -507,15 +507,15 @@ ======================================================================= */ write_tokens([],Stream):- !, write(Stream,']'), nl(Stream). -write_tokens([X|L],Stream):- format(Stream,'~w ',[X]), write_tokens(L,Stream). +write_tokens([X|L],Stream):- 'format'(Stream,'~w ',[X]), write_tokens(L,Stream). /* ======================================================================= Output nodes to stream ======================================================================= */ -write_node(A:B,Stream):- !, format(Stream,'~w:',[A]), write_node(B,Stream). -write_node(A,Stream):- format(Stream,'~w',[A]). +write_node(A:B,Stream):- !, 'format'(Stream,'~w:',[A]), write_node(B,Stream). +write_node(A,Stream):- 'format'(Stream,'~w',[A]). /* ======================================================================= Index: src/prolog/boxer/typechange.pl =================================================================== --- src/prolog/boxer/typechange.pl (revision 2527) +++ src/prolog/boxer/typechange.pl (working copy) @@ -23,7 +23,7 @@ rule corresponds to ellipsis. In the comments below, the elided phrases are indicated by square brackets. -------------------------------------------------------------------------- */ +--- */ % Ex: a company [that is] based in ... % @@ -129,7 +129,7 @@ /* ------------------------------------------------------------------------- Type Change (old rules, might need revision) -------------------------------------------------------------------------- */ +--- */ typechange((s:dcl/s:dcl),Sem,_, (s:X/s:X),Sem):- !. typechange((s:dcl\s:dcl),Sem,_, (s:X/s:X),Sem):- !. @@ -147,7 +147,7 @@ /* ------------------------------------------------------------------------- Print warning message if no type-changing rules are found -------------------------------------------------------------------------- */ +--- */ typechange(Cat1,_,_,Cat2,_):- warning('no type changing rule for ~p --> ~p',[Cat1,Cat2]), Index: src/prolog/boxer/xdrs2html.pl =================================================================== --- src/prolog/boxer/xdrs2html.pl (revision 2527) +++ src/prolog/boxer/xdrs2html.pl (working copy) @@ -9,7 +9,7 @@ /*======================================================================== Converting DRSs to XML -========================================================================*/ +*/ drs2html(DRS,Stream):- drs2html(DRS,Stream,3). @@ -30,49 +30,49 @@ /*======================================================================== Converting DRSs to XML (with tab insertion) -========================================================================*/ +*/ drs2html(drs(D,C),Stream,Tab):- - tab(Stream,Tab), format(Stream,'~n',[]), - tab(Stream,Tab), format(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'
~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]), - tab(Stream,Tab), format(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]), - tab(Stream,Tab), format(Stream,'
~n',[]), NewTab is Tab + 2, dom2html(D,Stream,NewTab), - tab(Stream,Tab), format(Stream,'
~n',[]), + tab(Stream,Tab), 'format'(Stream,'
~n',[]), conds2html(C,Stream,NewTab), - tab(Stream,Tab), format(Stream,'
~n',[]). + tab(Stream,Tab), 'format'(Stream,'
~n',[]). drs2html(alfa(_Type,B1,B2),Stream,Tab):- !, NewTab is Tab + 1, - tab(Stream,Tab), format(Stream,'
(',[]), + tab(Stream,Tab), 'format'(Stream,'
(',[]), drs2html(B1,Stream,NewTab), - tab(Stream,Tab), format(Stream,'α',[]), + tab(Stream,Tab), 'format'(Stream,'α',[]), drs2html(B2,Stream,NewTab), - tab(Stream,Tab), format(Stream,')
~n',[]). + tab(Stream,Tab), 'format'(Stream,'
)
~n',[]). drs2html(merge(B1,B2),Stream,Tab):- !, NewTab is Tab + 1, - tab(Stream,Tab), format(Stream,'
(',[]), + tab(Stream,Tab), 'format'(Stream,'
(',[]), drs2html(B1,Stream,NewTab), - tab(Stream,Tab), format(Stream,';',[]), + tab(Stream,Tab), 'format'(Stream,';',[]), drs2html(B2,Stream,NewTab), - tab(Stream,Tab), format(Stream,')
~n',[]). + tab(Stream,Tab), 'format'(Stream,'
)
~n',[]). /*======================================================================== Converting DRS-domains to XML (with tab insertion) -========================================================================*/ +*/ dom2html([],_,_). dom2html([_Index:X|L],Stream,Tab):- !, tab(Stream,Tab), -% format(Stream,'~n',[X]), - format(Stream,'~p~n',[X]), +% 'format'(Stream,'~n',[X]), + 'format'(Stream,'~p~n',[X]), % index2html(Index,Stream,Tab), % tab(Stream,Tab), -% format(Stream,'~n',[]), +% 'format'(Stream,'~n',[]), dom2html(L,Stream,Tab). dom2html([X|L],Stream,Tab):- @@ -86,60 +86,60 @@ /*======================================================================== Converting DRS-conditions to XML (with tab insertion) -========================================================================*/ +*/ conds2html([],_,_). conds2html([_Index:not(B)|L],Stream,Tab):- !, - tab(Stream,Tab), format(Stream,'
¬~n',[]), + tab(Stream,Tab), 'format'(Stream,'
¬~n',[]), % index2html(Index,Stream,Tab), NewTab is Tab + 1, drs2html(B,Stream,NewTab), - tab(Stream,Tab), format(Stream,'
~n',[]), + tab(Stream,Tab), 'format'(Stream,'
~n',[]), conds2html(L,Stream,Tab). conds2html([_Index:nec(B)|L],Stream,Tab):- !, - tab(Stream,Tab), format(Stream,'
[]~n',[]), + tab(Stream,Tab), 'format'(Stream,'
[]~n',[]), % index2html(Index,Stream,Tab), NewTab is Tab + 1, drs2html(B,Stream,NewTab), - tab(Stream,Tab), format(Stream,'
~n',[]), + tab(Stream,Tab), 'format'(Stream,'
~n',[]), conds2html(L,Stream,Tab). conds2html([_Index:pos(B)|L],Stream,Tab):- !, - tab(Stream,Tab), format(Stream,'
~n',[]), + tab(Stream,Tab), 'format'(Stream,'
~n',[]), % index2html(Index,Stream,Tab), NewTab is Tab + 1, drs2html(B,Stream,NewTab), - tab(Stream,Tab), format(Stream,'
~n',[]), + tab(Stream,Tab), 'format'(Stream,'
~n',[]), conds2html(L,Stream,Tab). conds2html([_Index:prop(X,B)|L],Stream,Tab):- !, - tab(Stream,Tab), format(Stream,'
~p:~n',[X]), + tab(Stream,Tab), 'format'(Stream,'
~p:~n',[X]), % index2html(Index,Stream,Tab), NewTab is Tab + 1, drs2html(B,Stream,NewTab), - tab(Stream,Tab), format(Stream,'
~n',[]), + tab(Stream,Tab), 'format'(Stream,'
~n',[]), conds2html(L,Stream,Tab). conds2html([_Index:or(B1,B2)|L],Stream,Tab):- !, NewTab is Tab + 1, - tab(Stream,Tab), format(Stream,'
~n',[]), + tab(Stream,Tab), 'format'(Stream,'
~n',[]), % index2html(Index,Stream,Tab), drs2html(B1,Stream,NewTab), - tab(Stream,Tab), format(Stream,'V~n',[]), + tab(Stream,Tab), 'format'(Stream,'V~n',[]), drs2html(B2,Stream,NewTab), - tab(Stream,Tab), format(Stream,'
~n',[]), + tab(Stream,Tab), 'format'(Stream,'
~n',[]), conds2html(L,Stream,Tab). conds2html([_Index:imp(B1,B2)|L],Stream,Tab):- !, NewTab is Tab + 1, - tab(Stream,Tab), format(Stream,'
~n',[]), + tab(Stream,Tab), 'format'(Stream,'
~n',[]), % index2html(Index,Stream,Tab), drs2html(B1,Stream,NewTab), - tab(Stream,Tab), format(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]), drs2html(B2,Stream,NewTab), - tab(Stream,Tab), format(Stream,'
~n',[]), + tab(Stream,Tab), 'format'(Stream,'
~n',[]), conds2html(L,Stream,Tab). conds2html([Index:duplex(_,B1,_,B2)|L],Stream,Tab):- !, @@ -148,55 +148,55 @@ conds2html([_Index:pred(Arg,X,_Type,_Sense)|L],Stream,Tab):- !, tab(Stream,Tab), symbol(X,Y), - format(Stream,'~w(~p)
~n',[Y,Arg]), + 'format'(Stream,'~w(~p)
~n',[Y,Arg]), % index2html(Index,Stream,Tab), conds2html(L,Stream,Tab). conds2html([_Index:rel(Arg1,Arg2,X,_Sense)|L],Stream,Tab):- !, tab(Stream,Tab), symbol(X,Y), - format(Stream,'~w(~p,~p)
~n',[Y,Arg1,Arg2]), + 'format'(Stream,'~w(~p,~p)
~n',[Y,Arg1,Arg2]), % index2html(Index,Stream,Tab), conds2html(L,Stream,Tab). conds2html([_Index:role(Arg1,Arg2,X,1)|L],Stream,Tab):- !, tab(Stream,Tab), symbol(X,Y), - format(Stream,'~w(~p,~p)
~n',[Y,Arg1,Arg2]), + 'format'(Stream,'~w(~p,~p)
~n',[Y,Arg1,Arg2]), % index2html(Index,Stream,Tab), conds2html(L,Stream,Tab). conds2html([_Index:role(Arg1,Arg2,X,-1)|L],Stream,Tab):- !, tab(Stream,Tab), symbol(X,Y), - format(Stream,'~w(~p,~p)
~n',[Y,Arg2,Arg1]), + 'format'(Stream,'~w(~p,~p)
~n',[Y,Arg2,Arg1]), % index2html(Index,Stream,Tab), conds2html(L,Stream,Tab). conds2html([_Index:named(Arg,X,Type,_)|L],Stream,Tab):- !, tab(Stream,Tab), symbol(X,Y), - format(Stream,'named(~w,~p,~p)
~n',[Y,Arg,Type]), + 'format'(Stream,'named(~w,~p,~p)
~n',[Y,Arg,Type]), % index2html(Index,Stream,Tab), conds2html(L,Stream,Tab). conds2html([_Index:card(X,Y,_Type)|L],Stream,Tab):- !, tab(Stream,Tab), - format(Stream,'|~p| = ~p
~n',[X,Y]), + 'format'(Stream,'|~p| = ~p
~n',[X,Y]), % index2html(Index,Stream,Tab), conds2html(L,Stream,Tab). conds2html([_Index:timex(X,Y)|L],Stream,Tab):- !, tab(Stream,Tab), % index2html(Index,Stream,Tab), - format(Stream,'timex(~p,',[X]), + 'format'(Stream,'timex(~p,',[X]), timex2html(Y,Stream), - format(Stream,')
~n',[]), + 'format'(Stream,')
~n',[]), conds2html(L,Stream,Tab). conds2html([_Index:eq(X,Y)|L],Stream,Tab):- !, tab(Stream,Tab), - format(Stream,'~p=~p
~n',[X,Y]), + 'format'(Stream,'~p=~p
~n',[X,Y]), % index2html(Index,Stream,Tab), conds2html(L,Stream,Tab). @@ -211,163 +211,163 @@ /*======================================================================== Timex -========================================================================*/ +*/ timex2html(date(_:A,_:B,_:C),Stream):- !, - format(Stream,'~w~w~w',[A,B,C]). + 'format'(Stream,'~w~w~w',[A,B,C]). timex2html(date(_:Z,_:A,_:B,_:C),Stream):- !, - format(Stream,'~w~w~w~w',[Z,A,B,C]). + 'format'(Stream,'~w~w~w~w',[Z,A,B,C]). timex2html(time(_:A,_:B,_:C),Stream):- !, - format(Stream,'~w~w~w',[A,B,C]). + 'format'(Stream,'~w~w~w',[A,B,C]). timex2html(X,Stream):- !, - format(Stream,'timex',[X]). + 'format'(Stream,'timex',[X]). /*======================================================================== Words -========================================================================*/ +*/ words2html([],_). words2html([word(Index,Word)|L],Stream):- symbol(Word,Word1), - format(Stream,' ~w~n',[Index,Word1]), + 'format'(Stream,' ~w~n',[Index,Word1]), words2html(L,Stream). /*======================================================================== POS tags -========================================================================*/ +*/ tags2html([],_). tags2html([pos(Index,POS)|L],Stream):- - format(Stream,' ~w~n',[Index,POS]), + 'format'(Stream,' ~w~n',[Index,POS]), tags2html(L,Stream). tags2html([ne(Index,NE)|L],Stream):- - format(Stream,' ~w~n',[Index,NE]), + 'format'(Stream,' ~w~n',[Index,NE]), tags2html(L,Stream). /*======================================================================== Flat DRSs -========================================================================*/ +*/ cons2html([],_). cons2html([Label:alfa(Type,L1,L2)|Cons],Stream):- !, - format(Stream,' ~n',[Label,Type,L1,L2]), + 'format'(Stream,' ~n',[Label,Type,L1,L2]), cons2html(Cons,Stream). cons2html([Label:merge(L1,L2)|Cons],Stream):- !, - format(Stream,' ~n',[Label,L1,L2]), + 'format'(Stream,' ~n',[Label,L1,L2]), cons2html(Cons,Stream). cons2html([Label:drs(D,Labels)|Cons],Stream):- !, - format(Stream,' ~n',[Label]), + 'format'(Stream,' ~n',[Label]), dom2html(D,Stream,3), labels2html(Labels,Stream), - format(Stream,' ~n',[]), + 'format'(Stream,' ~n',[]), cons2html(Cons,Stream). cons2html([Label:Index:named(Arg,X,Type,_)|Cons],Stream):- !, symbol(X,Y), - format(Stream,' ~n',[Label,Arg,Y,Type]), + 'format'(Stream,' ~n',[Label,Arg,Y,Type]), index2html(Index,Stream,2), - format(Stream,' ~n',[]), + 'format'(Stream,' ~n',[]), cons2html(Cons,Stream). cons2html([Label:Index:pred(Arg,X,Type,Sense)|Cons],Stream):- !, symbol(X,Y), - format(Stream,' ~n',[Label,Arg,Y,Type,Sense]), + 'format'(Stream,' ~n',[Label,Arg,Y,Type,Sense]), index2html(Index,Stream,2), - format(Stream,' ~n',[]), + 'format'(Stream,' ~n',[]), cons2html(Cons,Stream). cons2html([Label:Index:rel(Arg1,Arg2,X,Sense)|Cons],Stream):- !, symbol(X,Y), - format(Stream,' ~n',[Label,Arg1,Arg2,Y,Sense]), + 'format'(Stream,' ~n',[Label,Arg1,Arg2,Y,Sense]), index2html(Index,Stream,2), - format(Stream,' ~n',[]), + 'format'(Stream,' ~n',[]), cons2html(Cons,Stream). cons2html([Label:Index:role(Arg1,Arg2,X,1)|Cons],Stream):- !, symbol(X,Y), - format(Stream,' ~n',[Label,Arg1,Arg2,Y,1]), + 'format'(Stream,' ~n',[Label,Arg1,Arg2,Y,1]), index2html(Index,Stream,2), - format(Stream,' ~n',[]), + 'format'(Stream,' ~n',[]), cons2html(Cons,Stream). cons2html([Label:Index:role(Arg2,Arg2,1,-1)|Cons],Stream):- !, symbol(X,Y), - format(Stream,' ~n',[Label,Arg1,Arg2,Y,1]), + 'format'(Stream,' ~n',[Label,Arg1,Arg2,Y,1]), index2html(Index,Stream,2), - format(Stream,' ~n',[]), + 'format'(Stream,' ~n',[]), cons2html(Cons,Stream). cons2html([Label:Index:card(X,Y,Type)|Cons],Stream):- !, - format(Stream,' ~n',[Label,X,Y,Type]), + 'format'(Stream,' ~n',[Label,X,Y,Type]), index2html(Index,Stream,2), - format(Stream,' ~n',[]), + 'format'(Stream,' ~n',[]), cons2html(Cons,Stream). cons2html([Label:Index:timex(X,Y)|Cons],Stream):- !, - format(Stream,' ~n',[Label,X]), + 'format'(Stream,' ~n',[Label,X]), timex2html(Y,Stream), index2html(Index,Stream,2), - format(Stream,' ~n',[]), + 'format'(Stream,' ~n',[]), cons2html(Cons,Stream). cons2html([Label:Index:eq(X,Y)|Cons],Stream):- !, - format(Stream,' ~n',[Label,X,Y]), + 'format'(Stream,' ~n',[Label,X,Y]), index2html(Index,Stream,2), - format(Stream,' ~n',[]), + 'format'(Stream,' ~n',[]), cons2html(Cons,Stream). cons2html([Label:Index:not(L)|Cons],Stream):- !, - format(Stream,' ~n',[Label]), - format(Stream,' ~n',[L]), + 'format'(Stream,' ~n',[Label]), + 'format'(Stream,' ~n',[L]), index2html(Index,Stream,2), - format(Stream,' ~n',[]), + 'format'(Stream,' ~n',[]), cons2html(Cons,Stream). cons2html([Label:Index:nec(L)|Cons],Stream):- !, - format(Stream,' ~n',[Label]), - format(Stream,' ~n',[L]), + 'format'(Stream,' ~n',[Label]), + 'format'(Stream,' ~n',[L]), index2html(Index,Stream,2), - format(Stream,' ~n',[]), + 'format'(Stream,' ~n',[]), cons2html(Cons,Stream). cons2html([Label:Index:pos(L)|Cons],Stream):- !, - format(Stream,' ~n',[Label]), - format(Stream,' ~n',[L]), + 'format'(Stream,' ~n',[Label]), + 'format'(Stream,' ~n',[L]), index2html(Index,Stream,2), - format(Stream,' ~n',[]), + 'format'(Stream,' ~n',[]), cons2html(Cons,Stream). cons2html([Label:Index:prop(X,L)|Cons],Stream):- !, - format(Stream,' ~n',[Label,X]), - format(Stream,' ~n',[L]), + 'format'(Stream,' ~n',[Label,X]), + 'format'(Stream,' ~n',[L]), index2html(Index,Stream,2), - format(Stream,' ~n',[]), + 'format'(Stream,' ~n',[]), cons2html(Cons,Stream). cons2html([Label:Index:or(L1,L2)|Cons],Stream):- !, - format(Stream,' ~n',[Label]), - format(Stream,' ~n ~n',[L1,L2]), + 'format'(Stream,' ~n',[Label]), + 'format'(Stream,' ~n ~n',[L1,L2]), index2html(Index,Stream,2), - format(Stream,' ~n',[]), + 'format'(Stream,' ~n',[]), cons2html(Cons,Stream). cons2html([Label:Index:imp(L1,L2)|Cons],Stream):- !, - format(Stream,' ~n',[Label]), - format(Stream,' ~n ~n',[L1,L2]), + 'format'(Stream,' ~n',[Label]), + 'format'(Stream,' ~n ~n',[L1,L2]), index2html(Index,Stream,2), - format(Stream,' ~n',[]), + 'format'(Stream,' ~n',[]), cons2html(Cons,Stream). cons2html([Label:Index:duplex(_,L1,_,L2)|Cons],Stream):- !, @@ -376,18 +376,18 @@ /*======================================================================== Labels -========================================================================*/ +*/ labels2html([],_). labels2html([Label|L],Stream):- - format(Stream,' ~n',[Label]), + 'format'(Stream,' ~n',[Label]), labels2html(L,Stream). /*======================================================================== Indexes -========================================================================*/ +*/ index2html([],_,_):- !. @@ -395,7 +395,7 @@ number(X), !, Pos is mod(X,1000), tab(Stream,Tab), - format(Stream,'i~p~n',[Pos,X]), + 'format'(Stream,'i~p~n',[Pos,X]), index2html(L,Stream,Tab). index2html([_|L],Stream,Tab):- @@ -404,7 +404,7 @@ /*======================================================================== Deal with special symbols -========================================================================*/ +*/ symbol(S1,S2):- name(S1,C1), Index: src/prolog/boxer/xdrs2xml.pl =================================================================== --- src/prolog/boxer/xdrs2xml.pl (revision 2527) +++ src/prolog/boxer/xdrs2xml.pl (working copy) @@ -12,14 +12,14 @@ /*======================================================================== Converting DRSs to XML -========================================================================*/ +*/ drs2xml(DRS,Stream):- drs2xml(DRS,Stream,1,[]). der2xml(Der,I,Stream):- - format(Stream,' ~n',[I]), + 'format'(Stream,' ~n',[I]), deri2xml(Der,Stream,2), - format(Stream,' ~n',[]). + 'format'(Stream,' ~n',[]). xdrs2xml(XDRS,Stream):- XDRS=xdrs(Tags,DRS), @@ -31,24 +31,24 @@ /*======================================================================== Converting CCG derivation to XML (with tab insertion) -========================================================================*/ +*/ deri2xml(t(Cat,Token,Sem,Att,Index),Stream,Tab):- !, - tab(Stream,Tab), format(Stream,'~n',[Index]), + tab(Stream,Tab), 'format'(Stream,'~n',[Index]), NewTab is Tab + 2, symbol(Token,NiceToken), - tab(Stream,Tab), format(Stream,' ~p~n',[NiceToken]), + tab(Stream,Tab), 'format'(Stream,' ~p~n',[NiceToken]), tags2xml(Att,Stream,Tab), - tab(Stream,Tab), format(Stream,' ~n',[]), + tab(Stream,Tab), 'format'(Stream,' ~n',[]), numbervars(Cat,23,_), cat2xml(Cat,Stream,NewTab), - tab(Stream,Tab), format(Stream,' ~n',[]), - tab(Stream,Tab), format(Stream,' ~n',[]), + tab(Stream,Tab), 'format'(Stream,' ~n',[]), + tab(Stream,Tab), 'format'(Stream,' ~n',[]), betaConvert(Sem,Red), \+ \+ (instDrs(Red), drs2xml(Red,Stream,NewTab,[])), - tab(Stream,Tab), format(Stream,' ~n',[]), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,Tab), 'format'(Stream,' ~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]). deri2xml(Der,Stream,Tab):- Der =.. [Rule,Cat,_,Sem,_,Tokens,Under], @@ -56,146 +56,146 @@ NewTab is Tab + 1, NextTab is Tab + 1, tab(Stream,Tab), urule2xml(Stream,Rule), - tab(Stream,Tab), format(Stream,' ~n',[]), + tab(Stream,Tab), 'format'(Stream,' ~n',[]), numbervars(Cat,23,_), cat2xml(Cat,Stream,NewTab), - tab(Stream,Tab), format(Stream,' ~n',[]), - tab(Stream,Tab), format(Stream,' ~n',[]), + tab(Stream,Tab), 'format'(Stream,' ~n',[]), + tab(Stream,Tab), 'format'(Stream,' ~n',[]), betaConvert(Sem,Red), \+ \+ (instDrs(Red), drs2xml(Red,Stream,NewTab,[])), - tab(Stream,Tab), format(Stream,' ~n',[]), + tab(Stream,Tab), 'format'(Stream,' ~n',[]), deri2xml(Under,Stream,NewTab), - tab(Stream,NewTab), format(Stream,'~n',[]), + tab(Stream,NewTab), 'format'(Stream,'~n',[]), tokens2xml(Tokens,NextTab,Stream), - tab(Stream,NewTab), format(Stream,'~n',[]), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,NewTab), 'format'(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]). deri2xml(Der,Stream,Tab):- Der =.. [conj,Cat,_,Sem,_,Tokens,Left,Right], !, NewTab is Tab + 1, NextTab is Tab + 2, tab(Stream,Tab), brule2xml(Stream,conj), - tab(Stream,NewTab), format(Stream,'~n',[]), + tab(Stream,NewTab), 'format'(Stream,'~n',[]), numbervars(Cat,23,_), cat2xml(Cat,Stream,NextTab), - tab(Stream,NewTab), format(Stream,'~n',[]), - tab(Stream,NewTab), format(Stream,'~n',[]), + tab(Stream,NewTab), 'format'(Stream,'~n',[]), + tab(Stream,NewTab), 'format'(Stream,'~n',[]), betaConvert(Sem,Red), \+ \+ (instDrs(Red), drs2xml(Red,Stream,NewTab,[])), - tab(Stream,NewTab), format(Stream,'~n',[]), + tab(Stream,NewTab), 'format'(Stream,'~n',[]), deri2xml(Left,Stream,NewTab), deri2xml(Right,Stream,NewTab), - tab(Stream,NewTab), format(Stream,'~n',[]), + tab(Stream,NewTab), 'format'(Stream,'~n',[]), tokens2xml(Tokens,NextTab,Stream), - tab(Stream,NewTab), format(Stream,'~n',[]), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,NewTab), 'format'(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]). deri2xml(Der,Stream,Tab):- Der =.. [Rule,Cat,Sem,_,Tokens,Left,Right], !, NewTab is Tab + 1, NextTab is Tab + 2, tab(Stream,Tab), brule2xml(Stream,Rule), - tab(Stream,NewTab), format(Stream,'~n',[]), + tab(Stream,NewTab), 'format'(Stream,'~n',[]), numbervars(Cat,23,_), cat2xml(Cat,Stream,NextTab), - tab(Stream,NewTab), format(Stream,'~n',[]), - tab(Stream,NewTab), format(Stream,'~n',[]), + tab(Stream,NewTab), 'format'(Stream,'~n',[]), + tab(Stream,NewTab), 'format'(Stream,'~n',[]), betaConvert(Sem,Red1), alphaConvertDRS(Red1,Red), % needed for functions introduced by NN compounds... \+ \+ (instDrs(Red), drs2xml(Red,Stream,NewTab,[])), - tab(Stream,NewTab), format(Stream,'~n',[]), + tab(Stream,NewTab), 'format'(Stream,'~n',[]), deri2xml(Left,Stream,NewTab), deri2xml(Right,Stream,NewTab), - tab(Stream,NewTab), format(Stream,'~n',[]), + tab(Stream,NewTab), 'format'(Stream,'~n',[]), tokens2xml(Tokens,NextTab,Stream), - tab(Stream,NewTab), format(Stream,'~n',[]), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,NewTab), 'format'(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]). deri2xml(_,_,_). /*======================================================================== Producing CCG unary rules in XML -========================================================================*/ +*/ urule2xml(Stream,ftr):- !, - format(Stream,'~n',[]). + 'format'(Stream,'~n',[]). urule2xml(Stream,btr):- !, - format(Stream,'~n',[]). + 'format'(Stream,'~n',[]). urule2xml(Stream,tc):- !, - format(Stream,'~n',[]). + 'format'(Stream,'~n',[]). urule2xml(Stream,Type):- - format(Stream,'~n',[Type]). + 'format'(Stream,'~n',[Type]). /*======================================================================== Producing CCG binary rules in XML -========================================================================*/ +*/ brule2xml(Stream,Type):- Type = fa, !, - format(Stream,'~n',[Type]). + 'format'(Stream,'~n',[Type]). brule2xml(Stream,Type):- Type = ba, !, - format(Stream,'~n',[Type]). + 'format'(Stream,'~n',[Type]). brule2xml(Stream,Type):- member(Type,[fc,gfc]), !, - format(Stream,'~n',[Type]). + 'format'(Stream,'~n',[Type]). brule2xml(Stream,Type):- member(Type,[bc,gbc]), !, - format(Stream,'~n',[Type]). + 'format'(Stream,'~n',[Type]). brule2xml(Stream,Type):- member(Type,[fxc,gfxc]), !, - format(Stream,'~n',[Type]). + 'format'(Stream,'~n',[Type]). brule2xml(Stream,Type):- member(Type,[bxc,gbxc]), !, - format(Stream,'~n',[Type]). + 'format'(Stream,'~n',[Type]). brule2xml(Stream,Type):- Type = fxs, !, - format(Stream,'~n',[Type]). + 'format'(Stream,'~n',[Type]). brule2xml(Stream,Type):- Type = bxs, !, - format(Stream,'~n',[Type]). + 'format'(Stream,'~n',[Type]). brule2xml(Stream,Type):- Type = fs, !, - format(Stream,'~n',[Type]). + 'format'(Stream,'~n',[Type]). brule2xml(Stream,Type):- Type = bs, !, - format(Stream,'~n',[Type]). + 'format'(Stream,'~n',[Type]). brule2xml(Stream,Type):- Type = conj, !, - format(Stream,'~n',[]). + 'format'(Stream,'~n',[]). brule2xml(Stream,Type):- - format(Stream,'~n',[Type]). + 'format'(Stream,'~n',[Type]). /*======================================================================== Converting CCG categories to XML (with tab insertion) -========================================================================*/ +*/ cat2xml(Cat,Stream,Tab):- var(Cat), !, - tab(Stream,Tab), format(Stream,' ~p~n',[Cat]). + tab(Stream,Tab), 'format'(Stream,' ~p~n',[Cat]). cat2xml('/'(L,R),Stream,Tab):- !, - tab(Stream,Tab), format(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]), NewTab is Tab + 1, cat2xml(L,Stream,NewTab), cat2xml(R,Stream,NewTab), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,Tab), 'format'(Stream,'~n',[]). cat2xml('\\'(L,R),Stream,Tab):- !, - tab(Stream,Tab), format(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]), NewTab is Tab + 1, cat2xml(L,Stream,NewTab), cat2xml(R,Stream,NewTab), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,Tab), 'format'(Stream,'~n',[]). cat2xml(Cat:_,Stream,Tab):- member(Cat,[n,conj]), !, %%% Do not output features on N, conj @@ -204,22 +204,22 @@ cat2xml(Cat:Feature,Stream,Tab):- atom(Cat), !, upcase_atom(Cat,Up), - tab(Stream,Tab), format(Stream,' ~p~n',[Up]). + 'format'(Stream,'">~p~n',[Up]). cat2xml(Cat,Stream,Tab):- member(Cat:New,[conj:conj,comma:',',semi:';']), !, - tab(Stream,Tab), format(Stream,' ~p~n',[New]). + tab(Stream,Tab), 'format'(Stream,' ~p~n',[New]). cat2xml(Cat,Stream,Tab):- !, upcase_atom(Cat,Up), - tab(Stream,Tab), format(Stream,' ~p~n',[Up]). + tab(Stream,Tab), 'format'(Stream,' ~p~n',[Up]). /*======================================================================== Guess Sentence ID (a bit of a hack, obviously!) -========================================================================*/ +*/ getIDs(L:drs([_:I1:_|Dom],Conds),I3):- append(I1,I2,I3), getIDs(L:drs(Dom,Conds),I2). getIDs(_:drs([],Conds),I):- getIDs(Conds,I). @@ -239,19 +239,19 @@ /*======================================================================== Converting DRSs to XML (with tab insertion) -========================================================================*/ +*/ drs2xml(Var,Stream,Tab,_):- var(Var), !, - tab(Stream,Tab), format(Stream,'~p~n',Var). + tab(Stream,Tab), 'format'(Stream,'~p~n',Var). drs2xml(Var,Stream,Tab,_):- atom(Var), !, - tab(Stream,Tab), format(Stream,'~p~n',Var). + tab(Stream,Tab), 'format'(Stream,'~p~n',Var). drs2xml(Var,Stream,Tab,_):- Var =.. ['$VAR',_], !, - tab(Stream,Tab), format(Stream,'~p~n',Var). + tab(Stream,Tab), 'format'(Stream,'~p~n',Var). drs2xml(drs(D,C),Stream,Tab,Words):- !, drs2xml(l:drs(D,C),Stream,Tab,Words). @@ -259,72 +259,72 @@ drs2xml(Label:drs(D,C),Stream,Tab,[]):- !, NewTab is Tab + 1, NextTab is Tab + 2, - tab(Stream,Tab), format(Stream,'~n',[Label]), - tab(Stream,NewTab), format(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[Label]), + tab(Stream,NewTab), 'format'(Stream,'~n',[]), dom2xml(D,Stream,NextTab), - tab(Stream,NewTab), format(Stream,'~n',[]), - tab(Stream,NewTab), format(Stream,'~n',[]), + tab(Stream,NewTab), 'format'(Stream,'~n',[]), + tab(Stream,NewTab), 'format'(Stream,'~n',[]), conds2xml(C,Stream,NextTab), - tab(Stream,NewTab), format(Stream,'~n',[]), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,NewTab), 'format'(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]). drs2xml(Label:drs(D,C),Stream,Tab,Words):- !, NewTab is Tab + 1, NextTab is Tab + 2, tab(Stream,Tab), - format(Stream,'~n',[Label]), - tab(Stream,NewTab), format(Stream,'~n',[]), + 'format'(Stream,'~n',[Label]), + tab(Stream,NewTab), 'format'(Stream,'~n',[]), getIDs(Label:drs(D,C),IDs), sort(IDs,SortedIDs), tokens2xml(SortedIDs,Words,NextTab,Stream), - tab(Stream,NewTab), format(Stream,'~n',[]), - tab(Stream,NewTab), format(Stream,'~n',[]), + tab(Stream,NewTab), 'format'(Stream,'~n',[]), + tab(Stream,NewTab), 'format'(Stream,'~n',[]), dom2xml(D,Stream,NextTab), - tab(Stream,NewTab), format(Stream,'~n',[]), - tab(Stream,NewTab), format(Stream,'~n',[]), + tab(Stream,NewTab), 'format'(Stream,'~n',[]), + tab(Stream,NewTab), 'format'(Stream,'~n',[]), conds2xml(C,Stream,NextTab), - tab(Stream,NewTab), format(Stream,'~n',[]), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,NewTab), 'format'(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]). drs2xml(alfa(Type,B1,B2),Stream,Tab,_):- !, - tab(Stream,Tab), format(Stream,'~n',[Type]), + tab(Stream,Tab), 'format'(Stream,'~n',[Type]), NewTab is Tab + 1, drs2xml(B1,Stream,NewTab,[]), drs2xml(B2,Stream,NewTab,[]), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,Tab), 'format'(Stream,'~n',[]). drs2xml(lam(X,B),Stream,Tab,_):- !, - tab(Stream,Tab), format(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]), NewTab is Tab + 1, - tab(Stream,Tab), format(Stream,' ~p~n',X), + tab(Stream,Tab), 'format'(Stream,' ~p~n',X), drs2xml(B,Stream,NewTab,[]), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,Tab), 'format'(Stream,'~n',[]). drs2xml(app(B1,B2),Stream,Tab,_):- !, - tab(Stream,Tab), format(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]), NewTab is Tab + 1, drs2xml(B1,Stream,NewTab,[]), drs2xml(B2,Stream,NewTab,[]), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,Tab), 'format'(Stream,'~n',[]). drs2xml(merge(B1,B2),Stream,Tab,_):- !, - tab(Stream,Tab), format(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]), NewTab is Tab + 1, drs2xml(B1,Stream,NewTab,[]), drs2xml(B2,Stream,NewTab,[]), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,Tab), 'format'(Stream,'~n',[]). drs2xml(sdrs(Labs,Rels),Stream,Tab,Words):- !, NewTab is Tab + 1, NewerTab is NewTab + 1, - tab(Stream,Tab), format(Stream,'~n',[]), - tab(Stream,NewTab), format(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]), + tab(Stream,NewTab), 'format'(Stream,'~n',[]), sdrs2xml(Labs,Stream,NewerTab,Words,Rels), - tab(Stream,NewTab), format(Stream,'~n',[]), - tab(Stream,NewTab), format(Stream,'~n',[]), + tab(Stream,NewTab), 'format'(Stream,'~n',[]), + tab(Stream,NewTab), 'format'(Stream,'~n',[]), relations2xml(Rels,Stream,NewerTab), - tab(Stream,NewTab), format(Stream,'~n',[]), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,NewTab), 'format'(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]). drs2xml(Error,_,_,_):- !, warning('cannot print DRS in XML: ~p',[Error]). @@ -332,7 +332,7 @@ /*======================================================================== Converting SDRS to XML -========================================================================*/ +*/ sdrs2xml([],_,_,_,_):- !. @@ -341,49 +341,49 @@ sdrs2xml(L,Stream,Tab,Words,Rel). sdrs2xml([sub(lab(K1,B1),lab(K2,B2))|L],Stream,Tab,Words,Rel):- - tab(Stream,Tab), format(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]), label2xml(K1,B1,Stream,Tab,Words), label2xml(K2,B2,Stream,Tab,Words), - tab(Stream,Tab), format(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]), sdrs2xml(L,Stream,Tab,Words,Rel). /*======================================================================== Converting SDRS constituent to XML -========================================================================*/ +*/ label2xml(K,B,Stream,Tab,Words):- - tab(Stream,Tab), format(Stream,'~n',[K]), + tab(Stream,Tab), 'format'(Stream,'~n',[K]), NewTab is Tab + 1, drs2xml(B,Stream,NewTab,Words), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,Tab), 'format'(Stream,'~n',[]). /*======================================================================== Converting SDRS relations to XML -========================================================================*/ +*/ relations2xml([],_,_). relations2xml([Index:rel(K1,K2,Rel)|L],Stream,Tab):- - tab(Stream,Tab), format(Stream,'~n',[K1,K2,Rel]), + tab(Stream,Tab), 'format'(Stream,'~n',[K1,K2,Rel]), index2xml(Index,Stream,Tab), - tab(Stream,Tab), format(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]), relations2xml(L,Stream,Tab). /*======================================================================== Converting DRS-domains to XML (with tab insertion) -========================================================================*/ +*/ dom2xml([],_,_). dom2xml([Label:Index:X|L],Stream,Tab):- !, tab(Stream,Tab), - format(Stream,'~n',[Label,X]), + 'format'(Stream,'~n',[Label,X]), index2xml(Index,Stream,Tab), tab(Stream,Tab), - format(Stream,'~n',[]), + 'format'(Stream,'~n',[]), dom2xml(L,Stream,Tab). dom2xml([Index:X|L],Stream,Tab):- !, @@ -397,15 +397,15 @@ /*======================================================================== Converting DRS-conditions to XML (with tab insertion) -========================================================================*/ +*/ conds2xml([],_,_). conds2xml([Label:Index:Cond|L],Stream,Tab):- - tab(Stream,Tab), format(Stream,'~n',[Label]), + tab(Stream,Tab), 'format'(Stream,'~n',[Label]), NewTab is Tab + 1, cond2xml(Index:Cond,Stream,NewTab), !, - tab(Stream,Tab), format(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]), conds2xml(L,Stream,Tab). conds2xml([Index:Cond|L],Stream,Tab):- !, @@ -413,85 +413,85 @@ conds2xml([X|L],Stream,Tab):- warning('cannot print condition in XML: ~p',[X]), - format(Stream,'~n',[]), + 'format'(Stream,'~n',[]), conds2xml(L,Stream,Tab). /*======================================================================== Converting DRS-condition to XML (with tab insertion) -========================================================================*/ +*/ cond2xml(Index:not(B),Stream,Tab):- !, - tab(Stream,Tab), format(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]), index2xml(Index,Stream,Tab), NewTab is Tab + 1, drs2xml(B,Stream,NewTab,[]), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,Tab), 'format'(Stream,'~n',[]). cond2xml(Index:nec(B),Stream,Tab):- !, - tab(Stream,Tab), format(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]), index2xml(Index,Stream,Tab), NewTab is Tab + 1, drs2xml(B,Stream,NewTab,[]), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,Tab), 'format'(Stream,'~n',[]). cond2xml(Index:pos(B),Stream,Tab):- !, - tab(Stream,Tab), format(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]), index2xml(Index,Stream,Tab), NewTab is Tab + 1, drs2xml(B,Stream,NewTab,[]), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,Tab), 'format'(Stream,'~n',[]). cond2xml(Index:prop(X,B),Stream,Tab):- !, - tab(Stream,Tab), format(Stream,'~n',[X]), + tab(Stream,Tab), 'format'(Stream,'~n',[X]), index2xml(Index,Stream,Tab), NewTab is Tab + 1, drs2xml(B,Stream,NewTab,[]), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,Tab), 'format'(Stream,'~n',[]). cond2xml(Index:or(B1,B2),Stream,Tab):- !, - tab(Stream,Tab), format(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]), index2xml(Index,Stream,Tab), NewTab is Tab + 1, drs2xml(B1,Stream,NewTab,[]), drs2xml(B2,Stream,NewTab,[]), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,Tab), 'format'(Stream,'~n',[]). cond2xml(Index:imp(B1,B2),Stream,Tab):- !, - tab(Stream,Tab), format(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]), index2xml(Index,Stream,Tab), NewTab is Tab + 1, drs2xml(B1,Stream,NewTab,[]), drs2xml(B2,Stream,NewTab,[]), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,Tab), 'format'(Stream,'~n',[]). cond2xml(Index:duplex(Type,B1,Var,B2),Stream,Tab):- !, - tab(Stream,Tab), format(Stream,'~n',[Type,Var]), + tab(Stream,Tab), 'format'(Stream,'~n',[Type,Var]), index2xml(Index,Stream,Tab), NewTab is Tab + 1, drs2xml(B1,Stream,NewTab,[]), drs2xml(B2,Stream,NewTab,[]), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,Tab), 'format'(Stream,'~n',[]). cond2xml(Index:pred(Arg,X,Type,Sense),Stream,Tab):- !, symbol(X,Y), - tab(Stream,Tab), format(Stream,'~n',[Arg,Y,Type,Sense]), + tab(Stream,Tab), 'format'(Stream,'~n',[Arg,Y,Type,Sense]), index2xml(Index,Stream,Tab), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,Tab), 'format'(Stream,'~n',[]). cond2xml(Index:role(Arg2,Arg1,X,-1),Stream,Tab):- !, symbol(X,Y), - tab(Stream,Tab), format(Stream,'~n',[Arg1,Arg2,Y,1]), + tab(Stream,Tab), 'format'(Stream,'~n',[Arg1,Arg2,Y,1]), index2xml(Index,Stream,Tab), tab(Stream,Tab), - format(Stream,'~n',[]). + 'format'(Stream,'~n',[]). cond2xml(Index:role(Arg1,Arg2,X,1),Stream,Tab):- !, symbol(X,Y), - tab(Stream,Tab), format(Stream,'~n',[Arg1,Arg2,Y,1]), + tab(Stream,Tab), 'format'(Stream,'~n',[Arg1,Arg2,Y,1]), index2xml(Index,Stream,Tab), tab(Stream,Tab), - format(Stream,'~n',[]). + 'format'(Stream,'~n',[]). cond2xml(Index:rel(X,Y,Sym,0),Stream,Tab):- symbol(Sym,=), !, @@ -499,66 +499,66 @@ cond2xml(Index:rel(Arg1,Arg2,X,Sense),Stream,Tab):- !, symbol(X,Y), - tab(Stream,Tab), format(Stream,'~n',[Arg1,Arg2,Y,Sense]), + tab(Stream,Tab), 'format'(Stream,'~n',[Arg1,Arg2,Y,Sense]), index2xml(Index,Stream,Tab), tab(Stream,Tab), - format(Stream,'~n',[]). + 'format'(Stream,'~n',[]). cond2xml(Index:named(Arg,X,Class,Type),Stream,Tab):- !, symbol(X,Y), - tab(Stream,Tab), format(Stream,'~n',[Arg,Y,Class,Type]), + tab(Stream,Tab), 'format'(Stream,'~n',[Arg,Y,Class,Type]), index2xml(Index,Stream,Tab), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,Tab), 'format'(Stream,'~n',[]). cond2xml(Index:card(X,Y,Type),Stream,Tab):- !, - tab(Stream,Tab), format(Stream,'~n',[X,Y,Type]), + tab(Stream,Tab), 'format'(Stream,'~n',[X,Y,Type]), index2xml(Index,Stream,Tab), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,Tab), 'format'(Stream,'~n',[]). cond2xml(Index:timex(X,Y),Stream,Tab):- !, - tab(Stream,Tab), format(Stream,'~n',[X]), + tab(Stream,Tab), 'format'(Stream,'~n',[X]), index2xml(Index,Stream,Tab), timex2xml(Y,Stream,Tab), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,Tab), 'format'(Stream,'~n',[]). cond2xml(Index:eq(X,Y),Stream,Tab):- !, - tab(Stream,Tab), format(Stream,'~n',[X,Y]), + tab(Stream,Tab), 'format'(Stream,'~n',[X,Y]), index2xml(Index,Stream,Tab), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,Tab), 'format'(Stream,'~n',[]). /*======================================================================== Timex -========================================================================*/ +*/ timex2xml(date(_:A,_:B,_:C),Stream,Tab):- !, - tab(Stream,Tab), format(Stream,'~w~w~w~n',[A,B,C]). + tab(Stream,Tab), 'format'(Stream,'~w~w~w~n',[A,B,C]). timex2xml(date(_:Z,_:A,_:B,_:C),Stream,Tab):- !, - tab(Stream,Tab), format(Stream,'~w~w~w~w~n',[Z,A,B,C]). + tab(Stream,Tab), 'format'(Stream,'~w~w~w~w~n',[Z,A,B,C]). timex2xml(time(_:A,_:B,_:C),Stream,Tab):- !, - tab(Stream,Tab), format(Stream,'~n',[A,B,C]). + tab(Stream,Tab), 'format'(Stream,'~n',[A,B,C]). timex2xml(X,Stream,Tab):- !, - tab(Stream,Tab), format(Stream,'~p~n',[X]). + tab(Stream,Tab), 'format'(Stream,'~p~n',[X]). /*======================================================================== Tokens (already known) -========================================================================*/ +*/ tokens2xml([],_,_). tokens2xml([Token|L],Tab,Stream):- symbol(Token,NiceToken), - tab(Stream,Tab), format(Stream,'~w~n',[NiceToken]), + tab(Stream,Tab), 'format'(Stream,'~w~n',[NiceToken]), tokens2xml(L,Tab,Stream). /*======================================================================== Tokens (from list of words) -========================================================================*/ +*/ tokens2xml(I,[presup|Words],Tab,Stream):- !, tokens2xml(I,Words,Tab,Stream,presup). tokens2xml(I,Words,Tab,Stream):- !, tokens2xml(I,Words,Tab,Stream,sentence). @@ -568,15 +568,15 @@ tokens2xml([Index],Words,Tab,Stream,_):- member(Index:[tok:Tok|_],Words), !, symbol(Tok,NiceToken), - tab(Stream,Tab), format(Stream,'~w~n',[NiceToken]). + tab(Stream,Tab), 'format'(Stream,'~w~n',[NiceToken]). tokens2xml([Index1,Index2|L],Words,Tab,Stream,Type):- Type = presup, member(Index1:[tok:Tok|_],Words), !, symbol(Tok,NiceToken), - tab(Stream,Tab), format(Stream,'~w~n',[NiceToken]), + tab(Stream,Tab), 'format'(Stream,'~w~n',[NiceToken]), ( Dif is Index2 - Index1, - Dif > 1, tab(Stream,Tab), format(Stream,'|~n',[]) + Dif > 1, tab(Stream,Tab), 'format'(Stream,'|~n',[]) ; true ), tokens2xml([Index2|L],Words,Tab,Stream,Type). @@ -584,7 +584,7 @@ Type = sentence, member(Index1:[tok:Tok|_],Words), !, symbol(Tok,NiceToken), - tab(Stream,Tab), format(Stream,'~w~n',[NiceToken]), + tab(Stream,Tab), 'format'(Stream,'~w~n',[NiceToken]), ( S is Index1-mod(Index1,1000), S is Index2-mod(Index2,1000), Dif is Index2 - Index1, Dif > 1, !, Index is Index1 + 1, @@ -598,7 +598,7 @@ /*======================================================================== Check whether word is part of sentence -========================================================================*/ +*/ wordInSentence(N1,N2):- X is (N1-(mod(N1,1000)))/1000, @@ -607,60 +607,60 @@ /*======================================================================== Token Tags -========================================================================*/ +*/ tokentags2xml([],_). tokentags2xml([Index:Tags|L],Stream):- - format(Stream,' ~n',[Index]), - format(Stream,' ~n',[]), + 'format'(Stream,' ~n',[Index]), + 'format'(Stream,' ~n',[]), tags2xml(Tags,Stream,4), - format(Stream,' ~n',[]), - format(Stream,' ~n',[]), + 'format'(Stream,' ~n',[]), + 'format'(Stream,' ~n',[]), tokentags2xml(L,Stream). /*======================================================================== Producing tags in XML -========================================================================*/ +*/ tags2xml([],_,_):- !. tags2xml([lemma:Lemma|L],Stream,Tab):- !, symbol(Lemma,NiceLemma), - tab(Stream,Tab), format(Stream,' ~p~n',[NiceLemma]), + tab(Stream,Tab), 'format'(Stream,' ~p~n',[NiceLemma]), tags2xml(L,Stream,Tab). tags2xml([tok:Tok|L],Stream,Tab):- !, symbol(Tok,NiceTok), - tab(Stream,Tab), format(Stream,' ~p~n',[NiceTok]), + tab(Stream,Tab), 'format'(Stream,' ~p~n',[NiceTok]), tags2xml(L,Stream,Tab). tags2xml([verbnet:Roles|L],Stream,Tab):- !, length(Roles,N), - tab(Stream,Tab), format(Stream,' ~p~n',[N,Roles]), + tab(Stream,Tab), 'format'(Stream,' ~p~n',[N,Roles]), tags2xml(L,Stream,Tab). tags2xml([Feature:Value|L],Stream,Tab):- - tab(Stream,Tab), format(Stream,' ~p~n',[Feature,Value]), + tab(Stream,Tab), 'format'(Stream,' ~p~n',[Feature,Value]), tags2xml(L,Stream,Tab). /*======================================================================== Indexes -========================================================================*/ +*/ index2xml(I,Stream,Tab):- - tab(Stream,Tab), format(Stream,'~n',[]), + tab(Stream,Tab), 'format'(Stream,'~n',[]), index2xml2(I,Stream,Tab), - tab(Stream,Tab), format(Stream,'~n',[]). + tab(Stream,Tab), 'format'(Stream,'~n',[]). index2xml2([],_,_):- !. index2xml2([X|L],Stream,Tab):- number(X), !, Pos is mod(X,1000), - tab(Stream,Tab), format(Stream,'i~p~n',[Pos,X]), + tab(Stream,Tab), 'format'(Stream,'i~p~n',[Pos,X]), index2xml2(L,Stream,Tab). index2xml2([_|L],Stream,Tab):- @@ -669,7 +669,7 @@ /*======================================================================== Deal with special symbols -========================================================================*/ +*/ symbol(f(_,_,V1),V2):- !, V1 = V2. @@ -680,7 +680,7 @@ /*======================================================================== Check special characters -========================================================================*/ +*/ check([],[]). Index: src/prolog/lib/abbreviations.pl =================================================================== --- src/prolog/lib/abbreviations.pl (revision 2527) +++ src/prolog/lib/abbreviations.pl (working copy) @@ -3,7 +3,7 @@ /* ---------------------------------------------------------------------------------- Transitive abbreviations (usually not at the end of a sentence) ----------------------------------------------------------------------------------- */ +------------ */ tAbb(L,A):- title(L,A). tAbb(L,A):- coord(L,A). @@ -11,14 +11,14 @@ /* ---------------------------------------------------------------------------------- Intransitive abbreviations ----------------------------------------------------------------------------------- */ +------------ */ iAbb(L,A):- abb(L,A). /* ---------------------------------------------------------------------------------- Titles ----------------------------------------------------------------------------------- */ +------------ */ title(en, "Mr"). % sg title(en, "Messrs"). % pl @@ -48,7 +48,7 @@ /* ---------------------------------------------------------------------------------- Coordinators ----------------------------------------------------------------------------------- */ +------------ */ coord(en, "v"). % versus coord(en, "vs"). % versus @@ -61,7 +61,7 @@ /* ---------------------------------------------------------------------------------- Abbreviations ----------------------------------------------------------------------------------- */ +------------ */ abb(Codes):- member(46,Codes), member(X,Codes), alpha(X), !. abb(Abb):- option('--language',Language), abb(Language,Abb), !. Index: src/prolog/lib/der2tex.pl =================================================================== --- src/prolog/lib/der2tex.pl (revision 2527) +++ src/prolog/lib/der2tex.pl (working copy) @@ -4,7 +4,7 @@ /*======================================================================== File Search Paths -========================================================================*/ +*/ file_search_path(semlib, 'src/prolog/lib'). file_search_path(boxer, 'src/prolog/boxer'). @@ -14,7 +14,7 @@ /*======================================================================== Load Modules -========================================================================*/ +*/ %:- use_module(boxer(drs2fdrs),[instDrs/1,elimEqDrs/2]). %:- use_module(boxer(lexicon),[semlex/5,semlex/6]). @@ -29,7 +29,7 @@ /*======================================================================== Latex Var -========================================================================*/ +*/ printTypedVar(V,Stream):- var(V), !, write(Stream,'X'). printTypedVar(e,Stream):- !, write(Stream,x). @@ -42,7 +42,7 @@ /*======================================================================== Add Types -========================================================================*/ +*/ %addTypes(Exp,Type,L-L,_):- write(hey:Exp:Type:L),nl,fail. @@ -107,7 +107,7 @@ /*======================================================================== Latex Lambda Expression (Add Types first) -========================================================================*/ +*/ drs2tex(Drs,Type,Stream):- addTypes(Drs,Type,[]-_,TypedDrs), !, @@ -120,7 +120,7 @@ /*======================================================================== Latex DRSs -========================================================================*/ +*/ drs2tex(t(Type,'$VAR'(Id)),Stream):- printTypedVar(Type,Stream), @@ -156,7 +156,7 @@ /*======================================================================== Tex DRS-referents -========================================================================*/ +*/ refs2tex([],Stream):- !, write(Stream,'}'). @@ -167,7 +167,7 @@ /*======================================================================== Tex DRS-Conditions -========================================================================*/ +*/ conds2tex([],_):- !. @@ -177,13 +177,13 @@ conds2tex([C|Cs],Stream):- cond2tex(C,Stream,N), - format(Stream,'\\\\[~ppt]~n',[N]), + 'format'(Stream,'\\\\[~ppt]~n',[N]), conds2tex(Cs,Stream). /*======================================================================== Tex DRS-Condition -========================================================================*/ +*/ cond2tex(not(Drs),Stream,9):- !, write(Stream,'$\\lnot$'), @@ -280,7 +280,7 @@ /*======================================================================== Time Expressions -========================================================================*/ +*/ timex(date(_:_,_:Y,_:M,_:D),Timex):- !, timex(date(Y,M,D),Timex). @@ -316,7 +316,7 @@ /*======================================================================== Header -========================================================================*/ +*/ printHeader(Stream):- write(Stream,'\\documentclass[10pt]{article}'), nl(Stream), @@ -370,7 +370,7 @@ /*======================================================================== Cat2Type -========================================================================*/ +*/ cat2type(t:_, t):- !. cat2type(n, type(e,t)):- !. @@ -392,7 +392,7 @@ /*======================================================================== Clean up CCG Cat -========================================================================*/ +*/ cleanCat('\\'(A1,B1), '\\'(A2,B2) ):- !, cleanCat(A1,A2), cleanCat(B1,B2). cleanCat('/'(A1,B1), '/'(A2,B2) ):- !, cleanCat(A1,A2), cleanCat(B1,B2). @@ -405,7 +405,7 @@ /*======================================================================== Typeset Category -========================================================================*/ +*/ printCat('\\'(A,B),Stream):- !, write(Stream,'('), @@ -453,7 +453,7 @@ /*======================================================================== Typeset Semantic Type -========================================================================*/ +*/ printType(type(A,B),Stream):- !, write(Stream,'$\\langle$'), @@ -467,7 +467,7 @@ /*======================================================================== Typeset Sentence -========================================================================*/ +*/ printExample(Id,Stream,W):- ex(Id,Ex,_), @@ -509,7 +509,7 @@ /*======================================================================== Typeset Tokens -========================================================================*/ +*/ printTokens(Id,Stream):- findall(t(F,Tok),tok(Id,Tok,F),L), @@ -567,7 +567,7 @@ /*======================================================================== Special Characters (for Latex) -========================================================================*/ +*/ special('$'). special('%'). @@ -580,7 +580,7 @@ /*======================================================================== Compute Frequency -========================================================================*/ +*/ computeF:- sem(_,_,Id), @@ -601,7 +601,7 @@ /*======================================================================== Print Derivation -========================================================================*/ +*/ printDer(Comb,Stream,Tok3):- ( Comb = fa(Cat,Sem,L,R), !, Rule = '[$>$]' @@ -631,7 +631,7 @@ write(Stream,'\\textbf{'), printToks(Tok3,Stream), write(Stream,'}\\\\'), nl(Stream), printCat(Cat,Stream), write(Stream,'\\\\'), nl(Stream), printType(Type,Stream), write(Stream,'\\\\'), nl(Stream), -% format(Stream,'%%%~p~n',[Red]), +% 'format'(Stream,'%%%~p~n',[Red]), drs2tex(Red,Type,Stream), !, write(Stream,'\\end{tabular}}'), nl(Stream), @@ -650,7 +650,7 @@ write(Stream,'\\textbf{'), printToks(Tok,Stream), write(Stream,'}\\\\'), nl(Stream), printCat(Cat,Stream), write(Stream,'\\\\'), nl(Stream), printType(Type,Stream), write(Stream,'\\\\'), nl(Stream), -% format(Stream,'%%%~p~n',[Red]), +% 'format'(Stream,'%%%~p~n',[Red]), drs2tex(Red,Type,Stream), write(Stream,'\\\\'), nl(Stream), !, @@ -678,7 +678,7 @@ /*======================================================================== Analysis of Derivation -========================================================================*/ +*/ analyse(t(Sem,Cat,Tok,Pos),Index,[Tok|L]-L):- !, cleanCat(Cat,CleanCat), @@ -705,7 +705,7 @@ /*======================================================================== Derivations -========================================================================*/ +*/ derivations:- der(N,Der), @@ -720,7 +720,7 @@ /*======================================================================== Print Derivations -========================================================================*/ +*/ printDerivations(Stream):- der(N,Der), @@ -732,8 +732,8 @@ write(Stream,'\\clearpage'), nl(Stream), write(Stream,'\\begin{sidewaystable}\\scriptsize'), nl(Stream), printDer(Der,Stream,_), - format(Stream,'\\caption{\\label{ex:~p}',[N]), - printToks(S,Stream), format(Stream,' (~p)}~n',[N]), + 'format'(Stream,'\\caption{\\label{ex:~p}',[N]), + printToks(S,Stream), 'format'(Stream,' (~p)}~n',[N]), write(Stream,'\\end{sidewaystable}'), nl(Stream), fail. @@ -743,7 +743,7 @@ /*======================================================================== Add to temp database -========================================================================*/ +*/ add(Cat,Sym,Tok,Pos,X1,Sen):- sem(Cat,X2,Id), @@ -782,7 +782,7 @@ /*======================================================================== Similar Semantics -========================================================================*/ +*/ similar(X,Y):- var(X), !, var(Y). similar(X,Y):- var(Y), !, var(X). @@ -821,7 +821,7 @@ /*======================================================================== Blocked examples -========================================================================*/ +*/ blocked(201). blocked(211). @@ -853,14 +853,14 @@ /*======================================================================== Min Length for Example -========================================================================*/ +*/ minlen(3). maxlen(10). /*======================================================================== Get best example -========================================================================*/ +*/ getExample(Id,ExId,Tok,Len):- minlen(Min), @@ -891,7 +891,7 @@ /*======================================================================== Main -========================================================================*/ +*/ body([],_,Stream):- !, nl(Stream). @@ -924,10 +924,10 @@ write(Stream,'}\\\\[7pt]'), nl(Stream), write(Stream,'\\textbf{Semantics}: & \\\\'), nl(Stream), - format(Stream,'\\end{tabular}\\hfill F=~p~n~n',[F]), + 'format'(Stream,'\\end{tabular}\\hfill F=~p~n~n',[F]), numbervars(X,1,_), - format(Stream,'%%%~p~n',[X]), + 'format'(Stream,'%%%~p~n',[X]), write(Stream,'\\textsf{'), drs2tex(X,Type,Stream), write(Stream,'}'), nl(Stream), nl(Stream), @@ -953,7 +953,7 @@ /*======================================================================== Print Page Ref -========================================================================*/ +*/ printPageRef(Len,Stream,N):- \+ blocked(N), @@ -961,7 +961,7 @@ minlen(MinLen), Len < MaxLen, Len > MinLen, !, - format(Stream,'(see p. \\pageref{ex:~p})~n~n',[N]). + 'format'(Stream,'(see p. \\pageref{ex:~p})~n~n',[N]). printPageRef(_,Stream,_):- nl(Stream). @@ -969,7 +969,7 @@ /*======================================================================== Print Example 1 -========================================================================*/ +*/ printExample1(Stream,Id,N):- tok(Id,Sym,F), @@ -984,7 +984,7 @@ /*======================================================================== Print Example 2 -========================================================================*/ +*/ printExample2(Stream,Id,N):- getExample(Id,Ex,Tok,Len), \+ Ex=N, @@ -997,7 +997,7 @@ /*======================================================================== Start -========================================================================*/ +*/ go:- setDefaultOptions(boxer), Index: src/prolog/lib/drs2fol.pl =================================================================== --- src/prolog/lib/drs2fol.pl (revision 2527) +++ src/prolog/lib/drs2fol.pl (working copy) @@ -8,7 +8,7 @@ /* ======================================================================== Main Predicate -======================================================================== */ +*/ drs2fol(B,some(W,and(possible_world(W),F))):- option('--modal',true), !, @@ -21,7 +21,7 @@ /* ======================================================================== Translate DRSs into FOL formulas -======================================================================== */ +*/ drsfol(lab(_,B),Form):- !, drsfol(B,Form). @@ -59,7 +59,7 @@ /* ======================================================================== Translate DRSs into FOL formulas (Modal translation) -======================================================================== */ +*/ drsfol(lab(_,B),W,Form):- !, drsfol(B,W,Form). @@ -95,7 +95,7 @@ This is to ensure that discourse referents in the LHS of a merge bind occurrences of DRSs in the RHS of a merge. -======================================================================== */ +*/ drsfolGap(sdrs([B],_),F):- !, drsfolGap(B,F). @@ -140,7 +140,7 @@ This is to ensure that discourse referents in the LHS of a merge bind occurrences of DRSs in the RHS of a merge. -======================================================================== */ +*/ drsfolGap(sdrs([B],_),W,F):- !, drsfolGap(B,W,F). @@ -173,7 +173,7 @@ /* ======================================================================== Translate DRS-Conditions into FOL formulas -======================================================================== */ +*/ cond2fol(_:C,F):- !, cond2fol(C,F). @@ -278,7 +278,7 @@ /*======================================================================== Translate DRS-Conditions into FOL formulas (modal translation) -========================================================================*/ +*/ cond2fol(_:C,W,F):- !, cond2fol(C,W,F). @@ -353,7 +353,7 @@ /* ======================================================================== Normalising Symbols -======================================================================== */ +*/ symbol(t,D,_Sense,F):- !, timex(D,F). @@ -373,7 +373,7 @@ /* ======================================================================== Max Length Symbol (for mace, and other theorem provers) -======================================================================== */ +*/ maxLen(In,Out):- In = [A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B1,B2,B3,B4,B5,B6,B7,B8,B9,B0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C0,D1,_|_], !, @@ -387,7 +387,7 @@ /* ======================================================================== Normalising Symbols -======================================================================== */ +*/ normSymbol([],[]):- !. @@ -407,7 +407,7 @@ /* ======================================================================== Time Expressions -======================================================================== */ +*/ timex(date(_:_,_:Y,_:M,_:D),Timex):- !, timex(date(Y,M,D),Timex). @@ -433,7 +433,7 @@ /* ======================================================================== Time Expressions (year) -======================================================================== */ +*/ year(Y,C):- variable(Y), !, name('XXXX',C). year(Y,C):- name(Y,C). @@ -441,7 +441,7 @@ /* ======================================================================== Time Expressions (month) -======================================================================== */ +*/ month(Y,C):- variable(Y), !, name('XX',C). month(Y,C):- name(Y,C). @@ -449,7 +449,7 @@ /* ======================================================================== Time Expressions (day) -======================================================================== */ +*/ day(Y,C):- variable(Y), !, name('XX',C). day(Y,C):- name(Y,C). @@ -457,7 +457,7 @@ /* ======================================================================== Time Expressions (other) -======================================================================== */ +*/ hour(A,C):- day(A,C). minute(A,C):- day(A,C). @@ -466,7 +466,7 @@ /* ======================================================================== Variable -======================================================================== */ +*/ variable(X):- var(X), !. variable(X):- functor(X,'$VAR',1), !. Index: src/prolog/lib/drs2tacitus.pl =================================================================== --- src/prolog/lib/drs2tacitus.pl (revision 2527) +++ src/prolog/lib/drs2tacitus.pl (working copy) @@ -8,7 +8,7 @@ /* ======================================================================== Main Predicate -======================================================================== */ +*/ drs2tac(DRS,Tags,N,TAC):- drs2tac(DRS,Tags,[],TAC0,N-_,_), @@ -17,7 +17,7 @@ /* ======================================================================== Replacing equality statements -======================================================================== */ +*/ replace(TAC1,TAC4):- select(replace(Old,New),TAC1,TAC2), !, @@ -46,7 +46,7 @@ /* ======================================================================== Label -======================================================================== */ +*/ label(X,Label,Var,Y):- var(Var), number(X), @@ -60,7 +60,7 @@ /* ======================================================================== Translate DRSs into TACITUS formulas -======================================================================== */ +*/ drs2tac(alfa(_,B1,B2),P,T1,T2,N,H):- !, drs2tac(merge(B1,B2),P,T1,T2,N,H). @@ -89,7 +89,7 @@ /* ======================================================================== Translate DRS-Conditions into TACITUS formulas (wrapper) -======================================================================== */ +*/ conds2tac(Conds,P,T1,T2,N,Head):- roles(Conds,Roles,NewConds), @@ -98,7 +98,7 @@ /* ======================================================================== Translate DRS-Conditions into TACITUS formulas -======================================================================== */ +*/ conds2tac([],_,_,T1,T2,N-N,Heads,Head):- !, adjustMods(Heads,T1,T2), @@ -111,7 +111,7 @@ /* ======================================================================== Make a guess as to what the head of a list of DRS-conditions is... -======================================================================== */ +*/ pickHead(Heads,Event):- member(event:[I]:Event,Heads), @@ -124,7 +124,7 @@ /* ======================================================================== Adjust modifier modifiers... -======================================================================== */ +*/ adjustMods(Heads,T1,T3):- select(mod:[P1]:E1,Heads,Rest), @@ -140,7 +140,7 @@ /* ======================================================================== Separate roles from other DRS-conditions -======================================================================== */ +*/ roles([],[],[]). roles([_:R|L1],[R|Roles],L2):- R = rel(_,_,Role,_), member(Role,[topic,agent,patient,theme,recipient]), !, roles(L1,Roles,L2). @@ -149,7 +149,7 @@ /* ======================================================================== Translate a DRS-Condition into TACITUS formulas -======================================================================== */ +*/ cond2tac(I:nec(Drs),P,_,T1,[I:nec(E1,E2)|T2],N1-N3,complex:I:E1):- !, label(N1,e,E1,N2), @@ -259,7 +259,7 @@ /* ======================================================================== Add roles as arguments -======================================================================== */ +*/ addRoles([],_,F,N1-N4):- F =.. [_,_,A1,A2,A3], !, @@ -302,7 +302,7 @@ /*======================================================================== Time Expressions -========================================================================*/ +*/ timex(date(_:_,_:Y,_:M,_:D),Timex):- !, timex(date(Y,M,D),Timex). @@ -328,7 +328,7 @@ /* ======================================================================== Time Expressions (year) -======================================================================== */ +*/ year(Y,C):- var(Y), !, name('XXXX',C). year(Y,C):- name(Y,C). @@ -336,7 +336,7 @@ /* ======================================================================== Time Expressions (month) -======================================================================== */ +*/ month(Y,C):- var(Y), !, name('XX',C). month(Y,C):- name(Y,C). @@ -344,7 +344,7 @@ /* ======================================================================== Time Expressions (day) -======================================================================== */ +*/ day(Y,C):- var(Y), !, name('XX',C). day(Y,C):- name(Y,C). @@ -352,7 +352,7 @@ /* ======================================================================== Time Expressions (other) -======================================================================== */ +*/ hour(A,C):- day(A,C). minute(A,C):- day(A,C). @@ -361,7 +361,7 @@ /* ======================================================================== Determine POS -======================================================================== */ +*/ pos(Is,T,POS):- member(I,Is), @@ -374,7 +374,7 @@ /* ======================================================================== Map POS tags -======================================================================== */ +*/ mappos('NN', '-n'). mappos('NNS', '-n'). @@ -405,7 +405,7 @@ /* ======================================================================== Print TACITUS formula -======================================================================== */ +*/ printTAC([],Stream):- !, nl(Stream). printTAC([X],Stream):- !, write(Stream,X), nl(Stream). Index: src/prolog/lib/drs2tex.pl =================================================================== --- src/prolog/lib/drs2tex.pl (revision 2527) +++ src/prolog/lib/drs2tex.pl (working copy) @@ -6,7 +6,7 @@ /*======================================================================== Latex DRSs -========================================================================*/ +*/ drs2tex(smerge(B1,B2),Stream):- !, drs2tex(merge(B1,B2),Stream). @@ -35,7 +35,7 @@ /*======================================================================== Tex DRS-referents -========================================================================*/ +*/ refs2tex([],Stream):- !, write(Stream,'}'). @@ -52,7 +52,7 @@ /*======================================================================== Tex DRS-Conditions -========================================================================*/ +*/ conds2tex([],_):- !. @@ -62,13 +62,13 @@ conds2tex([_:C|L],Stream):- cond2tex(C,Stream,N), - format(Stream,'\\\\[~ppt]~n',[N]), + 'format'(Stream,'\\\\[~ppt]~n',[N]), conds2tex(L,Stream). /*======================================================================== Tex DRS-Condition -========================================================================*/ +*/ cond2tex(not(Drs),Stream,9):- !, write(Stream,'$\\lnot$'), @@ -169,7 +169,7 @@ /*======================================================================== Tex non-logical sym2texs -========================================================================*/ +*/ sym2tex(Sym1,Type,Sense,Sym3):- symbol(Type,Sym1,Sense,Sym2), @@ -180,7 +180,7 @@ /*======================================================================== Deal with underscores -========================================================================*/ +*/ underscore([],[]). Index: src/prolog/lib/errors.pl =================================================================== --- src/prolog/lib/errors.pl (revision 2527) +++ src/prolog/lib/errors.pl (working copy) @@ -5,24 +5,24 @@ warning(S,V):- option('--warnings',true), !, - format(user_error,'\033[33mWARNING: ',[]), - format(user_error,S,V), - format(user_error,'\033[0m~n',[]). + 'format'(user_error,'\033[33mWARNING: ',[]), + 'format'(user_error,S,V), + 'format'(user_error,'\033[0m~n',[]). warning(_S,_V):- option('--warnings',false). inform(S,V):- option('--info',true), !, - format(user_error,'\033[34mINFO: ',[]), - format(user_error,S,V), - format(user_error,'\033[0m~n',[]). + 'format'(user_error,'\033[34mINFO: ',[]), + 'format'(user_error,S,V), + 'format'(user_error,'\033[0m~n',[]). inform(_S,_V):- option('--info',false). error(S,V):- - format(user_error,'\033[31mERROR: ',[]), - format(user_error,S,V), - format(user_error,'\033[0m~n',[]). + 'format'(user_error,'\033[31mERROR: ',[]), + 'format'(user_error,S,V), + 'format'(user_error,'\033[0m~n',[]). Index: src/prolog/lib/gen-wordnet.pl =================================================================== --- src/prolog/lib/gen-wordnet.pl (revision 2527) +++ src/prolog/lib/gen-wordnet.pl (working copy) @@ -8,7 +8,7 @@ /* ========================================================================= Main -========================================================================= */ + */ main:- open('working/wordnet/isa.pl',write,Stream), @@ -18,7 +18,7 @@ /* ========================================================================= Generate relations -========================================================================= */ + */ gen(Stream):- member(POS,[n,v,a,r]), % Possible Values: n,v,a,r,s @@ -34,7 +34,7 @@ /* ========================================================================= Hyperonyms -========================================================================= */ + */ hypero(ID1,n,S,p):- ins(ID1,ID2), !, @@ -49,7 +49,7 @@ /* ========================================================================= Antonyms -========================================================================= */ + */ antonyms(ID1,a,S):- ant(ID1,1,ID2,1), !, @@ -60,7 +60,7 @@ /* ========================================================================= Synonyms -========================================================================= */ + */ synonyms(ID,POS,L1-L2):- synonyms(ID,1,POS,L1-L2). @@ -76,7 +76,7 @@ /* ========================================================================= Output -========================================================================= */ + */ print_rel(Stream,Concept,Syn,Hyp,Ant,Type):- print_syn(Syn,Concept,Type,Stream), @@ -86,7 +86,7 @@ /* ========================================================================= Output SYN -========================================================================= */ + */ print_syn([],_,_,_). @@ -96,13 +96,13 @@ print_syn([X:XS|L],Tok:Sense,Type,Stream):- symbol(Tok,Sym), - format(Stream,'syn~p(~q,~q,~q,~q).~n',[Type,Sym,Sense,X,XS]), + 'format'(Stream,'syn~p(~q,~q,~q,~q).~n',[Type,Sym,Sense,X,XS]), print_syn(L,Tok:Sense,Type,Stream). /* ========================================================================= Output HYP -========================================================================= */ + */ print_hyp([],_,_,_). @@ -112,13 +112,13 @@ print_hyp([X:XS|L],Tok:Sense,Type,Stream):- symbol(Tok,Sym), - format(Stream,'isa~p(~q,~q,~q,~q).~n',[Type,Sym,Sense,X,XS]), + 'format'(Stream,'isa~p(~q,~q,~q,~q).~n',[Type,Sym,Sense,X,XS]), print_hyp(L,Tok:Sense,Type,Stream). /* ========================================================================= Output ANTONYM -========================================================================= */ + */ print_ant([],_,_,_). @@ -128,13 +128,13 @@ print_ant([X:XS|L],Tok:Sense,Type,Stream):- symbol(Tok,Sym), - format(Stream,'isnota~p(~q,~q,~q,~q).~n',[Type,Sym,Sense,X,XS]), + 'format'(Stream,'isnota~p(~q,~q,~q,~q).~n',[Type,Sym,Sense,X,XS]), print_hyp(L,Tok:Sense,Type,Stream). /* ========================================================================= Normalize Symbols -========================================================================= */ + */ symbol(F1,F2):- name(F1,A1), @@ -146,7 +146,7 @@ /* ========================================================================= Normalize Symbol Characters -========================================================================= */ + */ sym([],[]). @@ -173,7 +173,7 @@ /* ========================================================================= Self Starting -========================================================================= */ + */ :- main, halt. Index: src/prolog/lib/lex2tex.pl =================================================================== --- src/prolog/lib/lex2tex.pl (revision 2527) +++ src/prolog/lib/lex2tex.pl (working copy) @@ -4,7 +4,7 @@ /*======================================================================== File Search Paths -========================================================================*/ +*/ file_search_path(semlib, 'src/prolog/lib'). file_search_path(boxer, 'src/prolog/boxer'). @@ -14,7 +14,7 @@ /*======================================================================== Load Modules -========================================================================*/ +*/ :- use_module(boxer(drs2fdrs),[instDrs/1,elimEqDrs/2]). :- use_module(boxer(lexicon),[semlex/5,semlex/6]). @@ -30,7 +30,7 @@ /*======================================================================== Latex Var -========================================================================*/ +*/ printTypedVar(V,Stream):- var(V), !, write(Stream,'X'). printTypedVar(e,Stream):- !, write(Stream,x). @@ -42,7 +42,7 @@ /*======================================================================== Latex DRSs -========================================================================*/ +*/ drs2tex('$VAR'(Id),Type,L-L,Stream):- member('$VAR'(Id):Type,L), !, @@ -102,7 +102,7 @@ /*======================================================================== Tex DRS-referents -========================================================================*/ +*/ refs2tex([],L-L,Stream):- !, write(Stream,'}'). @@ -119,7 +119,7 @@ /*======================================================================== Tex DRS-Conditions -========================================================================*/ +*/ conds2tex([],_,_):- !. @@ -129,13 +129,13 @@ conds2tex([_:C|Cs],L,Stream):- cond2tex(C,L,Stream,N), - format(Stream,'\\\\[~ppt]~n',[N]), + 'format'(Stream,'\\\\[~ppt]~n',[N]), conds2tex(Cs,L,Stream). /*======================================================================== Tex DRS-Condition -========================================================================*/ +*/ cond2tex(not(Drs),L,Stream,9):- !, write(Stream,'$\\lnot$'), @@ -235,7 +235,7 @@ /*======================================================================== Tex non-logical sym2texs -========================================================================*/ +*/ sym2tex(Sym1,Type,Sense,Sym3):- symbol(Type,Sym1,Sense,Sym2), @@ -246,7 +246,7 @@ /*======================================================================== Deal with underscores -========================================================================*/ +*/ underscore([],[]). @@ -257,7 +257,7 @@ /*======================================================================== Header -========================================================================*/ +*/ printHeader(Stream):- write(Stream,'\\documentclass[10pt]{article}'), nl(Stream), @@ -293,7 +293,7 @@ /*======================================================================== Cat2Type -========================================================================*/ +*/ cat2type(t, t):- !. cat2type(n, type(e,t)):- !. @@ -311,7 +311,7 @@ /*======================================================================== Clean up CCG Cat -========================================================================*/ +*/ cleanCat('\\'(A1,B1), '\\'(A2,B2) ):- !, cleanCat(A1,A2), cleanCat(B1,B2). cleanCat('/'(A1,B1), '/'(A2,B2) ):- !, cleanCat(A1,A2), cleanCat(B1,B2). @@ -321,7 +321,7 @@ /*======================================================================== Generate Semantic Representation -========================================================================*/ +*/ getsem(CleanCat,Token,Converted,Start,Tok):- lexcall(Cat,Sym,Lem,Pos:Ner,Start,Tok), @@ -334,7 +334,7 @@ /*======================================================================== Get example sentence -========================================================================*/ +*/ getexample(I1,I2,L,Len):- getexample1(I1,I2,L,Len), !. getexample(I,_,[],0). @@ -350,7 +350,7 @@ /*======================================================================== Typeset Category -========================================================================*/ +*/ printCat('\\'(A,B),Stream):- !, write(Stream,'('), @@ -382,7 +382,7 @@ /*======================================================================== Typeset Semantic Type -========================================================================*/ +*/ printType(type(A,B),Stream):- !, write(Stream,'$\\langle$'), @@ -396,7 +396,7 @@ /*======================================================================== Typeset Sentence -========================================================================*/ +*/ printSentence([],Stream,_,_):- nl(Stream). @@ -415,7 +415,7 @@ /*======================================================================== Typeset Tokens -========================================================================*/ +*/ printTokens(Id,Stream):- findall(t(F,Tok),tok(Id,Tok,F),L), @@ -476,7 +476,7 @@ /*======================================================================== Special Charachters (for Latex) -========================================================================*/ +*/ special('$'). special('%'). @@ -489,7 +489,7 @@ /*======================================================================== Compute Frequency -========================================================================*/ +*/ computeF:- sem(_,_,Id), @@ -510,7 +510,7 @@ /*======================================================================== Init -========================================================================*/ +*/ init:- getsem(Cat,Tok,X,Sen,Pos), @@ -523,7 +523,7 @@ /*======================================================================== Add to temp database -========================================================================*/ +*/ add(Cat,_,_,_,_):- member(Cat,[conj,comma,semi]), !. @@ -561,7 +561,7 @@ /*======================================================================== Add example -========================================================================*/ +*/ addExample(Id,_,Len,_):- %%% same length, hence ex(Id,_,Len,_), !. %%% no need to add @@ -582,7 +582,7 @@ /*======================================================================== Similar Semantics -========================================================================*/ +*/ similar(X,Y):- var(X), !, var(Y). similar(X,Y):- var(Y), !, var(X). @@ -620,7 +620,7 @@ /*======================================================================== Main -========================================================================*/ +*/ body([s(F,Id)|L],Stream):- F > 10, !, @@ -629,12 +629,12 @@ write(Stream,'\\clearpage'), nl(Stream), write(Stream,'Category: \\textbf{' ), printCat(Cat,Stream), - format(Stream,'} \\hfill F=~p~n~n',[F]), + 'format'(Stream,'} \\hfill F=~p~n~n',[F]), write(Stream,'Type: ' ), printType(Type,Stream), nl(Stream), nl(Stream), write(Stream,'DRS:'), nl(Stream), nl(Stream), numbervars(X,1,_), - format(Stream,'%%%~p~n',[X]), + 'format'(Stream,'%%%~p~n',[X]), drs2tex(X,Type,[]-_,Stream), nl(Stream), nl(Stream), write(Stream,'Entries: '), printTokens(Id,Stream), nl(Stream), nl(Stream), @@ -652,7 +652,7 @@ /*======================================================================== Start -========================================================================*/ +*/ go:- setDefaultOptions(boxer), Index: src/prolog/lib/options.pl =================================================================== --- src/prolog/lib/options.pl (revision 2527) +++ src/prolog/lib/options.pl (working copy) @@ -11,14 +11,14 @@ /* ======================================================================= Global dynamic predicates -========================================================================*/ +*/ :- dynamic option/2. /* ======================================================================= Set Option -========================================================================*/ +*/ setOption(P,Option,Value):- assertOptions(P,[Option:Value]). @@ -26,7 +26,7 @@ /* ======================================================================= Check User Options -========================================================================*/ +*/ parseOptions(P,Arg):- opts(P,Options,Arg,[]), !, @@ -35,7 +35,7 @@ /* ======================================================================= Options Grammar -========================================================================*/ +*/ opts(_,[]) --> []. opts(P,[O:do|L]) --> opt0(P,O), opts(P,L). @@ -61,7 +61,7 @@ /* ======================================================================= Check for Integer -========================================================================*/ +*/ isInteger([],Int,Int):- !. @@ -73,7 +73,7 @@ /* ======================================================================= Assert Options -========================================================================*/ +*/ assertOptions(_,[]). @@ -119,7 +119,7 @@ /* ======================================================================= Default Options -========================================================================*/ +*/ setDefaultOptions(P):- retractall(option(_,_)), @@ -136,22 +136,22 @@ /* ======================================================================= Display Options -========================================================================*/ +*/ showOptions(P):- - ( setof(O,V^D^(option(P,O,0,V,D),format(user_error,' ~p~n',[O])),_), !; true ), - ( setof(O,V^D^(option(P,O,-1,V,D),format(user_error,' ~p ~n',[O])),_), !; true ), - ( setof(O,V^D^(option(P,O,-2,V,D),format(user_error,' ~p (default: ~p)~n',[O,D])),_), !; true ), + ( setof(O,V^D^(option(P,O,0,V,D),'format'(user_error,' ~p~n',[O])),_), !; true ), + ( setof(O,V^D^(option(P,O,-1,V,D),'format'(user_error,' ~p ~n',[O])),_), !; true ), + ( setof(O,V^D^(option(P,O,-2,V,D),'format'(user_error,' ~p (default: ~p)~n',[O,D])),_), !; true ), ( setof(o(O,D),V^option(P,O,1,V,D),Options), !; true ), findall(_,( member(o(O,D),Options), findall(V,option(P,O,1,V,_),L), - format(user_error,' ~p (possible values: ~p, default: ~p)~n',[O,L,D])),_), + 'format'(user_error,' ~p (possible values: ~p, default: ~p)~n',[O,L,D])),_), nl(user_error). /* ======================================================================= Tokkie Options % option(Option,NumberArgs,Value,Default) -========================================================================*/ +*/ option( tokkie, '--help', 0, _, dont ). option( tokkie, '--version', 0, _, dont ). @@ -167,7 +167,7 @@ /* ======================================================================= Nutcracker Options % option(Option,NumberArgs,Value,Default) -========================================================================*/ +*/ option( nutcracker, '--help', 0, _, dont ). option( nutcracker, '--version', 0, _, dont ). @@ -200,7 +200,7 @@ /* ======================================================================= Boxer Options % option(Option,NumberArgs,Value,Default) -========================================================================*/ +*/ option( boxer, '--help', 0, _, dont ). option( boxer, '--version', 0, _, dont ). @@ -227,3 +227,7 @@ option( boxer, '--semantics', 1, V, drs ):- member(V,[drs,pdrs,fol,drg,tacitus,der]). option( boxer, '--input', -1, _, user_input ). option( boxer, '--output', -1, _, user_output). + +option( boxer, '--toploop', 0, _, dont ). +option( boxer, '--loaded', 0, _, dont ). + Index: src/prolog/lib/pdrs2drs.pl =================================================================== --- src/prolog/lib/pdrs2drs.pl (revision 2527) +++ src/prolog/lib/pdrs2drs.pl (working copy) @@ -8,7 +8,7 @@ /* ======================================================================== Main Predicate -======================================================================== */ +*/ pdrs2drs(PDRS,DRS):- pdrs2drs(PDRS,[dom(g):[]-D,con(g):[]-C],Projected,B), @@ -19,7 +19,7 @@ /* ======================================================================== Accommodation -======================================================================== */ +*/ accommodate([]):- !. accommodate([dom(_):X-X|L]):- !, accommodate(L). @@ -28,7 +28,7 @@ /* ======================================================================== Translate PDRSs into DRSs -======================================================================== */ +*/ pdrs2drs(lab(X,B1),G1,G2,lab(X,B2)):- !, pdrs2drs(B1,G1,G2,B2). @@ -61,7 +61,7 @@ /* ======================================================================== Project Domains -======================================================================== */ +*/ dom2drs([],G,G). @@ -78,7 +78,7 @@ /* ======================================================================== Project Conditions -======================================================================== */ +*/ cons2drs([],G,G). @@ -97,7 +97,7 @@ /* ======================================================================== Project Condition -======================================================================== */ +*/ con2drs(not(B1),G1,G2,not(B2)):- !, pdrs2drs(B1,G1,G2,B2). @@ -136,7 +136,7 @@ /* ======================================================================== Select Domain -======================================================================== */ +*/ select(dom(B1),G1,G2,dom(B1):C1-C2):- select(dom(B2):C1-C2,G1,G2), B1==B2, !. @@ -147,7 +147,7 @@ /* ======================================================================== Select Conditions -======================================================================== */ +*/ select(con(B1),G1,G2,con(B1):C1-C2):- select(con(B2):C1-C2,G1,G2), B1==B2, !. Index: src/prolog/lib/verbnet2boxer.pl =================================================================== --- src/prolog/lib/verbnet2boxer.pl (revision 2527) +++ src/prolog/lib/verbnet2boxer.pl (working copy) @@ -1,7 +1,7 @@ /* ======================================================================== File Search Paths -=========================================================================*/ + */ file_search_path(semlib, 'src/prolog/lib'). file_search_path(boxer, 'src/prolog/boxer'). @@ -11,14 +11,14 @@ /* ======================================================================== VerbNet -=========================================================================*/ + */ :- dynamic verbnet/3. /* ======================================================================== Modules -=========================================================================*/ + */ :- use_module(library(lists),[member/2]). :- use_module(boxer(slashes)). @@ -26,7 +26,7 @@ /* ======================================================================== Main -=========================================================================*/ +*/ verbnet2prolog(File):- load_xml_file(File,T), @@ -38,7 +38,7 @@ /* ---------------------------------------------------------------------- Pretty Printing XML ----------------------------------------------------------------------- */ + */ pretty_print([],_). @@ -55,7 +55,7 @@ /* ---------------------------------------------------------------------- Processing all members of a VerbNet class ----------------------------------------------------------------------- */ + */ members(X,File,XID,Names):- findall(Sub:YID,(elements(X,['SUBCLASSES','VNSUBCLASS'],f(Y,Sub)),value(Y,'ID',YID)),Subs), @@ -68,7 +68,7 @@ /* ---------------------------------------------------------------------- Processing all subclasses of a VerbNet class ----------------------------------------------------------------------- */ + */ subclasses([],_,[]). @@ -80,7 +80,7 @@ /* ---------------------------------------------------------------------- Process frames ----------------------------------------------------------------------- */ + */ frames([],_,_,_):- !. @@ -94,18 +94,18 @@ ccg(SubCat,C^C,CCG,Missing,Roles), atom_chars(ID,IDChars), formatID(IDChars,[_,_|FID]), - format('~n%%% File: ~p~n%%% Primary: ~p (~p)~n%%% Syntax: ~p~n',[File,Primary,ID,Normal]), + 'format'('~n%%% File: ~p~n%%% Primary: ~p (~p)~n%%% Syntax: ~p~n',[File,Primary,ID,Normal]), write('%%% CCG: '), write(CCG), - format('~n%%% Roles: ~p~n',[Roles]), - ( Missing = [], !; format('%%% Missing: ~p~n',[Missing]) ), - format('%%% Example: ~p~n%%%~n',[Example]), + 'format'('~n%%% Roles: ~p~n',[Roles]), + ( Missing = [], !; 'format'('%%% Missing: ~p~n',[Missing]) ), + 'format'('%%% Example: ~p~n%%%~n',[Example]), frameMembers(Names,CCG,FID,Roles), frames(L,Names,ID,File). /* ---------------------------------------------------------------------- Check if there is an example for a frame ----------------------------------------------------------------------- */ + */ example(Frame,Example):- elements(Frame,['EXAMPLES','EXAMPLE'],f(_,[Example])), !. @@ -115,22 +115,22 @@ /* ---------------------------------------------------------------------- Process all members of a frame ----------------------------------------------------------------------- */ + */ frameMembers([],_,_,_). frameMembers([Name1|L],CCG,FID,Roles):- reformatName(Name1,Name2), - format('verbnet(~q, ',[Name2]), + 'format'('verbnet(~q, ',[Name2]), write(CCG), - format(', ~q, ~q).~n',[Roles,FID]), + 'format'(', ~q, ~q).~n',[Roles,FID]), add(CCG,Roles), frameMembers(L,CCG,FID,Roles). /* ---------------------------------------------------------------------- Reformat Verbnet names (underscores for spaces) ----------------------------------------------------------------------- */ + */ reformatName(N1,N2):- atom_chars(N1,C1), @@ -144,7 +144,7 @@ /* ---------------------------------------------------------------------- Add entries to Prolog database ----------------------------------------------------------------------- */ + */ add(CCG,Roles):- verbnet(CCG,Roles,Old), !, @@ -158,7 +158,7 @@ /* ---------------------------------------------------------------------- Format VerbNet ID ----------------------------------------------------------------------- */ + */ formatID(Chars,[Pre,Sep1|L]):- Seps = ['-','.'], member(Sep1,Seps), @@ -180,7 +180,7 @@ /* ---------------------------------------------------------------------- Printing the subcat frame ----------------------------------------------------------------------- */ + */ subcat([],Acc,Acc). subcat([E|L],Acc1,Acc3):- cat(E,Acc1,Acc2), subcat(L,Acc2,Acc3). @@ -188,7 +188,7 @@ /* ---------------------------------------------------------------------- Constructing CCG category ----------------------------------------------------------------------- */ + */ % terminating % @@ -215,7 +215,7 @@ /* ---------------------------------------------------------------------- Syntactic Restrictions ----------------------------------------------------------------------- */ + */ restr(Restr,Type):- Restr = [element('SYNRESTRS',[],L)], @@ -253,7 +253,7 @@ /* ---------------------------------------------------------------------- Printing a category ----------------------------------------------------------------------- */ + */ cat(element('NP', [value=Value], R),A,[s_ng:Value|A]):- restr(R,ac_ing), !. cat(element('NP', [value=Value], R),A,[s_to:Value|A]):- restr(R,sc_to_inf), !. @@ -274,7 +274,7 @@ /* ---------------------------------------------------------------------- Processing elements of the XML tree ----------------------------------------------------------------------- */ + */ elements([element(X,F,L)|_],[X],f(F,L)). elements([element(X,_,L)|_],[X|R],A):- elements(L,R,A). @@ -283,7 +283,7 @@ /* ---------------------------------------------------------------------- Accessing a value ----------------------------------------------------------------------- */ + */ value([Name=Value|_],Name,Value):- !. value([_|L],Name,Value):- value(L,Name,Value). @@ -291,14 +291,14 @@ /* ---------------------------------------------------------------------- VerbNet Directory ----------------------------------------------------------------------- */ + */ verbnet_dir('ext/VerbNet/'). /* ---------------------------------------------------------------------- Processing all XML files ----------------------------------------------------------------------- */ + */ process([]):- planB. @@ -308,8 +308,8 @@ planB:- setof(X,A^B^verbnet(X,A,B),L), - format('~n%%% Most frequent roles for a particular CCG category.~n%%%~n',[]), - format('verbnet(_, ~p, [~q], []). % ~n',[s:adj\np,'Topic']), + 'format'('~n%%% Most frequent roles for a particular CCG category.~n%%%~n',[]), + 'format'('verbnet(_, ~p, [~q], []). % ~n',[s:adj\np,'Topic']), planB(L). planB([]). @@ -318,23 +318,23 @@ verbnet(CCG,R,N), \+ (verbnet(CCG,_,M), M>N), write('verbnet(_, '), write(CCG), - format(' , ~q, []). % n=~p~n',[R,N]), + 'format'(' , ~q, []). % n=~p~n',[R,N]), planB(L). /* ---------------------------------------------------------------------- Header ----------------------------------------------------------------------- */ + */ header:- - format('%%% automatically generated by src/prolog/lib/verbnet2boxer.pl~n%%%~n',[]), - format(':- module(verbnet,[verbnet/3,verbnet/4]).~n',[]), - format(':- use_module(boxer(slashes)).~n~n',[]), - format('%%% wrapper~n%%%~nverbnet(A,B,C):- verbnet(A,B,C,_).~n'). + 'format'('%%% automatically generated by src/prolog/lib/verbnet2boxer.pl~n%%%~n',[]), + 'format'(':- module(verbnet,[verbnet/3,verbnet/4]).~n',[]), + 'format'(':- use_module(boxer(slashes)).~n~n',[]), + 'format'('%%% wrapper~n%%%~nverbnet(A,B,C):- verbnet(A,B,C,_).~n'). /* ---------------------------------------------------------------------- Wildcard for XML files to be processed ----------------------------------------------------------------------- */ + */ wildCard('*.xml'). %wildCard('put-9.1.xml'). @@ -346,7 +346,7 @@ /* ---------------------------------------------------------------------- Start Predicate ----------------------------------------------------------------------- */ + */ run:- verbnet_dir(Dir), Index: src/prolog/lib/verbnet2gmb.pl =================================================================== --- src/prolog/lib/verbnet2gmb.pl (revision 2527) +++ src/prolog/lib/verbnet2gmb.pl (working copy) @@ -1,7 +1,7 @@ /* ======================================================================== File Search Paths -=========================================================================*/ + */ file_search_path(semlib, 'src/prolog/lib'). file_search_path(boxer, 'src/prolog/boxer'). @@ -10,14 +10,14 @@ /* ======================================================================== VerbNet -=========================================================================*/ + */ :- dynamic roles/2. /* ======================================================================== Modules -=========================================================================*/ + */ :- use_module(library(lists),[reverse/2,member/2,append/3]). :- use_module(boxer(slashes)). @@ -26,19 +26,19 @@ /* ======================================================================== Generate -=========================================================================*/ + */ generate([],_). generate([X|L],V):- length(X,Len), - format('~p ~p ~q~n',[V,Len,X]), + 'format'('~p ~p ~q~n',[V,Len,X]), generate(L,V). /* ======================================================================== Process -=========================================================================*/ + */ process([]). @@ -50,7 +50,7 @@ /* ======================================================================== Main -=========================================================================*/ + */ run:- setof(V,A^B^(verbnet(V,A,B),nonvar(V)),L), Index: src/prolog/lib/verbnet2patterns.pl =================================================================== --- src/prolog/lib/verbnet2patterns.pl (revision 2527) +++ src/prolog/lib/verbnet2patterns.pl (working copy) @@ -5,7 +5,7 @@ /* ---------------------------------------------------------------------- Compute Patterns ----------------------------------------------------------------------- */ + */ patterns:- init(Len1,Len2), @@ -18,13 +18,13 @@ write(':- module(verbnet,[vnpattern/3]).'),nl,nl, factors(Max), printpatterns(Max), - format('% max: ~p~n',[Max]), + 'format'('% max: ~p~n',[Max]), halt. /* ---------------------------------------------------------------------- Init VerbNet ID ----------------------------------------------------------------------- */ + */ init(Len1,Len2):- lensepid('.',Len1), @@ -44,7 +44,7 @@ /* ---------------------------------------------------------------------- Compute frequencies of roles ----------------------------------------------------------------------- */ + */ freq([]). freq([Ma|L]):- roleFreq(Ma), freq(L). @@ -59,7 +59,7 @@ /* ---------------------------------------------------------------------- Compute VerbNet Id ----------------------------------------------------------------------- */ + */ computeID([X],[Max],Factor,X):- !, (Max > 9, !, Factor = 100; Factor = 10). @@ -73,7 +73,7 @@ /* ---------------------------------------------------------------------- Compute Factors for VerbNet ID ----------------------------------------------------------------------- */ + */ factors(Max):- findall(I,vnpattern(_,_,_,I),L), @@ -95,13 +95,13 @@ /* ---------------------------------------------------------------------- Print Patterns ----------------------------------------------------------------------- */ + */ printpatterns(Max):- vnpattern(Verb,Pat,PreMap,NumList), map(PreMap,Map), computeID(NumList,Max,_,Num), - format('~q. %%% ~p~n',[vnpattern(Verb,Num,Map),Pat]), + 'format'('~q. %%% ~p~n',[vnpattern(Verb,Num,Map),Pat]), fail. printpatterns(_). @@ -109,7 +109,7 @@ /* ---------------------------------------------------------------------- Format ID ----------------------------------------------------------------------- */ + */ formatid(['.'|L1],N1,N,L2):- !, N2 is N1 - 1, @@ -142,7 +142,7 @@ /* ---------------------------------------------------------------------- Mapping from Proto to VerbNet roles ----------------------------------------------------------------------- */ + */ map(M1,[Prep:Role|M3]):- sublist([prep:Prep,np:Role],M1,M2), map(M2,M3), !. map(M1,[Prep:Role|M3]):- sublist([prep:Prep,s:Role],M1,M2), map(M2,M3), !. @@ -155,12 +155,12 @@ map([np:R1,v],[agent:R1]):- !. map([v,np:R1],[agent:R1]):- !. -% map(X,_):- format('% ~p~n',[X]), fail. +% map(X,_):- 'format'('% ~p~n',[X]), fail. /* ---------------------------------------------------------------------- Probability of pattern, based on role frequency ----------------------------------------------------------------------- */ + */ patprob([],0):- !. patprob([_:R|L],Sum):- role(R,Tmp1), !, patprob(L,Tmp2), Sum is Tmp1 + Tmp2. @@ -169,7 +169,7 @@ /* ---------------------------------------------------------------------- Patterns ----------------------------------------------------------------------- */ + */ patterns([],_,_,_):- !. @@ -195,7 +195,7 @@ /* ---------------------------------------------------------------------- Add Patterns to Database (longest one first) ----------------------------------------------------------------------- */ + */ addpat(Verb,Pat,Map,Id):- member(prep:Prep,Map), @@ -214,7 +214,7 @@ /* ---------------------------------------------------------------------- Split Patterns ----------------------------------------------------------------------- */ + */ split([],[],[]). @@ -230,7 +230,7 @@ /* ---------------------------------------------------------------------- Sub List ----------------------------------------------------------------------- */ + */ sublist(Sub,Old,New):- append(Start,Rest,Old), @@ -239,7 +239,7 @@ /* ---------------------------------------------------------------------- Self Starting ----------------------------------------------------------------------- */ + */ :- patterns. Index: src/prolog/lib/verbnet2prolog.pl =================================================================== --- src/prolog/lib/verbnet2prolog.pl (revision 2527) +++ src/prolog/lib/verbnet2prolog.pl (working copy) @@ -19,7 +19,7 @@ /* ---------------------------------------------------------------------- Pretty Printing XML ----------------------------------------------------------------------- */ + */ pretty_print([],_). @@ -36,7 +36,7 @@ /* ---------------------------------------------------------------------- Checking Syntax ----------------------------------------------------------------------- */ + */ check(ID,X):- elements(X,['FRAMES','FRAME'],f(_,Frame)), @@ -56,7 +56,7 @@ /* ---------------------------------------------------------------------- Processing all members of a VerbNet class ----------------------------------------------------------------------- */ + */ members(X,File,SuperFrames,XID):- findall(Name,(elements(X,['MEMBERS','MEMBER'],f(Member,_)),value(Member,name,Name)),Names), @@ -70,7 +70,7 @@ /* ---------------------------------------------------------------------- Process a member/frame pair ----------------------------------------------------------------------- */ + */ frameMember([],_,_,_):- !. @@ -84,19 +84,19 @@ elements(Frame,['DESCRIPTION'],f(De,_)), value(De,primary,Pr), elements(Frame,['SYNTAX'],f(_,Syntax)), - format('verbnet(~q, ~q, ',[Name,Pr]), + 'format'('verbnet(~q, ~q, ',[Name,Pr]), subcatpat(Syntax,[],SubCatPat), - format('~q, ',[SubCatPat]), + 'format'('~q, ',[SubCatPat]), subcat(Syntax,[],SubCat), atom_chars(ID,IDChars), formatID(IDChars,[_,_|FID]), - format('~q,~q). %%% ~p (~p)~n',[SubCat,FID,ID,File]), !, + 'format'('~q,~q). %%% ~p (~p)~n',[SubCat,FID,ID,File]), !, pairMemberFrame(L,Frame,ID,File). /* ---------------------------------------------------------------------- Format VerbNet ID ----------------------------------------------------------------------- */ + */ formatID(Chars,[Pre,Sep1|L]):- Seps = ['-','.'], member(Sep1,Seps), @@ -118,7 +118,7 @@ /* ---------------------------------------------------------------------- Printing the subcat frame ----------------------------------------------------------------------- */ + */ subcat([],Acc1,Acc2):- postproc(Acc1,[],Acc2). subcat([E|L],Acc1,Acc3):- cat(E,Acc1,Acc2), subcat(L,Acc2,Acc3). @@ -129,7 +129,7 @@ /* ---------------------------------------------------------------------- Post Processing (reverse + rewriting) ----------------------------------------------------------------------- */ + */ postproc([],L,L). postproc([np,pp|L1],Acc,L2):- !, postproc(L1,[pp|Acc],L2). @@ -140,7 +140,7 @@ /* ---------------------------------------------------------------------- Syntactic Restrictions ----------------------------------------------------------------------- */ + */ restr(Restr,Type):- Restr = [element('SYNRESTRS',[],L)], @@ -178,7 +178,7 @@ /* ---------------------------------------------------------------------- Printing a category ----------------------------------------------------------------------- */ + */ cat(element('NP', [value=Value], R),A,[s:Value|A]):- s_restr(S), restr(R,S), !. cat(element('NP', [value=Value], _),A,[np:Value|A]):- !. @@ -209,7 +209,7 @@ /* ---------------------------------------------------------------------- Processing elements of the XML tree ----------------------------------------------------------------------- */ + */ elements([element(X,F,L)|_],[X],f(F,L)). elements([element(X,_,L)|_],[X|R],A):- elements(L,R,A). @@ -218,7 +218,7 @@ /* ---------------------------------------------------------------------- Accessing a value ----------------------------------------------------------------------- */ + */ value([Name=Value|_],Name,Value):- !. value([_|L],Name,Value):- value(L,Name,Value). @@ -226,14 +226,14 @@ /* ---------------------------------------------------------------------- VerbNet Directory ----------------------------------------------------------------------- */ + */ verbnet_dir('ext/VerbNet/'). /* ---------------------------------------------------------------------- Processing all XML files ----------------------------------------------------------------------- */ + */ process([]). process([File|L]):- @@ -244,7 +244,7 @@ /* ---------------------------------------------------------------------- Start Predicate ----------------------------------------------------------------------- */ + */ run:- verbnet_dir(Dir), Index: src/prolog/nutcracker/callInference.pl =================================================================== --- src/prolog/nutcracker/callInference.pl (revision 2527) +++ src/prolog/nutcracker/callInference.pl (working copy) @@ -13,7 +13,7 @@ /*======================================================================== Initialise Theorem Provers -========================================================================*/ +*/ initEngine(Opt,Temp,Axioms,Formula,vampire):- option(Opt,vampire), @@ -63,7 +63,7 @@ /* ======================================================================== Time Limit -======================================================================== */ +*/ timeLimit(TimeLim):- option('--timelim',TimeLim), @@ -74,7 +74,7 @@ /* ======================================================================== Calls to Theorem Provers and Model Builders -======================================================================== */ +*/ callTPandMB(Dir,Axioms,TPProblem,MBProblem,MinDom,MaxDom,Model,Engine):- timeLimit(TimeLim), @@ -88,7 +88,7 @@ /* ======================================================================== Call to Model Builder ("second opinion") -======================================================================== */ +*/ callMBbis(_,_,_,Model,Model,Engine,Engine):- option('--mbbis',none), !. @@ -108,8 +108,8 @@ /* ======================================================================== - Read result and translatate into standard format -======================================================================== */ + Read result and translatate into standard 'format' +*/ readResult(Model,Temp,Engine):- atom_concat(Temp,'/tpmb.out',File), @@ -136,7 +136,7 @@ /*======================================================================== Translate Paradox-type Model into Blackburn & Bos Models -========================================================================*/ +*/ paradox2blackburnbos(Paradox,model(D,F)):- Paradox = paradox(Terms), \+ Terms=[], @@ -152,7 +152,7 @@ /*======================================================================== Translate Paradox Terms to Domain -========================================================================*/ +*/ paradox2d([],D-D). @@ -191,7 +191,7 @@ /*======================================================================== Translate Paradox Terms to Interpretation Function -========================================================================*/ +*/ paradox2f([],F-F). @@ -272,7 +272,7 @@ /*======================================================================== Translate Mace-type Model into Blackburn & Bos Models -========================================================================*/ +*/ mace2blackburnbos(Mace,model(D,F)):- Mace = interpretation(Size,Terms), @@ -285,7 +285,7 @@ /*======================================================================== Translate Mace Model to Domain -========================================================================*/ +*/ mace2d(N,N,[V]):- name(N,Codes), @@ -301,7 +301,7 @@ /*======================================================================== Translate Mace Model to Interpretation Function -========================================================================*/ +*/ mace2f([],_,[]):- !. @@ -340,7 +340,7 @@ /*======================================================================== Take positive values of one-place predicates -========================================================================*/ +*/ positiveValues([],_,[]). @@ -357,7 +357,7 @@ /*======================================================================== Take positive values of two-place predicates -========================================================================*/ +*/ positivePairValues([],_,_,_,[]). Index: src/prolog/nutcracker/counting.pl =================================================================== --- src/prolog/nutcracker/counting.pl (revision 2527) +++ src/prolog/nutcracker/counting.pl (working copy) @@ -3,14 +3,14 @@ /*======================================================================== Load Modules -========================================================================*/ +*/ :- use_module(semlib(options),[option/2]). /* ======================================================================= Get Background Knowledge (Counting) -========================================================================*/ +*/ countingAxioms(F,F):- option('--plural',false), !. Index: src/prolog/nutcracker/eDRT.pl =================================================================== --- src/prolog/nutcracker/eDRT.pl (revision 2527) +++ src/prolog/nutcracker/eDRT.pl (working copy) @@ -1,7 +1,7 @@ /*======================================================================== File Search Paths -========================================================================*/ +*/ file_search_path(semlib, 'src/prolog/lib'). file_search_path(nutcracker, 'src/prolog/nutcracker'). @@ -10,7 +10,7 @@ /*======================================================================== Load other libraries -========================================================================*/ +*/ :- use_module(library(lists),[select/3,append/3]). :- use_module(boxer(slashes)). @@ -23,7 +23,7 @@ /* ---------------------------------------------------------------------------------- Simple Lexicon ----------------------------------------------------------------------------------- */ +------------ */ lex(every, (s/(s\np))/n, (x1-C)-((((x1-B)-drs([],[imp(drs([[]:x1],[pos(C)]),B)]))-D)-D) ). @@ -65,7 +65,7 @@ /* ---------------------------------------------------------------------------------- Combinatory Rules ----------------------------------------------------------------------------------- */ +------------ */ combine(A,B,C,D,E,fa(D,E)):- fa(A,B,C). combine(A,B,C,D,E,ba(D,E)):- ba(A,B,C). @@ -73,7 +73,7 @@ /* ---------------------------------------------------------------------------------- CCG ----------------------------------------------------------------------------------- */ +------------ */ fa((A/B):X-Y, B:X, A:Y). ba(A:X, (B\A):X-Y, B:Y). @@ -82,7 +82,7 @@ /* ---------------------------------------------------------------------------------- Examples ----------------------------------------------------------------------------------- */ +------------ */ example( 1, [mia,smokes,'.']). example( 2, [two,men,smoke,'.']). @@ -114,7 +114,7 @@ /* ---------------------------------------------------------------------------------- Test ----------------------------------------------------------------------------------- */ +------------ */ example(Example):- setDefaultOptions(nutcracker), @@ -131,7 +131,7 @@ /* ---------------------------------------------------------------------------------- RTE ----------------------------------------------------------------------------------- */ +------------ */ rte(E1,E2):- setDefaultOptions(nutcracker), @@ -150,7 +150,7 @@ /* ---------------------------------------------------------------------------------- Chart Init ----------------------------------------------------------------------------------- */ +------------ */ initChart([],X,X). @@ -162,7 +162,7 @@ /* ---------------------------------------------------------------------------------- Parsing (CYK) ----------------------------------------------------------------------------------- */ +------------ */ parse(Start,K,End,FOL):- K > End, @@ -185,7 +185,7 @@ /* ---------------------------------------------------------------------------------- Output ----------------------------------------------------------------------------------- */ +------------ */ output(Cat,Sem,Der,FOL):- write(cat:Cat),nl, @@ -198,7 +198,7 @@ /* ---------------------------------------------------------------------------------- Combine ----------------------------------------------------------------------------------- */ +------------ */ parse(M,L):- chart(M,X,Cat1,Sem1,Der1), @@ -211,7 +211,7 @@ /* ---------------------------------------------------------------------------------- Inference ----------------------------------------------------------------------------------- */ +------------ */ inference(FOL):- MaxDomSize=20, @@ -292,7 +292,7 @@ /* ---------------------------------------------------------------------------------- POS reduction ----------------------------------------------------------------------------------- */ +------------ */ reduce(drs(D,Conds),Reduced):- select(pos(drs([],C1)),Conds,C2), !, @@ -324,7 +324,7 @@ /* ---------------------------------------------------------------------------------- drs2fol ----------------------------------------------------------------------------------- */ +------------ */ drs2fol(drs([],[Cond]),Formula):- !, cond2fol(Cond,Formula). @@ -338,7 +338,7 @@ /* ======================================================================== Referents to variable -=========================================================================*/ + */ ref2var(x1,'X'):- !. ref2var(x2,'Y'):- !. @@ -346,7 +346,7 @@ /* ======================================================================== Translate DRS-Conditions into FOL formulas -=========================================================================*/ + */ cond2fol(_:C,F):- !, cond2fol(C,F). @@ -384,7 +384,7 @@ /*======================================================================== Ensure F is a number or atom -========================================================================*/ +*/ symbol(Type,F1,0,F2):- !, symbol(Type,F1,1,F2). symbol(_Type,F1,_Sense,F2):- F1=F2. @@ -392,24 +392,24 @@ /* ======================================================================= Print Model -========================================================================*/ +*/ printModel(model(D,[]),Stream):- !, - format(Stream,'model(~p, [])',[D]). + 'format'(Stream,'model(~p, [])',[D]). printModel(model(D,[F]),Stream):- !, - format(Stream,'model(~p,~n [~p])',[D,F]). + 'format'(Stream,'model(~p,~n [~p])',[D,F]). printModel(model(D,[X,Y|F]),Stream):- !, sort([X,Y|F],[First|Sorted]), - format(Stream,'model(~p,~n [~p,~n',[D,First]), + 'format'(Stream,'model(~p,~n [~p,~n',[D,First]), printModel(Sorted,Stream). printModel([Last],Stream):- !, - format(Stream,' ~p])',[Last]). + 'format'(Stream,' ~p])',[Last]). printModel([X|L],Stream):- !, - format(Stream,' ~p,~n',[X]), + 'format'(Stream,' ~p,~n',[X]), printModel(L,Stream). printModel(Model,Stream):- Index: src/prolog/nutcracker/estimate.pl =================================================================== --- src/prolog/nutcracker/estimate.pl (revision 2527) +++ src/prolog/nutcracker/estimate.pl (working copy) @@ -30,7 +30,7 @@ \+ ( model(_,F,_,_,T2) ,T2 > T1), !, Best = best(Tau,Acc,Evidence), length(Evidence,Len), - format('informative if ~p diff >= ~p (accuracy: ~p, n=~p)~n',[F,Tau,Acc,Len]). + 'format'('informative if ~p diff >= ~p (accuracy: ~p, n=~p)~n',[F,Tau,Acc,Len]). % write(Evidence), nl. est1(L,F,T1,best(T,Best,IDs),Max):- @@ -48,7 +48,7 @@ \+ (model(_,FD,FF,_,_,DTau,_), DTau > TauD), \+ (model(_,FD,FF,_,_,_,FTau), FTau > TauF), !, Best = best(Tau1,Tau2,Acc,_Evidence), - format('informative if ~p diff >= ~p OR ~p diff >= ~p (accuracy ~p)~n',[FD,Tau1,FF,Tau2,Acc]). + 'format'('informative if ~p diff >= ~p OR ~p diff >= ~p (accuracy ~p)~n',[FD,Tau1,FF,Tau2,Acc]). % write(Evidence), nl. est2(L,FD,FF,TauD1,TauF1,best(TauD,TauF,Best,IDs),Max):- Index: src/prolog/nutcracker/fol2bliksem.pl =================================================================== --- src/prolog/nutcracker/fol2bliksem.pl (revision 2527) +++ src/prolog/nutcracker/fol2bliksem.pl (working copy) @@ -7,31 +7,31 @@ /* ======================================================================== Translates formula to otter syntax on Stream -======================================================================== */ +*/ fol2bliksem(Formula,Stream):- - format(Stream,'~nAuto.~n~n',[]), + 'format'(Stream,'~nAuto.~n~n',[]), printBliksemFormula(Stream,Formula). fol2bliksem(Axioms,Formula,Stream):- - format(Stream,'~nAuto.~n~n',[]), + 'format'(Stream,'~nAuto.~n~n',[]), printBliksemFormulas(Axioms,Stream), printBliksemFormula(Stream,Formula). /* ======================================================================== Print a Bliksem formula (introducing tab) -======================================================================== */ +*/ printBliksemFormula(Stream,F):- \+ \+ ( numbervars(F,0,_), printBliksem(F,5,Stream) ), - format(Stream,'.~n',[]). + 'format'(Stream,'.~n',[]). /* ======================================================================== Print a list of Bliksem formulas -======================================================================== */ +*/ printBliksemFormulas([],_):- !. @@ -42,7 +42,7 @@ /* ======================================================================== Print Bliksem formulas -======================================================================== */ +*/ printBliksem(some(X,Formula),Tab,Stream):- !, write(Stream,'(< '), @@ -61,7 +61,7 @@ printBliksem(and(Phi,Psi),Tab,Stream):- !, write(Stream,'('), printBliksem(Phi,Tab,Stream), - format(Stream,' & ~n',[]), + 'format'(Stream,' & ~n',[]), tab(Stream,Tab), NewTab is Tab + 5, printBliksem(Psi,NewTab,Stream), Index: src/prolog/nutcracker/fol2otter.pl =================================================================== --- src/prolog/nutcracker/fol2otter.pl (revision 2527) +++ src/prolog/nutcracker/fol2otter.pl (working copy) @@ -9,7 +9,7 @@ /*======================================================================== Translates formula to Otter syntax on Stream -========================================================================*/ +*/ fol2otter(Formula,Stream):- headerOtter(Stream), @@ -25,22 +25,22 @@ /*======================================================================== Header and Footer OTTER -========================================================================*/ +*/ headerOtter(Stream):- - format(Stream,'set(auto).~n~n',[]), - format(Stream,'assign(max_seconds,100).~n~n',[]), - format(Stream,'clear(print_proofs).~n~n',[]), - format(Stream,'set(prolog_style_variables).~n~n',[]), - format(Stream,'formula_list(usable).~n~n',[]). + 'format'(Stream,'set(auto).~n~n',[]), + 'format'(Stream,'assign(max_seconds,100).~n~n',[]), + 'format'(Stream,'clear(print_proofs).~n~n',[]), + 'format'(Stream,'set(prolog_style_variables).~n~n',[]), + 'format'(Stream,'formula_list(usable).~n~n',[]). footerOtter(Stream):- - format(Stream,'~nend_of_list.~n',[]). + 'format'(Stream,'~nend_of_list.~n',[]). /*======================================================================== Translates formula to MACE syntax on Stream -========================================================================*/ +*/ fol2mace(Formula,Stream):- headerMace(Stream), @@ -56,31 +56,31 @@ /*======================================================================== Header and footer MACE -========================================================================*/ +*/ headerMace(Stream):- - format(Stream,'set(auto).~n~n',[]), - format(Stream,'clear(print_proofs).~n~n',[]), - format(Stream,'set(prolog_style_variables).~n~n',[]), - format(Stream,'formula_list(usable).~n~n',[]). + 'format'(Stream,'set(auto).~n~n',[]), + 'format'(Stream,'clear(print_proofs).~n~n',[]), + 'format'(Stream,'set(prolog_style_variables).~n~n',[]), + 'format'(Stream,'formula_list(usable).~n~n',[]). footerMace(Stream):- - format(Stream,'~nend_of_list.~n',[]). + 'format'(Stream,'~nend_of_list.~n',[]). /*======================================================================== Print an Otter formula (introducing tab) -========================================================================*/ +*/ printOtterFormula(F,Stream):- \+ \+ ( numbervars(F,0,_), printOtter(F,5,Stream) ), - format(Stream,'.~n',[]). + 'format'(Stream,'.~n',[]). /*======================================================================== Print a set of Otter formulas -========================================================================*/ +*/ printOtterFormulas([],_). @@ -91,7 +91,7 @@ /*======================================================================== Print Otter formulas -========================================================================*/ +*/ printOtter(some(X,Formula),Tab,Stream):- !, write(Stream,'(exists '), @@ -110,7 +110,7 @@ printOtter(and(Phi,Psi),Tab,Stream):- !, write(Stream,'('), printOtter(Phi,Tab,Stream), - format(Stream,' & ~n',[]), + 'format'(Stream,' & ~n',[]), tab(Stream,Tab), NewTab is Tab + 5, printOtter(Psi,NewTab,Stream), Index: src/prolog/nutcracker/fol2tptp.pl =================================================================== --- src/prolog/nutcracker/fol2tptp.pl (revision 2527) +++ src/prolog/nutcracker/fol2tptp.pl (working copy) @@ -12,7 +12,7 @@ /* ======================================================================== Select TPTP syntax style (default: New style) -======================================================================== */ +*/ fol2tptp(Conjecture,Stream):- fol2tptpNew(Conjecture,Stream). fol2tptp(Axioms,Conjecture,Stream):- fol2tptpNew(Axioms,Conjecture,Stream). @@ -20,7 +20,7 @@ /* ======================================================================== Translates formula to TPTP syntax on Stream (new style TPTP) -======================================================================== */ +*/ fol2tptpNew(Formula,Stream):- write(Stream,'fof(nutcracker,conjecture,'), @@ -31,7 +31,7 @@ /* ======================================================================== Translates axioms+formula to TPTP syntax on Stream (new style TPTP) -======================================================================== */ +*/ fol2tptpNew([],Formula,Stream):- !, fol2tptpNew(Formula,Stream). @@ -45,7 +45,7 @@ /* ======================================================================== Translates formula to TPTP syntax on Stream (old style TPTP) -======================================================================== */ +*/ fol2tptpOld(Formula,Stream):- write(Stream,'input_formula(nutcracker,conjecture,'), @@ -56,7 +56,7 @@ /* ======================================================================== Translates axioms+formula to TPTP syntax on Stream (old style TPTP) -======================================================================== */ +*/ fol2tptpOld([],Formula,Stream):- !, fol2tptpOld(Formula,Stream). @@ -70,7 +70,7 @@ /* ======================================================================== Print TPTP formulas -======================================================================== */ +*/ printTPTP(some(X,Formula),Stream):- !, write(Stream,'(? ['), @@ -132,7 +132,7 @@ /* ======================================================================== Print arguments -======================================================================== */ +*/ printArgs([X],Stream):- !, printArg(Stream,X). @@ -145,7 +145,7 @@ /* ======================================================================== Print argument -======================================================================== */ +*/ printArg(Stream,X):- functor(X,'$VAR',1), !, Index: src/prolog/nutcracker/input.pl =================================================================== --- src/prolog/nutcracker/input.pl (revision 2527) +++ src/prolog/nutcracker/input.pl (working copy) @@ -50,7 +50,7 @@ /*======================================================================== Read Model from File -========================================================================*/ +*/ openModel(Dir,Type,Model):- atomic_list_concat([Dir,'/',Type,'.mod'],File), @@ -64,7 +64,7 @@ /*======================================================================== Check Input File -========================================================================*/ +*/ checkInput(File):- \+ atom(File), !, @@ -90,7 +90,7 @@ /* ------------------------------------------------------------------------ Identify IDs in the input file ------------------------------------------------------------------------- */ +-- */ loadDRS(D):- id(_,I), @@ -109,7 +109,7 @@ /* ------------------------------------------------------------------------ Determine length of DRS ------------------------------------------------------------------------- */ +-- */ lenDRS(alfa(_,_,B),Len):- !, lenDRS(B,Len). lenDRS(smerge(B,_),Len):- !, lenDRS(B,Len1), Len is Len1 + 1. Index: src/prolog/nutcracker/miniFrameNet.pl =================================================================== --- src/prolog/nutcracker/miniFrameNet.pl (revision 2527) +++ src/prolog/nutcracker/miniFrameNet.pl (working copy) @@ -7,7 +7,7 @@ /* ------------------------------------------------------------------------ Main Predicate ------------------------------------------------------------------------- */ +-- */ axiomsFN(DRS,Axioms):- option('--roles',framenet), @@ -21,14 +21,14 @@ /* ------------------------------------------------------------------------ File with Framenet Axioms ------------------------------------------------------------------------- */ +-- */ framenetfile('working/framenet/framenet.pl'). /* ------------------------------------------------------------------------ Find Frames in DRS ------------------------------------------------------------------------- */ +-- */ findFrames(drs(_,C),F1-F2):- !, findFrames(C,F1-F2). findFrames(smerge(A,B),F1-F3):- !, findFrames(A,F1-F2), findFrames(B,F2-F3). @@ -50,7 +50,7 @@ /* ------------------------------------------------------------------------ Select Axioms ------------------------------------------------------------------------- */ +-- */ selectAxioms([],[]). @@ -64,7 +64,7 @@ /* ------------------------------------------------------------------------ Load FrameNet ------------------------------------------------------------------------- */ +-- */ loadFN:- framenetfile(File), Index: src/prolog/nutcracker/miniWordNet.pl =================================================================== --- src/prolog/nutcracker/miniWordNet.pl (revision 2527) +++ src/prolog/nutcracker/miniWordNet.pl (working copy) @@ -13,7 +13,7 @@ /* ======================================================================== Load Modules -======================================================================== */ +*/ :- use_module(library(lists),[member/2,append/3,select/3]). :- use_module(semlib(options),[option/2]). @@ -26,14 +26,14 @@ /* ======================================================================== Load WordNet -======================================================================== */ +*/ :- [working/wordnet/wordnet]. /* ======================================================================== Declare Dynamic Predicates -======================================================================== */ +*/ :- dynamic concept/2, % concept(Concept, ConceptId) isa/2, % isa(ConceptId1, ConceptId2) @@ -43,14 +43,14 @@ /* ======================================================================== Minimum Frequence for words under consideration -======================================================================== */ +*/ minFreq(0). /* ======================================================================== Clear Background Knowledge -======================================================================== */ +*/ clearMWN:- retractall(word(_,_,_,_,_)), @@ -61,7 +61,7 @@ /* ======================================================================== Compute Concepts for one DRS -======================================================================== */ +*/ compConcepts(DRS,DRS):- findSymDrs(DRS,[]-_,[]-Concepts), @@ -72,7 +72,7 @@ /* ======================================================================== Get all symbols from a DRS -======================================================================== */ +*/ findSymDrs(smerge(A,B),X1-X3,R1-R2):- !, findSymDrs(A,X1-X2,R1-R3), @@ -99,7 +99,7 @@ /* ======================================================================== Get all symbols from a DRS-Condition -======================================================================== */ +*/ findSymConds([],X-X,R-R). @@ -177,7 +177,7 @@ /* ======================================================================== Select relevant nouns and verbs as concepts -======================================================================== */ +*/ selectConcepts([]). @@ -232,7 +232,7 @@ /* ======================================================================== Synonyms -======================================================================== */ +*/ syn(n,Sym1,Sense1,Sym2,Sense2):- synn(Sym1,Sense1,Sym2,Sense2), !. %%% WordNet (nouns) @@ -258,7 +258,7 @@ /* ======================================================================== Calculate WordNet ISA Relations (first select all relevant concepts) -======================================================================== */ +*/ compISA:- minFreq(Min), @@ -271,7 +271,7 @@ /* ======================================================================== Calculate WordNet ISA Relations -======================================================================== */ +*/ compISA([]). @@ -282,7 +282,7 @@ /* ------------------------------------------------------------------------ Time and Numeric Expressions ------------------------------------------------------------------------- */ +-- */ compISA([s(_,timex,1,ID1)|L]):- !, % timex addConcept(time,n,5,ID2), @@ -296,7 +296,7 @@ /* ------------------------------------------------------------------------ Locations ------------------------------------------------------------------------- */ +-- */ %compISA([s(Sym1,loc,Sense1,ID1)|L]):- % location in WordNet % isap(Sym1,Sense1,Sym2,Sense2), !, @@ -311,7 +311,7 @@ /* ------------------------------------------------------------------------ Organisations ------------------------------------------------------------------------- */ +-- */ %compISA([s(Sym1,org,Sense1,ID1)|L]):- % organisation in WordNet % isap(Sym1,Sense1,Sym2,Sense2), !, @@ -326,7 +326,7 @@ /* ------------------------------------------------------------------------ Persons ------------------------------------------------------------------------- */ +-- */ %compISA([s(Sym1,per,Sense1,ID1)|L]):- % person in WordNet % isap(Sym1,Sense1,Sym2,Sense2), !, @@ -341,7 +341,7 @@ /* ------------------------------------------------------------------------ Nouns ------------------------------------------------------------------------- */ +-- */ compISA([s(Sym1,n,Sense1,ID1)|L]):- % nouns in WordNet isan(Sym1,Sense1,Sym2,Sense2), !, @@ -351,7 +351,7 @@ /* ------------------------------------------------------------------------ Verbs ------------------------------------------------------------------------- */ +-- */ compISA([s(Sym1,v,Sense1,ID1)|L]):- % verbs in WordNet (+ ISA) isav(Sym1,Sense1,Sym2,Sense2), !, @@ -369,7 +369,7 @@ /* ------------------------------------------------------------------------ All Other Cases ------------------------------------------------------------------------- */ +-- */ compISA([s(Sym1,nam,Sense1,ID1)|L]):- % named entity in WordNet isap(Sym1,Sense1,Sym2,Sense2), !, @@ -390,7 +390,7 @@ /*======================================================================== compISNOTA -========================================================================*/ +*/ compISNOTA([]). @@ -406,7 +406,7 @@ /*======================================================================== Get a new concept Id -========================================================================*/ +*/ getConceptId(I3):- concept(_,I1), @@ -418,7 +418,7 @@ /*======================================================================== Calculate First-Order Axioms -========================================================================*/ +*/ axiomsWN(Axioms):- option('--modal',false), !, @@ -446,7 +446,7 @@ /*======================================================================== Calculate First-Order Axioms given isa/2, isnota/2, iseq/2 -========================================================================*/ +*/ axiomsWN([],[]):- !. @@ -469,7 +469,7 @@ /*======================================================================== Translate IS-A to FOL -========================================================================*/ +*/ isa2fol(I1,I2,Axiom):- option('--modal',false), !, @@ -490,7 +490,7 @@ /*======================================================================== Translate IS-NOT-A to FOL -========================================================================*/ +*/ isnota2fol(I1,I2,Axiom):- option('--modal',false), !, @@ -511,7 +511,7 @@ /*======================================================================== Translate IS-EQUAL to FOL -========================================================================*/ +*/ iseq2fol(s(A1,T1,S1),s(A2,T2,S2),Axiom):- option('--modal',false), !, @@ -532,7 +532,7 @@ /*======================================================================== Translate concept to symbol -========================================================================*/ +*/ concept2sym(I,Sym):- concept([s(Sym,timex,1)|_],I), !. @@ -547,14 +547,14 @@ /*======================================================================== Print MiniWordNet -========================================================================*/ +*/ graphMWN(Dir,File):- option('--graph',true), atomic_list_concat([Dir,'/',File,'.mwn','.dot'],DOT), atomic_list_concat([Dir,'/',File,'.mwn','.pdf'],PDF), open(DOT,write,Stream), - format(Stream,'digraph mwn {~n~n',[]), + 'format'(Stream,'digraph mwn {~n~n',[]), setof(I,X^concept(X,I),Nodes), printNodes(Nodes,Stream), printIsa(Stream), @@ -566,7 +566,7 @@ /*======================================================================== Create Graph using the dot program -========================================================================*/ +*/ createGraph(File1,File2):- shell('which dot',0), @@ -585,7 +585,7 @@ printNodes([I|L],Stream):- concept(X,I), !, - format(Stream,' ~p [label="',[I]), + 'format'(Stream,' ~p [label="',[I]), printNode(X,Stream), printNodes(L,Stream). @@ -598,11 +598,11 @@ printNode([s(Sym,Cat,Sense)],Stream):- frequency(Sym,Cat,Sense,F), !, - format(Stream,'~p-~p-~p (F=~p)"];~n',[Sym,Cat,Sense,F]). + 'format'(Stream,'~p-~p-~p (F=~p)"];~n',[Sym,Cat,Sense,F]). printNode([s(Sym,Cat,Sense)|L],Stream):- frequency(Sym,Cat,Sense,F), !, - format(Stream,'~p-~p-~p (F=~p)\\n',[Sym,Cat,Sense,F]), + 'format'(Stream,'~p-~p-~p (F=~p)\\n',[Sym,Cat,Sense,F]), printNode(L,Stream). @@ -622,16 +622,16 @@ printIsa(Stream):- isa(I,J), - format(Stream,' ~p -> ~p;~n',[J,I]), + 'format'(Stream,' ~p -> ~p;~n',[J,I]), fail. printIsa(Stream):- - format(Stream,'~n}~n',[]). + 'format'(Stream,'~n}~n',[]). /*======================================================================== Add Concept -========================================================================*/ +*/ addConcept(Sym,Cat,Sense,ID):- concept(Concept,ID), @@ -651,19 +651,19 @@ /*======================================================================== Check for inconsistencies -========================================================================*/ +*/ checkConsBK:- isa(A,B), isa(A,C), \+ C=B, !, - format('inconsistent node ~p has two parents ~p and ~p~n',[A,B,C]). + 'format'('inconsistent node ~p has two parents ~p and ~p~n',[A,B,C]). checkConsBK. /*======================================================================== Cut down redundant nodes -========================================================================*/ +*/ cutDownMWN:-!, findall(I,concept(_,I),C), @@ -695,7 +695,7 @@ /*======================================================================== Add Top Concept (if there is not one yet) -========================================================================*/ +*/ addTopMWN:- concept(E,B), member(s(event,n,1),E), %%% place all verbs under @@ -727,7 +727,7 @@ /* ======================================================================== Size WordNet (number of disjoint concepts) -======================================================================== */ +*/ sizeMWN(Size):- findall(X,isa(X,_),L), @@ -736,7 +736,7 @@ /* ======================================================================== Symbol Stop List -======================================================================== */ +*/ stoplist(')',_). stoplist('(',_). @@ -759,7 +759,7 @@ /*======================================================================== Output MWN (prolog) -========================================================================*/ +*/ outputMWN(Dir,File):- atomic_list_concat([Dir,'/',File,'.mwn'],Name), @@ -770,30 +770,30 @@ /*======================================================================== Output terminal symbols -========================================================================*/ +*/ printTerminals(Stream):- - format(Stream,'%~n% word(+Word, +Cat, +Sense, +Frequency, +ConceptID).~n%~n',[]), + 'format'(Stream,'%~n% word(+Word, +Cat, +Sense, +Frequency, +ConceptID).~n%~n',[]), word(X,C,S,N,I), \+ I = 0, - format(Stream,'~q.~n',[word(X,C,S,N,I)]), + 'format'(Stream,'~q.~n',[word(X,C,S,N,I)]), fail. printTerminals(Stream):- - format(Stream,'%~n% concept(+SynSet, +ConceptID).~n%~n',[]), + 'format'(Stream,'%~n% concept(+SynSet, +ConceptID).~n%~n',[]), concept(I,J), - format(Stream,'~q.~n',[concept(I,J)]), + 'format'(Stream,'~q.~n',[concept(I,J)]), fail. printTerminals(Stream):- - format(Stream,'%~n% isa(+SubConceptID, +SuperConceptID).~n%~n',[]), + 'format'(Stream,'%~n% isa(+SubConceptID, +SuperConceptID).~n%~n',[]), isa(I,J), - format(Stream,'~p.~n',[isa(I,J)]), + 'format'(Stream,'~p.~n',[isa(I,J)]), fail. printTerminals(Stream):- - format(Stream,'%~n% ant(+ConceptID, +ConceptID).~n%~n',[]), + 'format'(Stream,'%~n% ant(+ConceptID, +ConceptID).~n%~n',[]), ant(I,J), - format(Stream,'~p.~n',[ant(I,J)]), + 'format'(Stream,'~p.~n',[ant(I,J)]), fail. printTerminals(_). @@ -801,7 +801,7 @@ /*======================================================================== Adjacent Indexes -========================================================================*/ +*/ adjacent([I],[J]):- !, J is I + 1. adjacent(Is,Js):- member(I,Is), member(J,Js), J is I + 1, !. @@ -843,7 +843,7 @@ retract(concept(Concepts,Id)), assert(concept([Sym1|Concepts],Id)), !, true. -% format('Added word ~p similar to ~p~n',[Sym1,Sym2]). +% 'format'('Added word ~p similar to ~p~n',[Sym1,Sym2]). ------------------------------------------------------------------------*/ @@ -863,7 +863,7 @@ retract(concept(Concepts,Id)), assert(concept([Sym1|Concepts],Id)), !, true. -% format('Added word ~p similar to ~p~n',[Sym1,Sym2]). +% 'format'('Added word ~p similar to ~p~n',[Sym1,Sym2]). ------------------------------------------------------------------------*/ @@ -883,7 +883,7 @@ assert(concept([Sym1],NewId)), assert(isa(NewId,Id)), !, true. -% format('Hyponym word ~p of ~p~n',[Sym1,Sym2]). +% 'format'('Hyponym word ~p of ~p~n',[Sym1,Sym2]). ------------------------------------------------------------------------*/ @@ -904,7 +904,7 @@ assert(concept([Sym1],NewId)), assert(isa(NewId,Id)), !, true. -% format('Hyponym word ~p of ~p~n',[Sym1,Sym2]). +% 'format'('Hyponym word ~p of ~p~n',[Sym1,Sym2]). ------------------------------------------------------------------------*/ Index: src/prolog/nutcracker/ntokkie.pl =================================================================== --- src/prolog/nutcracker/ntokkie.pl (revision 2527) +++ src/prolog/nutcracker/ntokkie.pl (working copy) @@ -3,7 +3,7 @@ /* ======================================================================== File Search Paths -======================================================================== */ +*/ file_search_path(semlib, 'src/prolog/lib'). file_search_path(boxer, 'src/prolog/boxer'). @@ -11,14 +11,14 @@ /* ======================================================================== Dynamic Predicates -======================================================================== */ +*/ :- dynamic split/7, title/1. /* ======================================================================== Load other libraries -======================================================================== */ +*/ :- use_module(library(lists),[member/2,append/3,reverse/2]). :- use_module(library(readutil),[read_stream_to_codes/2]). @@ -30,7 +30,7 @@ /* ======================================================================== Main -======================================================================== */ +*/ tokkie:- option(Option,do), @@ -54,12 +54,12 @@ /* ---------------------------------------------------------------------- Read lines ----------------------------------------------------------------------- */ + */ readLines(Codes1,I1,S1,Stream,[Tokens|L]):- begSent(Codes1,I1,Codes2,I2), !, % determine begin of a new sentence endSent(Codes2,I2,Codes3,I3,Rest,[]), % determine end of this sentence -% format(Stream,'sen(~p,~p,~s).~n',[I2,I3,Codes3]), +% 'format'(Stream,'sen(~p,~p,~s).~n',[I2,I3,Codes3]), % write(Codes3),nl, tokenise(Codes3,I2,I2,T-T,Tokens), % split sentence into tokens outputTokens(Tokens,S1,Stream), @@ -71,7 +71,7 @@ /* ---------------------------------------------------------------------- Determine beginning of sentence ----------------------------------------------------------------------- */ + */ begSent([Sep|C1],I1,C2,I3):- sep(Sep), !, % skip space, tab or newline @@ -91,7 +91,7 @@ +CodesR, % Rest string +CodesLast) % Last token ----------------------------------------------------------------------- */ + */ endSent([],I,[],I,[],_):- !. @@ -141,7 +141,7 @@ Next, % Codes following Last) % Last token ----------------------------------------------------------------------- */ + */ % Case 1: full stop after uppercase one-character token (i.e. initial) noSentenceBoundary(".",_,Last):- Last = [Upper], upper(Upper). % Case 2: full stop after a title @@ -154,7 +154,7 @@ /* ---------------------------------------------------------------------- Split Line into Tokens ----------------------------------------------------------------------- */ + */ % Nothing left to do, no tokens in queue % @@ -208,10 +208,10 @@ % tokenise(Input,CurrentPos,StartPos,Sofar-Tail,[Token|Tokens]):- trysplit(Input,Left,Right,Rest,LenLeft,LenRight), !, -% format('Input: ~s~n',[Input]), -% format('Left: ~s~n',[Left]), -% format('Right: ~s~n',[Right]), -% format('Rest: ~s~n',[Rest]), +% 'format'('Input: ~s~n',[Input]), +% 'format'('Left: ~s~n',[Left]), +% 'format'('Right: ~s~n',[Right]), +% 'format'('Rest: ~s~n',[Rest]), Pos is CurrentPos + LenLeft, NewPos is Pos + LenRight, Tail = Left, @@ -229,7 +229,7 @@ /* ---------------------------------------------------------------------- Output Tokens ----------------------------------------------------------------------- */ + */ outputTokens(Tokens,S,Stream):- option('--mode',poor), !, @@ -243,8 +243,8 @@ /* ---------------------------------------------------------------------- - Wrapper IOB format ----------------------------------------------------------------------- */ + Wrapper IOB 'format' + */ outputIOB(Codes,Tokens,Stream):- option('--mode',iob), !, @@ -254,8 +254,8 @@ /* ---------------------------------------------------------------------- - Output IOB format ----------------------------------------------------------------------- */ + Output IOB 'format' + */ printIOB([],_,_,_). @@ -287,33 +287,33 @@ /* ---------------------------------------------------------------------- - Tuple IOB format ----------------------------------------------------------------------- */ + Tuple IOB 'format' + */ tupleIOB(_,X,Tag,_,Stream):- option('--format',txt), !, - format(Stream,'~p ~p~n',[X,Tag]). + 'format'(Stream,'~p ~p~n',[X,Tag]). tupleIOB(N,X,Tag,Tok,Stream):- option('--format',prolog), !, - format(Stream,'tok(~p,\'~p\'). % ~p ~s~n',[X,Tag,N,Tok]). + 'format'(Stream,'tok(~p,\'~p\'). % ~p ~s~n',[X,Tag,N,Tok]). /* ---------------------------------------------------------------------- Print Tokens ----------------------------------------------------------------------- */ + */ printTokens([],_,_,_). printTokens([tok(_,_,Tok)],_,_,Stream):- option('--mode',poor), !, - format(Stream,'~s~n',[Tok]). + 'format'(Stream,'~s~n',[Tok]). printTokens([tok(I,J,Tok)|L],S,T1,Stream):- option('--format',prolog), option('--mode',rich), !, Index is S*1000+T1, - format(Stream,'tok(~p, ~p, ~p, ~s).~n',[I,J,Index,Tok]), + 'format'(Stream,'tok(~p, ~p, ~p, ~s).~n',[I,J,Index,Tok]), T2 is T1+1, printTokens(L,S,T2,Stream). @@ -321,19 +321,19 @@ option('--format',txt), option('--mode',rich), !, Index is S*1000+T1, - format(Stream,'~p ~p ~p ~s~n',[I,J,Index,Tok]), + 'format'(Stream,'~p ~p ~p ~s~n',[I,J,Index,Tok]), T2 is T1+1, printTokens(L,S,T2,Stream). printTokens([tok(_,_,Tok)|L],S,T,Stream):- option('--mode',poor), !, - format(Stream,'~s ',[Tok]), + 'format'(Stream,'~s ',[Tok]), printTokens(L,S,T,Stream). /* ---------------------------------------------------------------------- Type checking ----------------------------------------------------------------------- */ + */ sep(10). % new line sep(13). % new line @@ -363,7 +363,7 @@ /* ---------------------------------------------------------------------- Rules for splitting tokens split(+Left,+ConditionsOnLeft,+Right,+ConditionsOnRight,+Context) ----------------------------------------------------------------------- */ + */ split("can",[], "not",[], []). split([_],[], "n't",[], []). @@ -400,7 +400,7 @@ /* ---------------------------------------------------------------------- Exceptions (do not split) ----------------------------------------------------------------------- */ + */ dontsplit(Input,Rest,N,Old-OldTail,Old-NewTail):- nosplit(Left,N), @@ -414,7 +414,7 @@ /* ---------------------------------------------------------------------- Initialisation ----------------------------------------------------------------------- */ + */ initTokkie:- initTitles, @@ -439,7 +439,7 @@ /* ---------------------------------------------------------------------- Rules for final tokens ----------------------------------------------------------------------- */ + */ final("?", "?", [], 1). final(".", ".", [], 1). @@ -449,7 +449,7 @@ /* ---------------------------------------------------------------------- Try a splitting rule on the input ----------------------------------------------------------------------- */ + */ trysplit(Input,Left,Right,Rest,LenLeft,LenRight):- split(Left,LenLeft,CondsLeft,Right,LenRight,CondsRight,RightContext), @@ -462,7 +462,7 @@ /* ---------------------------------------------------------------------- Check Conditions ----------------------------------------------------------------------- */ + */ checkConds([]). checkConds([C|L]):- call(C), !, checkConds(L). @@ -470,7 +470,7 @@ /* ---------------------------------------------------------------------------------- Codes for right single quotation marks (used in genitives) ----------------------------------------------------------------------------------- */ +------------ */ rsq(39). rsq(8217). @@ -478,7 +478,7 @@ /* ---------------------------------------------------------------------------------- Codes for single-character quotes ----------------------------------------------------------------------------------- */ +------------ */ quote(34). %%% " quote(39). %%% ' @@ -493,7 +493,7 @@ /* ---------------------------------------------------------------------------------- Codes for double quotes ----------------------------------------------------------------------------------- */ +------------ */ quotes(96). %%% `` quotes(39). %%% '' @@ -505,7 +505,7 @@ /* ======================================================================= Open Input File -========================================================================*/ +*/ openInput(Stream):- option('--stdin',dont), @@ -523,7 +523,7 @@ /* ======================================================================= Open Output File -========================================================================*/ +*/ openOutput(Stream):- option('--output',Output), @@ -539,11 +539,11 @@ /* ======================================================================= Help -========================================================================*/ +*/ help:- option('--help',do), !, - format(user_error,'usage: tokkie [options]~n~n',[]), + 'format'(user_error,'usage: tokkie [options]~n~n',[]), showOptions(tokkie). help:- @@ -552,7 +552,7 @@ /* ======================================================================= Definition of start -========================================================================*/ +*/ start:- current_prolog_flag(argv,[_Comm|Args]), Index: src/prolog/nutcracker/nutcracker.pl =================================================================== --- src/prolog/nutcracker/nutcracker.pl (revision 2527) +++ src/prolog/nutcracker/nutcracker.pl (working copy) @@ -3,7 +3,7 @@ /* ======================================================================== File Search Paths -======================================================================== */ +*/ file_search_path(semlib, 'src/prolog/lib'). file_search_path(nutcracker, 'src/prolog/nutcracker'). @@ -12,14 +12,14 @@ /* ======================================================================== Dynamic Predicates -======================================================================== */ +*/ :- dynamic axiom/3. /* ======================================================================== Load other libraries -======================================================================== */ +*/ :- use_module(library(lists),[member/2,append/3]). :- use_module(library(ordsets),[list_to_ord_set/2,ord_intersection/3]). @@ -43,7 +43,7 @@ /* ======================================================================== Main -======================================================================== */ +*/ main:- option(Option,do), @@ -63,7 +63,7 @@ /*======================================================================== Main (traverse directories) -========================================================================*/ +*/ main([]). @@ -257,7 +257,7 @@ T : a b c d a b c a b c a b H : c d e b c d e c d O = 2/3 1/1 1/3 0/2 ------------------------------------------------------------------------- */ +-- */ bagofwords(File,Bag):- open(File,read,Stream), @@ -471,7 +471,7 @@ /* ======================================================================= Textual Entailment (logical inference) -========================================================================*/ +*/ nc(Dir,KT,KH,KTH):- openInput(Dir), @@ -503,7 +503,7 @@ /* ======================================================================= Load Axioms -========================================================================*/ +*/ axioms(_):- option('--axioms',File), @@ -523,7 +523,7 @@ /* ======================================================================= Process Axioms -========================================================================*/ +*/ preprocessAxioms([],_,N):- inform('Background knowledge: ~p axioms',[N]). @@ -550,7 +550,7 @@ /* ======================================================================= Include Background Knowledge -========================================================================*/ +*/ bk(model(_,F),In,Out):- findall(N,axiom(N,_,_),L), @@ -575,7 +575,7 @@ /* ======================================================================= Textual Entailment (WordNet) -========================================================================*/ +*/ mwn(Dir,AxiomsKT,AxiomsKH,AxiomsKTH,Novelty):- openInput(Dir), @@ -594,7 +594,7 @@ /* ======================================================================= Inference -- consistency check -========================================================================*/ +*/ consistent(_,_,Dir,Name,DomSize,Model):- DomSize = 0, !, @@ -617,7 +617,7 @@ /* ======================================================================= Inference -- informativeness check -========================================================================*/ +*/ informative(B1,B2,BK,Dir,Name,MinDom,Model):- drs2fol(B1,F1), @@ -634,7 +634,7 @@ /* ======================================================================= Prediction (try inference first, else back off to WordNet) -========================================================================*/ +*/ prediction(Dir,WNNovelty,Overlap):- @@ -679,7 +679,7 @@ +WNNovelty, +WordOverlap, -Prediction ) %%% prediction description -========================================================================*/ +*/ % PROOF without BK by THEOREM PROVER: INPUT INCONSISTENT % @@ -769,7 +769,7 @@ /* ======================================================================= Output Model -========================================================================*/ +*/ outputModel(Model,Name,Dir,Size):- atomic_list_concat([Dir,'/',Name,'.mod'],File), @@ -782,21 +782,21 @@ /* ======================================================================= Print Model -========================================================================*/ +*/ -printModel(model(D,[]),Stream):- !, format(Stream,'model(~p, [])',[D]). +printModel(model(D,[]),Stream):- !, 'format'(Stream,'model(~p, [])',[D]). -printModel(model(D,[F]),Stream):- !, format(Stream,'model(~p,~n [~p])',[D,F]). +printModel(model(D,[F]),Stream):- !, 'format'(Stream,'model(~p,~n [~p])',[D,F]). printModel(model(D,[X,Y|F]),Stream):- !, setof(M,Sym^Ext^(member(M,[X,Y|F]),\+ M=f(0,Sym,Ext)),[First|Sorted]), - format(Stream,'model(~p,~n [~p,~n',[D,First]), + 'format'(Stream,'model(~p,~n [~p,~n',[D,First]), printModel(Sorted,Stream). -printModel([Last],Stream):- !, format(Stream,' ~p])',[Last]). +printModel([Last],Stream):- !, 'format'(Stream,' ~p])',[Last]). printModel([X|L],Stream):- !, - format(Stream,' ~p,~n',[X]), + 'format'(Stream,' ~p,~n',[X]), printModel(L,Stream). printModel(Model,Stream):- write(Stream,Model). @@ -822,7 +822,7 @@ modelSize([_|L],Old,New):- modelSize(L,Old,New). -========================================================================*/ +*/ compareModels(Dir,model(_,F1),model(_,F2)):- !, atomic_list_concat([Dir,'/','novel.txt'],File), @@ -846,7 +846,7 @@ /* ======================================================================= Determine Domain Size -========================================================================*/ +*/ domSize(Model,Size):- Model = model(Dom,_), !, @@ -857,7 +857,7 @@ /* ======================================================================= Determine Model Size (Relations) -========================================================================*/ +*/ relSize(Model,Size):- Model = model(_,F), !, @@ -870,7 +870,7 @@ /* ======================================================================= Output Prediction -========================================================================*/ +*/ outputPrediction(Dir,Prediction,Proof,Contra,DomNovelty,RelNovelty,WNNovelty,SizeNovelty,Overlap):- atomic_list_concat([Dir,'/','prediction.txt'],File), @@ -883,7 +883,7 @@ /* ======================================================================= Output Domain Size Difference -========================================================================*/ +*/ outputDomSizeDif(Dir,Proof,Contradiction,Dom,Rel,WordNet,Model,Overlap):- atomic_list_concat([Dir,'/','modsizedif.txt'],File), @@ -891,18 +891,18 @@ ( Contradiction=0, !, Prover=contradiction ; Proof=0, !, Prover=proof ; Prover=unknown ), - format(Stream,'~p. % prover output ~n',[Prover]), - format(Stream,'~p. % domain novelty ~n',[Dom]), - format(Stream,'~p. % relation novelty ~n',[Rel]), - format(Stream,'~p. % wordnet novelty ~n',[WordNet]), - format(Stream,'~p. % model novelty ~n',[Model]), - format(Stream,'~p. % word overlap ~n',[Overlap]), + 'format'(Stream,'~p. % prover output ~n',[Prover]), + 'format'(Stream,'~p. % domain novelty ~n',[Dom]), + 'format'(Stream,'~p. % relation novelty ~n',[Rel]), + 'format'(Stream,'~p. % wordnet novelty ~n',[WordNet]), + 'format'(Stream,'~p. % model novelty ~n',[Model]), + 'format'(Stream,'~p. % word overlap ~n',[Overlap]), close(Stream). /* ======================================================================== Compute Novelty of H given T -======================================================================== */ +*/ computeNovelty(SizeT,SizeH,SizeTH,Novelty):- SizeT > 0, SizeH > 0, SizeTH > 0, !, @@ -913,7 +913,7 @@ /* ======================================================================== MiniWordNet -======================================================================== */ +*/ computeMWN(DRS,Dir,File,Size):- option('--wordnet',true), !, @@ -931,23 +931,23 @@ /* ======================================================================= Version -========================================================================*/ +*/ version:- option('--version',do), !, version(V), - format(user_error,'~p~n',[V]). + 'format'(user_error,'~p~n',[V]). version. /* ======================================================================= Help -========================================================================*/ +*/ help:- option('--help',do), !, - format(user_error,'usage: nc [options]~n~n',[]), + 'format'(user_error,'usage: nc [options]~n~n',[]), showOptions(nutcracker). help:- @@ -956,7 +956,7 @@ /* ======================================================================= Definition of start -========================================================================*/ +*/ start:- current_prolog_flag(argv,[_Comm|Args]), Index: src/prolog/nutcracker/para.pl =================================================================== --- src/prolog/nutcracker/para.pl (revision 2527) +++ src/prolog/nutcracker/para.pl (working copy) @@ -11,7 +11,7 @@ /* ======================================================================== Main -======================================================================== */ +*/ main(T,H,Stream):- para(T,H,P,S), @@ -23,7 +23,7 @@ /* ======================================================================== Paraphrasing -======================================================================== */ +*/ para([X|L1],H,L3,[X]-Par):- p1(X,Par), @@ -51,7 +51,7 @@ /* ======================================================================== Sanity check for paraphrase -======================================================================== */ +*/ ok(Par,T,H):- \+ (member(Word,Par), member(Word,T)), % no word of the paraphrase should occur already in T @@ -62,7 +62,7 @@ /* ======================================================================== Output -======================================================================== */ +*/ outputP([X],S):- !, write(S,X), nl(S). outputP([X|L],S):- write(S,X), write(S,' '), outputP(L,S). @@ -99,7 +99,7 @@ checkFiles(L). checkFiles([Dir|L]):- - format('directory ~p does not contain files~n',[Dir]), + 'format'('directory ~p does not contain files~n',[Dir]), checkFiles(L). @@ -131,7 +131,7 @@ /* ======================================================================= Definition of start -========================================================================*/ +*/ start:- current_prolog_flag(argv,Args), Index: src/prolog/nutcracker/tokkie.pl =================================================================== --- src/prolog/nutcracker/tokkie.pl (revision 2527) +++ src/prolog/nutcracker/tokkie.pl (working copy) @@ -3,7 +3,7 @@ /*======================================================================== File Search Paths -========================================================================*/ +*/ file_search_path(semlib, 'src/prolog/lib'). file_search_path(boxer, 'src/prolog/boxer'). @@ -11,7 +11,7 @@ /*======================================================================== Load other libraries -========================================================================*/ +*/ :- use_module(library(lists),[member/2,append/3]). :- use_module(library(readutil),[read_line_to_codes/2]). @@ -23,7 +23,7 @@ /*======================================================================== Main -========================================================================*/ +*/ tokkie:- option(Option,do), @@ -44,7 +44,7 @@ /* ---------------------------------------------------------------------- Read lines ----------------------------------------------------------------------- */ + */ readLines(end_of_file,Stream1,Stream2):- !, close(Stream1), @@ -52,7 +52,7 @@ readLines(Codes,InStream,OutStream):- !, tok(Codes,TokCodes,Last), - format(OutStream,'~s',[TokCodes]), + 'format'(OutStream,'~s',[TokCodes]), read_line_to_codes(InStream,NewCodes), decideNewLine(NewCodes,Last,OutStream), readLines(NewCodes,InStream,OutStream). @@ -60,7 +60,7 @@ /* ======================================================================= Determine New Line -========================================================================*/ +*/ decideNewLine(end_of_file,_Last,Stream):- !, nl(Stream). decideNewLine([C1,C2|_],_,Stream):- lower(C1), lower(C2), !, write(Stream,' '). @@ -71,7 +71,7 @@ /* ======================================================================= Tokenise -========================================================================*/ +*/ tok([],[],[]):- !. tok([65533|L1],L2,Last):- !, warning('skipping non-utf8 character',[]), tok(L1,L2,Last). @@ -88,18 +88,18 @@ /* ================================================================================== Patterns -================================================================================== */ +========= */ /* ---------------------------------------------------------------------------------- Remove space at end of line ----------------------------------------------------------------------------------- */ +------------ */ pattern([32]-[], X, B-B, X):- !. pattern([9]-[], X, B-B, X):- !. /* ---------------------------------------------------------------------------------- Squeeze space ----------------------------------------------------------------------------------- */ +------------ */ pattern([32,32|A]-A, [], B-B, []):- !. %%% double space pattern([32,32|A]-[32|A], X, B-B, X):- !. %%% double space @@ -111,14 +111,14 @@ /* ---------------------------------------------------------------------------------- Dot dot dot (end of line) If the last token before the ... is an abbreviation, an extra . is preserved ----------------------------------------------------------------------------------- */ +------------ */ pattern(D-[], Prev, [46,32,46,46,46|B]-B, [46,46,46]):- dots(D,A), end(A), abb(Prev), !. pattern(D-[], Prev, B1-B2, [46,46,46]):- dots(D,A),end(A), !, insertSpace(Prev,[46,46,46|B2],B1). /* ---------------------------------------------------------------------------------- Dot dot dot (not end of line) ----------------------------------------------------------------------------------- */ +------------ */ pattern(D-[L|A], Prev, B1-B2,[]):- dots(D,[L|A]), lower(L), !, insertSpace(Prev,[46,46,46,32|B2],B1). pattern(D-[L|A], Prev, B1-B2,[]):- dots(D,[L|A]), upper(L), !, insertSpace(Prev,[46,46,46,10|B2],B1). @@ -126,13 +126,13 @@ /* ---------------------------------------------------------------------------------- Full stop and bracket (end of line) ----------------------------------------------------------------------------------- */ +------------ */ pattern([46,Q|A]-[], Prev, B1-B2, [Q]):- bracket(Q), end(A), !, insertSpace(Prev,[46,32,Q|B2],B1). %%% X.) -> X . ) /* ---------------------------------------------------------------------------------- Full stop and ending quotes (end of line) ----------------------------------------------------------------------------------- */ +------------ */ pattern([46,Q|A]-[], Prev, B1-B2, [46]):- quote(Q),end(A),option('--quotes',delete), !, insertSpace(Prev,[46|B2],B1). %%% X." -> X . pattern([46,Q|A]-[], Prev, B1-B2, [Q]):- quote(Q),end(A),option('--quotes',keep), !, insertSpace(Prev,[46,32,Q|B2],B1). %%% X." -> X . " @@ -145,7 +145,7 @@ /* ---------------------------------------------------------------------------------- Full stop and ending quotes (not end of line) ----------------------------------------------------------------------------------- */ +------------ */ pattern([46,Q,32,U|A]-[U|A], Prev, B1-B2, []):- quote(Q),upper(U),option('--quotes',delete), !, insertSpace(Prev,[46,10|B2],B1). %%% X." U pattern([46,Q,32,U|A]-[U|A], Prev, B1-B2, []):- quote(Q),upper(U),option('--quotes',keep), !, insertSpace(Prev,[46,32,Q,10|B2],B1). %%% X." U @@ -154,7 +154,7 @@ /* ---------------------------------------------------------------------------------- Full stop (end of line) If the last token before the . is an abbreviation, no extra . is produced. ----------------------------------------------------------------------------------- */ +------------ */ pattern([46|A]-[], Prev, [46|B]-B, Prev):- end(A), title(Prev), !. %%% X. -> X. pattern([46|A]-[], Prev, [46|B]-B, [46|Prev]):- end(A), abb(Prev), !. %%% X. -> X. @@ -162,7 +162,7 @@ /* ---------------------------------------------------------------------------------- Full stop, followed by opening quote ----------------------------------------------------------------------------------- */ +------------ */ pattern([46,32,Q,115|A]-A, [_|_], [46,32,Q,115|B]-B, [115,Q]):- rsq(Q), !. %% U.S. \'s pattern([46,32,Q,C|A]-[Q,C|A], Prev, B1-B2, []):- quote(Q), upper(C), !, insertSpace(Prev,[46,10|B2],B1). @@ -176,7 +176,7 @@ Case 3: A full stop after a title --> no sentence boundary Case 4: A full stop after a non-abbreviation --> sentence boundary % Case 5: A full stop after abbreviation --> no sentence boundary ----------------------------------------------------------------------------------- */ +------------ */ pattern([46,32,U|A]-[U|A], [], [46,10|B]-B, []):- upper(U), !. pattern([46,32,U|A]-[U|A], [_], [46,32|B]-B, []):- upper(U), !. %%% Initial @@ -191,58 +191,58 @@ /* ---------------------------------------------------------------------------------- The comma ----------------------------------------------------------------------------------- */ +------------ */ pattern([X,44,Y|A]-[Y|A], P, [X,44|B]-B, [44|P]):- num(X), num(Y), !. %%% "0,0" -> "0,0" pattern([44|A]-[32|A], Prev, B1-B2, [44]):- !, insertSpace(Prev,[44|B2],B1). %%% "X," -> "X , " /* ---------------------------------------------------------------------------------- The brackets ----------------------------------------------------------------------------------- */ +------------ */ pattern([X|A]-[32|A], Prev, B1-B2, [X]):- bracket(X), !, insertSpace(Prev,[X|B2],B1). /* ---------------------------------------------------------------------------------- Colon ----------------------------------------------------------------------------------- */ +------------ */ pattern([58|A]-[32|A], Prev, B1-B2, [58]):- !, insertSpace(Prev,[58|B2],B1). /* ---------------------------------------------------------------------------------- Semicolon ----------------------------------------------------------------------------------- */ +------------ */ pattern([59|A]-[32|A], Prev, B1-B2, [59]):- !, insertSpace(Prev,[59|B2],B1). /* ---------------------------------------------------------------------------------- Question and Exclamation Mark ----------------------------------------------------------------------------------- */ +------------ */ pattern([X|A]-[32|A], Prev, B1-B2, [X]):- mark(X), !, insertSpace(Prev,[X|B2],B1). /* ---------------------------------------------------------------------------------- Percentage "100%" -> "100 % " ----------------------------------------------------------------------------------- */ +------------ */ pattern([X,37|A]-[32|A], _, [X,32,37|B]-B, [37]):- num(X), !. /* ---------------------------------------------------------------------------------- Monetary units "$100" -> "$ 100" ----------------------------------------------------------------------------------- */ +------------ */ pattern([36,X|A]-[X|A], _, [36,32|B]-B, [32]):- num(X), !. pattern([128,X|A]-[X|A], _, [128,32|B]-B, [32]):- num(X), !. /* ---------------------------------------------------------------------------------- Contractions: year/decade expressions ----------------------------------------------------------------------------------- */ +------------ */ pattern([Q,N1,N2,115|A]-A, [], [Q,N1,N2,115|B]-B, [115,N2,N1,Q]):- rsq(Q), num(N1),num(N2), !. %%% "'30s" -> "'30s" pattern([Q,N1,N2,N|A]-[N|A], [], [Q,N1,N2|B]-B, [N2,N1,Q]):- rsq(Q), num(N1),num(N2), \+ alphanum(N), !. %%% "'30" -> "'30" /* ---------------------------------------------------------------------------------- Contractions: \'s (English) ----------------------------------------------------------------------------------- */ +------------ */ pattern([X,Q,115,N|A]-[N|A], [_|_], [X,32,Q,115|B]-B, [115,Q]):- option('--language',en), rsq(Q), alpha(X), \+ alphanum(N), !. %%% "X's" -> "X 's" pattern([Q,115,N|A]-[N|A], Prev, [32,Q,115|B]-B, [115,Q]):- option('--language',en), abb(Prev), rsq(Q), \+ alphanum(N), !. %%% "U.S.'s" -> "U.S. 's" @@ -252,7 +252,7 @@ /* ---------------------------------------------------------------------------------- Contractions: auxiliary verbs (English) ----------------------------------------------------------------------------------- */ +------------ */ pattern([X,Q,109|A]-A, _, [X,32,Q,109|B]-B, [109,Q]):- option('--language',en), rsq(Q), alpha(X), !. %%% "X'm" -> "X 'm" pattern([X,Q,100|A]-A, _, [X,32,Q,100|B]-B, [100,Q]):- option('--language',en), rsq(Q), alpha(X), !. %%% "X'd" -> "X 'd" @@ -263,20 +263,20 @@ /* ---------------------------------------------------------------------------------- Contractions (Italian) ----------------------------------------------------------------------------------- */ +------------ */ pattern([108,Q,X|A]-[X|A], Prev, B1-B2, []):- option('--language',it), alpha(X), rsq(Q), !, insertSpace(Prev,[108,Q,32|B2],B1). %%% " l'X" -> " l' X" /* ---------------------------------------------------------------------------------- Contractions: Irish and foreign names ----------------------------------------------------------------------------------- */ +------------ */ pattern([U1,Q,U2|A]-A, [], [U1,Q,U2|B]-B, [U2,Q,U1]):- rsq(Q), alpha(U1),alpha(U2). %%% "O'R" -> "O'R" /* ---------------------------------------------------------------------------------- Double character quotes ----------------------------------------------------------------------------------- */ +------------ */ pattern([32,Q,Q,32|A]-[32|A], X, B-B, X):- quotes(Q), option('--quotes',delete), !. pattern([Q,Q|A]-A, X, B-B, X):- quotes(Q), option('--quotes',delete), !. @@ -284,7 +284,7 @@ /* ---------------------------------------------------------------------------------- Single character quotes ----------------------------------------------------------------------------------- */ +------------ */ pattern([32,Q,32|A]-[32|A], X, B-B, X):- quote(Q), option('--quotes',delete), !. pattern([Q|A]-A, X, B-B, X):- quote(Q), option('--quotes',delete), !. @@ -293,7 +293,7 @@ /* ================================================================================== Aux Predicates -====================================================================================*/ +=========== */ alphanum(X):- alpha(X), !. alphanum(X):- num(X), !. @@ -310,7 +310,7 @@ /* ---------------------------------------------------------------------------------- Insert space, but only if there is a token just before ----------------------------------------------------------------------------------- */ +------------ */ insertSpace([], L, L):- !. insertSpace( _, L, [32|L]). @@ -318,7 +318,7 @@ /* ---------------------------------------------------------------------------------- Codes for Brackets ----------------------------------------------------------------------------------- */ +------------ */ bracket(X):- opening_bracket(X). bracket(X):- closing_bracket(X). @@ -334,7 +334,7 @@ /* ---------------------------------------------------------------------------------- Codes for right single quotation marks (used in genitives) ----------------------------------------------------------------------------------- */ +------------ */ rsq(39). rsq(8217). @@ -342,7 +342,7 @@ /* ---------------------------------------------------------------------------------- Codes for single-character quotes ----------------------------------------------------------------------------------- */ +------------ */ quote(34). %%% " quote(39). %%% ' @@ -357,7 +357,7 @@ /* ---------------------------------------------------------------------------------- Codes for double quotes ----------------------------------------------------------------------------------- */ +------------ */ quotes(96). %%% `` quotes(39). %%% '' @@ -367,7 +367,7 @@ /* ---------------------------------------------------------------------------------- Codes for punctuation marks ----------------------------------------------------------------------------------- */ +------------ */ mark(63). %%% ? mark(33). %%% ! @@ -376,7 +376,7 @@ /* ---------------------------------------------------------------------------------- Titles (or other expressions that never/rarely occur at end of sentence) The actual string (in double quotes) is reversed! ----------------------------------------------------------------------------------- */ +------------ */ title(Title):- option('--language',Language), title(Language,Title), !. @@ -412,7 +412,7 @@ /* ---------------------------------------------------------------------------------- Abbreviations ----------------------------------------------------------------------------------- */ +------------ */ abb(Codes):- member(46,Codes), member(X,Codes), alpha(X), !. abb(Abb):- option('--language',Language), abb(Language,Abb), !. @@ -430,14 +430,14 @@ /* ---------------------------------------------------------------------------------- Mistake in WSJ tokenisation ----------------------------------------------------------------------------------- */ +------------ */ mistake(".p.S"). /* ======================================================================= End (only spaces or tabs before end of line) -========================================================================*/ +*/ end([]):- !. end([32|L]):- !, end(L). @@ -446,7 +446,7 @@ /* ======================================================================= Dots -========================================================================*/ +*/ dots(In,Out):- dots(In,0,Out). @@ -469,7 +469,7 @@ /* ======================================================================= Open Input File -========================================================================*/ +*/ openInput(Stream):- option('--stdin',dont), @@ -487,7 +487,7 @@ /* ======================================================================= Open Output File -========================================================================*/ +*/ openOutput(Stream):- option('--output',Output), @@ -503,23 +503,23 @@ /* ======================================================================= Version -========================================================================*/ +*/ version:- option('--version',do), !, version(V), - format(user_error,'~p~n',[V]). + 'format'(user_error,'~p~n',[V]). version. /* ======================================================================= Help -========================================================================*/ +*/ help:- option('--help',do), !, - format(user_error,'usage: tokkie [options]~n~n',[]), + 'format'(user_error,'usage: tokkie [options]~n~n',[]), showOptions(tokkie). help:- @@ -528,7 +528,7 @@ /* ======================================================================= Definition of start -========================================================================*/ +*/ start:- current_prolog_flag(argv,[_Comm|Args]),