// author: Matje van de Camp
// email:  m.m.v.d.camp@tilburguniversity.edu
// date:   2011-09-15
// This file contains rules for the temporal expressions of the type duration: durationrules
// RULENAME="",EXTRACTION="",NORM_VALUE=""(,OFFSET="")?(,POS_CONSTRAINT="")?(,NORM_MOD="")?(,NORM_QUANT="")?(,NORM_FREQ="")?

// LREC NEGATIVE RULES
RULENAME="date_lrec0a_negative",EXTRACTION="%reYearBC ([\S]+)",NORM_VALUE="REMOVE",POS_CONSTRAINT="group(2):nounpl:"
RULENAME="date_lrec0b_negative",EXTRACTION="%reYearBC ([\S]+) ([\S]+)",NORM_VALUE="REMOVE",POS_CONSTRAINT="group(2):JJ:group(3):nounpl:"
RULENAME="date_lrec0c_negative",EXTRACTION="%reYearBC (kilometers?|dollars?|gulden|meters?|kilogram|gram|ons|pond)",NORM_VALUE="REMOVE"

/////////////////////
// POSITIVE RULES //
/////////////////////
// duration_r1
// EXAMPLE r1a-1: minder dan zestig dagen
// EXAMPLE r1b-1: minder dan 60 dagen
// EXAMPLE r1c-1: enkele dagen
// EXAMPLE r1d-1: minder dan zestig minuten
// EXAMPLE r1e-1: minder dan 60 minuten
// EXAMPLE r1f-1: een paar minuten
RULENAME="duration_r1a",EXTRACTION="(%reApproximate )?(%reNumWord2D|%reNumWord1D)( |-)%reUnit",NORM_VALUE="P%normDurationNumber(group(3))%normUnit4Duration(group(7))"
RULENAME="duration_r1b",EXTRACTION="(%reApproximate )?([\d]+)( |-)%reUnit",NORM_VALUE="Pgroup(3)%normUnit4Duration(group(5))"
RULENAME="duration_r1c",EXTRACTION="(enkele|een paar|wat|vele) %reUnit",NORM_VALUE="PX%normUnit4Duration(group(2))"
RULENAME="duration_r1d",EXTRACTION="(%reApproximate )?(%reNumWord2D|%reNumWord1D)( |-)(minuut|minuten|uur)",NORM_VALUE="PT%normDurationNumber(group(3))%normUnit4Duration(group(7))"
RULENAME="duration_r1e",EXTRACTION="(%reApproximate )?([\d]+)( |-)(minuut|minuten|uur)",NORM_VALUE="PTgroup(3)%normUnit4Duration(group(5))"
RULENAME="duration_r1f",EXTRACTION="(enkele|een paar|wat) (minuut|minuten|uur)",NORM_VALUE="PTX%normUnit4Duration(group(2))"
RULENAME="duration_r1g",EXTRACTION="(%reApproximate )(een)( )%reUnit",NORM_VALUE="P1%normUnit4Duration(group(5))"

// duration_r2
// EXAMPLE r2a-1: in ieder geval de laatste twintig jaar
// EXAMPLE r2b-1: in ieder geval de laatste 20 jaar
// EXAMPLE r2c-1: zeker de laatste paar jaren
// EXAMPLE r2d-1: gedurende de laatste twintig minuten
// EXAMPLE r2e-1: gedurende de laatste 20 minuten
// EXAMPLE r2f-1: sowieso de laatste uren
RULENAME="duration_r2a",EXTRACTION="(%reApproximate )?(de |het )?%reThisNextLast (%reNumWord2D|%reNumWord1D) %reUnit( al| nog)?",NORM_VALUE="P%normDurationNumber(group(5))%normUnit4Duration(group(8))"
RULENAME="duration_r2b",EXTRACTION="(%reApproximate )?(de |het )?%reThisNextLast ([\d]+) %reUnit( al| nog)?",NORM_VALUE="Pgroup(5)%normUnit4Duration(group(6))"
// --> is date! RULENAME="duration_r2c",EXTRACTION="(%reApproximate )?(de |het )?%reThisNextLast (paar )?%reUnit( al| nog)?",NORM_VALUE="PX%normUnit4Duration(group(6))"
RULENAME="duration_r2d",EXTRACTION="(%reApproximate )?(de |het )?%reThisNextLast (%reNumWord2D|%reNumWord1D) (minuut|minuten|uur)( al| nog)?",NORM_VALUE="PT%normDurationNumber(group(5))%normUnit4Duration(group(8))"
RULENAME="duration_r2e",EXTRACTION="(%reApproximate )?(de |het )?%reThisNextLast ([\d]+) (minuut|minuten|uur)( al| nog)?",NORM_VALUE="PTgroup(5)%normUnit4Duration(group(6))"
RULENAME="duration_r2f",EXTRACTION="(%reApproximate )?(de |het )?%reThisNextLast (paar )?(minuut|minuten|uur)( al| nog)?",NORM_VALUE="PTX%normUnit4Duration(group(6))"

