// author: Zunsik Lim, Jannik Strötgen
// email:  stroetgen@uni-hd.de
// date:   2015-04-08
// This file contains rules for the temporal expressions of the type set: setrules
// RULENAME="",EXTRACTION="",NORM_VALUE=""(,OFFSET="")?(,POS_CONSTRAINT="")?(,NORM_MOD="")?(,NORM_QUANT="")?(,NORM_FREQ="")?

////////////////
// EVERY UNIT //
////////////////
// set_r1
// EXAMPLE r1a-1: cada año
// EXAMPLE r1b-1: cada seis meses
// EXAMPLE r1c-1: cada 6 meses
// EXAMPLE r1d-1: cada lunes (segunda-feira)
// EXAMPLE r1e-1: cada noche (noite)
// EXAMPLE r1f-1: cada abril
RULENAME="set_r1a",EXTRACTION="([Tt]od[oa]s [oa]s|[Cc]ada|[Aa]o) %reUnit",NORM_VALUE="P1%UPPERCASE%(%SUBSTRING%(%normUnit(group(2)),0,1))",NORM_QUANT="EVERY"
RULENAME="set_r1b",EXTRACTION="([Tt]od[oa]s [oa]s|[Cc]ada|[Aa]o) (%reNumWord2D|%reNumWord1D) %reUnit",NORM_VALUE="P%normDurationNumber(group(2))%UPPERCASE%(%SUBSTRING%(%normUnit(group(5)),0,1))",NORM_QUANT="EVERY"
RULENAME="set_r1c",EXTRACTION="([Tt]od[oa]s [oa]s|[Cc]ada|[Aa]o) ([\d]+) %reUnit",NORM_VALUE="Pgroup(2)%UPPERCASE%(%SUBSTRING%(%normUnit(group(3)),0,1))",NORM_QUANT="EVERY"
RULENAME="set_r1d",EXTRACTION="([Tt]od[oa]s [oa]s|[Cc]ada|[Aa]o) %reWeekday",NORM_VALUE="XXXX-WXX-%normDayInWeek(group(2))",NORM_QUANT="EVERY",NORM_FREQ="1W"
RULENAME="set_r1e",EXTRACTION="([Tt]od[oa]s [oa]s|[Cc]ada|[Aa]o) %rePartOfDay",NORM_VALUE="PT%normPartOfDay(group(2))",NORM_QUANT="EVERY"
RULENAME="set_r1f",EXTRACTION="([Tt]odos os|[Cc]ada) (%reMonthLong|%reMonthShort)",NORM_VALUE="XXXX-%normMonth(group(2))",NORM_QUANT="%UPPERCASE%(group(1))",NORM_FREQ="1M"
RULENAME="set_r1g",EXTRACTION="([Tt]od[oa]s [oa]s|[Cc]ada) %reSeason",NORM_VALUE="XXXX-%normSeason(group(2))",NORM_QUANT="%UPPERCASE%(group(1))",NORM_FREQ="1S"

// set_r2
// EXAMPLE r2a-1: fins de semana
RULENAME="set_r2a",EXTRACTION="fins de semana",NORM_VALUE="XXXX-WXX-WE"

// set_r3
// EXAMPLE r3a-1: uma vez au ano
// EXAMPLE r3b-1: duas veces por semana
RULENAME="set_r3a",EXTRACTION="[Uu]ma vez (por|au|a) %reUnit",NORM_VALUE="P1%UPPERCASE%(%SUBSTRING%(%normUnit(group(2)),0,1))",NORM_FREQ="1"
RULENAME="set_r3b",EXTRACTION="[Dd]uas vezes (por|au|a) %reUnit",NORM_VALUE="P%UPPERCASE%(%SUBSTRING%(%normUnit(group(2)),0,1))",NORM_FREQ="2"


// set_r4
// EXAMPLE r4a-1: todos os 5 anos
// EXAMPLE r4b-1: todos os dez dias
RULENAME="set_r4a",EXTRACTION="([Tt]od[oa]s [oa]s|[Cc]ada) ([\d]+) %reUnit",NORM_VALUE="Pgroup(2)%UPPERCASE%(%SUBSTRING%(%normUnit(group(3)),0,1))",NORM_QUANT="EVERY"
RULENAME="set_r4b",EXTRACTION="([Tt]od[oa]s [oa]s|[Cc]ada) (%reNumWord1D|%reNumWord2D) %reUnit",NORM_VALUE="P%normDurationNumber(group(2))%UPPERCASE%(%SUBSTRING%(%normUnit(group(5)),0,1))",NORM_QUANT="EVERY"

// set_r5
// EXAMPLE r5a-1: 2 days each week
RULENAME="set_r5a",EXTRACTION="([\d]+) %reUnit (cada|por|ao|a) %reUnit",NORM_VALUE="P1%UPPERCASE%(%SUBSTRING%(%normUnit(group(4)),0,1))",NORM_QUANT="EACH",NORM_FREQ="group(1)%normUnit4Duration(group(2))"
RULENAME="set_r5b",EXTRACTION="(%reNumWord2D|%reNumWord1D) %reUnit (cada|por|ao|a) %reUnit",NORM_VALUE="P1%UPPERCASE%(%SUBSTRING%(%normUnit(group(6)),0,1))",NORM_QUANT="EACH",NORM_FREQ="%normDurationNumber(group(1))%normUnit4Duration(group(4))"

// set_r5 
// EXAMPLE r6a-1: anualmente
// EXAMPLE r6b-1: diarios (if adjective)
// EXAMPLE r6c-2: semanales (if adjective)
RULENAME="set_r6a",EXTRACTION="%reSetWords",NORM_VALUE="%normSetWords(group(1))"
//RULENAME="set_r6b",EXTRACTION="(diari[oa][s]?|mensual(es)?)",NORM_VALUE="P1%UPPERCASE%(%SUBSTRING%(group(1),0,1))",POS_CONSTRAINT="group(1):ADJ:"
//RULENAME="set_r6c",EXTRACTION="(semanal(es)?)",NORM_VALUE="P1W",POS_CONSTRAINT="group(1):ADJ:"

