/* ========================================================================
   File Search Paths
=========================================================================*/

file_search_path(semlib,     'src/prolog/lib').
file_search_path(boxer,      'src/prolog/boxer').
file_search_path(lex,        'src/prolog/boxer/lex').


/* ========================================================================
   VerbNet
=========================================================================*/

:- dynamic roles/2.


/* ========================================================================
   Modules
=========================================================================*/

:- use_module(library(lists),[reverse/2,member/2,append/3]).
:- use_module(boxer(slashes)).
:- use_module(lex(verbnet)).


/* ========================================================================
   Generate
=========================================================================*/

generate([],_).

generate([X|L],V):-
   length(X,Len),
   format('~p ~p ~q~n',[V,Len,X]),
   generate(L,V).


/* ========================================================================
   Process
=========================================================================*/

process([]).

process([V1|L]):-
   setof(Roles,C^(verbnet(V2,C,Roles),V1==V2),Rs),
   generate(Rs,V1),
   process(L).


/* ========================================================================
   Main
=========================================================================*/

run:-
   setof(V,A^B^(verbnet(V,A,B),nonvar(V)),L),
   process(L),
   halt.

:- run.