;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; created 3/28/2004 by clbecker ;;;; last modified 5/11/2005 by clbecker ;;;; ;;;; ;;;; This is the main module of the verb algorithm. ;;;; It calls the main functions in DataCollection ;;;; and DataProcessing through the list *ProcessList*. ;;;; ;;;; ;;;; Usage: ;;;; ;;;; (defineVerb 'verb) ;;;; ;;;;--------------------------------------------- ;;;; ;;;; version history: ;;;; 1.0 Karen Erlich ;;;; ;;;; this version has not been tested on any recent demo ;;;; ;;;; ;;;; 2.0 by Justin Del Vecchio ;;;; ;;;; features: ;;;; identified transitivity, as well as member ;;;; and superclass heirarchy of agent and objects ;;;; ;;;; 2.1a by clbecker ;;;; ;;;; upgrades: ;;;; searches for instrument case frame, returns ;;;; it among list of transitivity. ;;;; ;;;; 2.1b by scott napieralski ;;;; ;;;; we haven't determined what modifications were made. ;;;; ;;;; ;;;; 2.1c by M. Sato ;;;; ;;;; upgrades: ;;;; finds additional case frames: ;;;; - properties of the verb ;;;; - superclasses of the verb ;;;; ;;;;--------------------------------------------- ;;;; ;;;; 3.0 by C. Becker ;;;; completed Spring 2004 ;;;; this was a complete rewrite of the verb algorithm ;;;; ;;;; the main goal in this version was to modularize each component ;;;; so that the algorithm could be more easily modified in the future. ;;;; ;;;; ;;;; 3.1 by C. Becker ;;;; completed Spring 2005 ;;;; ;;;; This version added an additional level of processing to the data. ;;;; The form of the output follows a frame-like format as the ;;;; noun algorithm does. ;;;; ;;;; ;;;; ;;;;--------------------------------------------- ;;;; ;;;; ;;;; Modification History ;;;; ;;;; 5/8/2005 ;;;; Reorganized functions into 2 main files: ;;;; DataCollection.cl ;;;; DataProcessing.cl ;;;; ;;;; ;;;;--------------------------------------------- ;;;; load all modules here: ;;;; ;;;; NOTE: paths may need to be changed ; (load "verbalgorithm3.1/DataCollection") ; (load "verbalgorithm3.1/DataProcessing") ;(load "/home/unmdue/zhaomoya/DataCollection_final.cl") ;(load "/home/unmdue/zhaomoya/DataProcessing_final.cl") (in-package :snepslog) ;(load "/home/unmdue/zhaomoya/DataCollection_final.cl") ;(load "/home/unmdue/zhaomoya/DataProcessing_final.cl") ;;;; ;;;;--------------------------------------------- ;;;;;;;;;;;;; LIST *ProcessList* ;; ;; This is the main "integration thread" of the verb algorithm. ;; All processes are executed from this list in the function defineVerb ;; which is defined below in this file. ;; ;; ;; ALL PROCESSES MUST BE CALLED FROM HERE ;; ;; This keeps all execution centralized and well organized. (setf *ProcessList* (list ;; call DataCollection::constructFindList ;; this fills in the double association list *Find-List* ;; with the paths to the relations of each argument of ;; the verb. '(constructFindList) ;; call DataCollection::constructListIndices ;; this creates an index of all the features ;; for which the algorithm retrieves the path. '(constructListIndices) ;; call DataCollection::evaluateFindList ;; this evaluates each path contained in *Find-List* ;; and stores the results in *Found-List* '(evaluateFindList verb) ;;---------- end data collection ----------------- ;;---------- begin data processing --------------- ;; call DataProcessing::assemble-data ;; collect data for the output definition frame '(assemble-data) ;; call DataProcessing::outputVerbFrame ;; ;; This outputs all the data in the Found-List ;; organized into a frame-like format. '(outputVerbFrame) )) ; end setf ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Function: defineVerb ;;; ;;; Arguments: ;;; verb ;;; a symbol representing the verb to be defined. ;;; ;;; trace ;;; (optional argument) ;;; an integer with the possible values: ;;; 0 trace off (default) ;;; 1 trace on ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun defineVerb (v &optional (trace 0)) "Initiate the verb algorithm on the verb v." ;; make verb a global variable (setf verb v) ;;(return-from defineVerb verb) ;; for test (setf *trace* trace) ;;EXECUTE CVA PROCESS (loop for process in *ProcessList* do (eval process) ); end loop ) ; end define verb