// author: Jannik Strötgen
// email:  stroetgen@uni-hd.de
// date:   2012-07-16
// This file contains rules for the temporal expressions of the type time: timerules
// RULENAME="",EXTRACTION="",NORM_VALUE=""(,OFFSET="")?(,POS_CONSTRAINT="")?(,NORM_MOD="")?(,NORM_QUANT="")?(,NORM_FREQ="")?

/////////////////////
// TIMESTAMP STYLE //
/////////////////////
// time_r1 (Timestamp style)
// EXAMPLE r1a-1: 2009-12-19T17:00:00
// EXAMPLE r1a-2: 2009-12-19 17:00:00
// EXAMPLE r1b-1: 2009-12-19T17:00
// EXAMPLE r1c-1: 12/29/2000 20:29
// EXAMPLE r1d-1: 12/29/2000 20:29:29
// EXAMPLE r1e-1: 12/29/2000 20:29:29.79
RULENAME="time_r1a",EXTRACTION="(%reYear4Digit-%reMonthNumber-%reDayNumber)(T| )%reTimeHour:%reTimeMinute:%reTimeMinute",NORM_VALUE="group(2)-group(3)-group(4)Tgroup(6):group(7):group(8)"
RULENAME="time_r1b",EXTRACTION="(%reYear4Digit-%reMonthNumber-%reDayNumber)(T| )%reTimeHour:%reTimeMinute",NORM_VALUE="group(2)-group(3)-group(4)Tgroup(6):group(7)"
RULENAME="time_r1c",EXTRACTION="(%reMonthNumber/%reDayNumber/%reYear4Digit) %reTimeHour:%reTimeMinute",NORM_VALUE="group(4)-group(2)-group(3)Tgroup(5):group(6)"
RULENAME="time_r1d",EXTRACTION="(%reMonthNumber/%reDayNumber/%reYear4Digit) %reTimeHour:%reTimeMinute:%reTimeMinute",NORM_VALUE="group(4)-group(2)-group(3)Tgroup(5):group(6):group(7)"
RULENAME="time_r1e",EXTRACTION="(%reMonthNumber/%reDayNumber/%reYear4Digit) %reTimeHour:%reTimeMinute:%reTimeMinute\.%reYear2Digit",NORM_VALUE="group(4)-group(2)-group(3)Tgroup(5):group(6):group(7).group(8)"

// time_r2
// EXAMPLE r2a-1: 09-24-99 1145EST (TimeStamp style with timezone information)
RULENAME="time_r2a",EXTRACTION="(%reMonthNumber-%reDayNumber-%reYear2Digit)( %reTimeHour(:)?%reTimeMinute)%reTimezone",NORM_VALUE="UNDEF-centurygroup(4)-group(2)-group(3)T%normMinute(group(6)):%normMinute(group(8))%normTimezone(group(9))"


/////////////////////////////
// PART-OF-DAY GRANULARITY //
/////////////////////////////
// time_r3
// EXAMPLE r3a-1: esta tarde
// EXAMPLE r3a-2: esta noche
// EXAMPLE r3b-1: anoche
// EXAMPLE r3c-1: la noche
// EXAMPLE r3d-1: la noche del pasado viernes
// EXAMPLE r3e-1: la noche del viernes pasado
// EXAMPLE r3f-1: la mañana del miércoles
RULENAME="time_r3a",EXTRACTION="%reThisNextLast %rePartOfDay( mism[oa])?",NORM_VALUE="UNDEF-%normThisNextLast(group(1))-dayT%normPartOfDay(group(2))"
RULENAME="time_r3b",EXTRACTION="([Aa]noche)",NORM_VALUE="UNDEF-last-dayTNI"
RULENAME="time_r3c",EXTRACTION="([Ee]l|[Ll]a) %rePartOfDay",NORM_VALUE="UNDEF-REF-day-PLUS-0T%normPartOfDay(group(2))"
RULENAME="time_r3d",EXTRACTION="([Dd]el |[Ee]l |[Ll]a |[Aa]l )?%rePartOfDay ([Dd]e la|[Dd]el|[Ee]l|[Ll]a|[Aa]l) %reThisNextLast %reWeekday",NORM_VALUE="UNDEF-%normThisNextLast(group(4))-%normWeekday(group(5))T%normPartOfDay(group(2))"
RULENAME="time_r3e",EXTRACTION="([Dd]el |[Ee]l |[Ll]a |[Aa]l )?%rePartOfDay ([Dd]e la|[Dd]el|[Ee]l|[Ll]a|[Aa]l) %reWeekday %reThisNextLast",NORM_VALUE="UNDEF-%normThisNextLast(group(5))-%normWeekday(group(4))T%normPartOfDay(group(2))"
RULENAME="time_r3f",EXTRACTION="([Dd]el |[Ee]l |[Ll]a |[Aa]l )?%rePartOfDay ([Dd]e la|[Dd]el|[Ee]l|[Ll]a|[Aa]l) %reWeekday",NORM_VALUE="UNDEF-day-%normWeekday(group(4))T%normPartOfDay(group(2))"

///////////////////////////
// TIMEPOINT GRANULARITY //
///////////////////////////
// time_r4
// EXAMPLE r4a-1: las 11 de la mañana 
// EXAMPLE r4b-1: las 11 5 la tarde 
// EXAMPLE r4c-1: las 9 de la noche
// EXAMPLE r4d-1: las 1 de la noche
// EXAMPLE r4e-1: las 12 de la noche
RULENAME="time_r4a",EXTRACTION="(%reApproximate )?([Ll]as) %reTimeHour de la mañana",NORM_VALUE="UNDEF-this-dayT%normDay(group(4)):00",NORM_MOD="%normApprox4Dates(group(2))"
RULENAME="time_r4b",EXTRACTION="(%reApproximate )?([Ll]as) %reTimeHour de la tarde",NORM_VALUE="UNDEF-this-dayT%SUM%(%normDay(group(4)),12):00",NORM_MOD="%normApprox4Dates(group(2))"
RULENAME="time_r4c",EXTRACTION="(%reApproximate )?([Ll]as) (8|9|10|11) de la noche",NORM_VALUE="UNDEF-this-dayT%SUM%(%normDay(group(4)),12):00",NORM_MOD="%normApprox4Dates(group(2))"
RULENAME="time_r4d",EXTRACTION="(%reApproximate )?([Ll]as) (1|2|3|4|5) de la noche",NORM_VALUE="UNDEF-this-dayT%normDay(group(4)):00",NORM_MOD="%normApprox4Dates(group(2))"
RULENAME="time_r4e",EXTRACTION="(%reApproximate )?([Ll]as) (12) de la noche",NORM_VALUE="UNDEF-this-dayT00:00",NORM_MOD="%normApprox4Dates(group(2))"

// time_r5
// EXAMPLE r5a-1: las 8.15 hora local
RULENAME="time_r5a",EXTRACTION="(%reApproximate )?([Ll]as) %reTimeHour[\.:]%reTimeMinute hora(s)?( local(es)?)?",NORM_VALUE="UNDEF-this-dayT%normDay(group(4)):group(5)",NORM_MOD="%normApprox4Dates(group(2))"


