#!/bin/bash # Argument = -f sentfile -l rulelist -r rules -b blocklist -x blockrules -a addrules usage() { cat << EOF usage: $0 options This script produces paraphrases of an FOL expression OPTIONS: -f Sentence kernel file -l Rule list -r Rule file -b Blocked rule list -x Blocked rule file -a Added rule file -h Show this message EOF } FILE= RULELIST= RULES= BLOCKED= ADDED= while getopts “hf:l:r:b:x:a:” OPTION do case $OPTION in h) usage exit 1 ;; f) FILE=$OPTARG ;; l) RULELIST=$OPTARG ;; r) RULES=$OPTARG ;; b) BLOCKLIST=$OPTARG ;; x) BLOCKED=$OPTARG ;; a) ADDED=$OPTARG ;; ?) usage exit esac done if [[ -z $FILE ]] then usage exit 1 else if [[ -z $RULELIST && -z $RULES ]] then RULES=educ/rules.all fi if [[ -z $BLOCKED ]] then BLOCKED=educ/rules.none fi; allrules="/tmp/allrules.$RANDOM" blockrules="/tmp/blockrules.$RANDOM" newrules="/tmp/newrules.$RANDOM" userules="/tmp/rules.$RANDOM" sentsout=/tmp/sentsout.$RANDOM if [[ -n $RULELIST ]] then echo $RULELIST | sed -e 's/\s\+/\n/g' | cat $RULES - | sort -u > $allrules else sort $RULES > $allrules fi; if [[ -n $BLOCKLIST ]] then echo $BLOCKLIST | sed -e 's/\s\+/\n/g' | cat $BLOCKED - | sort -u > $blockrules else sort $BLOCKED > $blockrules fi; comm -23 $allrules $blockrules > $newrules; if [[ -n $ADDED ]] then cat $ADDED $newrules > $userules else cp $newrules $userules fi; cd /home/danf/erg; ace -g educ.dat -1T -r "root_informal" /home/danf/educ/kernels/$FILE | ace -g educ/educpara.dat --max-chart-megabytes 14000 --max-unpack-megabytes 15000 --timeout 1000 --transfer-config $userules | ace -g educ.dat -e > $sentsout; sort -u $sentsout > /home/danf/educ/paraphrase/$FILE fi; if [ -f $allrules ]; then rm $allrules fi; if [ -f $blockrules ]; then rm $blockrules fi; if [ -f $newrules ]; then rm $newrules fi; if [ -f $userules ]; then rm $userules fi; if [ -f $sentsout ]; then rm $sentsout fi;