// duration_r3
// EXAMPLE r3a-1: een periode van drie jaar
// EXAMPLE r3a-2: gedurende drie dagen
// EXAMPLE r3b-1: een drie jaar durende periode
// EXAMPLE r3c-1: een periode van 3 jaar
// EXAMPLE r3d-1: een 300 jaar durende periode
// EXAMPLE r3e-1: een periode van drie minuten
// EXAMPLE r3f-1: een drie minuten durende periode
// EXAMPLE r3g-1: een periode van 3 minuten
// EXAMPLE r3h-1: een 3 minuten durende periode
// EXAMPLE r3i-1: een drie-jarige periode
// EXAMPLE r3j-1: een 300-jarige periode
RULENAME="duration_r3a",EXTRACTION="((een|de) )?(periode van |gedurende |duur van )(%reNumWord2D|%reNumWord1D) %reUnit",NORM_VALUE="P%normDurationNumber(group(4))%normUnit4Duration(group(7))"
RULENAME="duration_r3b",EXTRACTION="((een|de) )?(%reNumWord2D|%reNumWord1D) %reUnit( durende)?( periode| tijd)?",NORM_VALUE="P%normDurationNumber(group(3))%normUnit4Duration(group(6))"
RULENAME="duration_r3c",EXTRACTION="((een|de) )?(periode van |gedurende |duur van )([\d]+) %reUnit",NORM_VALUE="Pgroup(4)%normUnit4Duration(group(5))"
RULENAME="duration_r3d",EXTRACTION="((een|de) )?([\d]+) %reUnit (durende)?( periode| tijd)?",NORM_VALUE="Pgroup(3)%normUnit4Duration(group(4))"
RULENAME="duration_r3e",EXTRACTION="((een|de) )?(periode van |gedurende |duur van )(%reNumWord2D|%reNumWord1D) (minuut|minuten|uur)",NORM_VALUE="P%normDurationNumber(group(4))%normUnit4Duration(group(7))"
RULENAME="duration_r3f",EXTRACTION="((een|de) )?(%reNumWord2D|%reNumWord1D) (minuut|minuten|uur) durende?( periode| tijd)?",NORM_VALUE="PT%normDurationNumber(group(3))%normUnit4Duration(group(6))"
RULENAME="duration_r3g",EXTRACTION="((een|de) )?(periode van |gedurende |duur van )([\d]+) (minuut|minuten|uur|uren)",NORM_VALUE="PTgroup(4)%normUnit4Duration(group(5))"
RULENAME="duration_r3h",EXTRACTION="((een|de) )?([\d]+) (minuut|minuten|uur|uren) durende?( periode| tijd)?",NORM_VALUE="PTgroup(3)%normUnit4Duration(group(4))"
//RULENAME="duration_r3i",EXTRACTION="((een|de) )?(%reNumWord2D|%reNumWord1D)( |-)?(jarige?)( periode| tijd)?",NORM_VALUE="P%normDurationNumber(group(3))%normUnit4Duration(group(jaar))"
//RULENAME="duration_r3j",EXTRACTION="((een|de) )?([\d]+)( |-)?(jarige?)( periode| tijd)?",NORM_VALUE="Pgroup(3)%normUnit4Duration(group(jaar))"

////////////////////
// NEGATIVE RULES //
////////////////////
// duration_r1_negative
// EXAMPLE r1a_negative-1: ongeveer 200 jaar ouder
// EXAMPLE r1b_negative-1: enkele dagen oud
RULENAME="duration_r1a_negation",EXTRACTION="(%reApproximate )?(%reNumWord2D|%reNumWord1D|[\d]+) (%reUnit|minuut|minuten|uur|uren) (ouder|jonger|oud|jong)",NORM_VALUE="REMOVE"
RULENAME="duration_r1b_negation",EXTRACTION="(%reApproximate )?(enkele|een paar|wat|vele) (%reUnit|minuut|minuten|uur|uren) (ouder|jonger|oud|jong)",NORM_VALUE="REMOVE"

