2/* ========================================================================
    3   File Search Paths
    4=========================================================================*/
    5
    6file_search_path(semlib,     'src/prolog/lib').
    7file_search_path(boxer,      'src/prolog/boxer').
    8file_search_path(lex,        'src/prolog/boxer/lex').
    9
   10
   11/* ========================================================================
   12   VerbNet
   13=========================================================================*/
   14
   15:- dynamic roles/2.   16
   17
   18/* ========================================================================
   19   Modules
   20=========================================================================*/
   21
   22:- use_module(library(lists),[reverse/2,member/2,append/3]).   23:- use_module(boxer(slashes)).   24:- use_module(lex(verbnet)).   25
   26
   27/* ========================================================================
   28   Generate
   29=========================================================================*/
   30
   31generate([],_).
   32
   33generate([X|L],V):-
   34   length(X,Len),
   35   format('~p ~p ~q~n',[V,Len,X]),
   36   generate(L,V).
   37
   38
   39/* ========================================================================
   40   Process
   41=========================================================================*/
   42
   43process([]).
   44
   45process([V1|L]):-
   46   setof(Roles,C^(verbnet(V2,C,Roles),V1==V2),Rs),
   47   generate(Rs,V1),
   48   process(L).
   49
   50
   51/* ========================================================================
   52   Main
   53=========================================================================*/
   54
   55run:-
   56   setof(V,A^B^(verbnet(V,A,B),nonvar(V)),L),
   57   process(L),
   58   halt.
   59
   60:- run.