-- Copyright (c) 2016-present, Facebook, Inc. -- All rights reserved. -- -- This source code is licensed under the BSD-style license found in the -- LICENSE file in the root directory of this source tree. An additional grant -- of patent rights can be found in the PATENTS file in the same directory. {-# LANGUAGE OverloadedStrings #-} module Duckling.Time.EN.Corpus ( corpus , negativeCorpus ) where import Prelude import Data.String import Duckling.Time.Corpus import Duckling.Time.Types hiding (Month) import Duckling.TimeGrain.Types hiding (add) import Duckling.Testing.Types hiding (examples) corpus :: Corpus corpus = (testContext, allExamples) negativeCorpus :: NegativeCorpus negativeCorpus = (testContext, examples) where examples = [ "laughing out loud" , "1 adult" , "we are separated" , "25" , "this is the one" , "in 61" ] allExamples :: [Example] allExamples = concat [ examples (datetime (2013, 2, 12, 4, 30, 0) Second) [ "now" , "right now" , "just now" ] , examples (datetime (2013, 2, 12, 0, 0, 0) Day) [ "today" , "at this time" ] , examples (datetime (2013, 2, 11, 0, 0, 0) Day) ["yesterday"] , examples (datetime (2013, 2, 13, 0, 0, 0) Day) [ "tomorrow" , "tomorrows" ] , examples (datetime (2013, 2, 18, 0, 0, 0) Day) [ "monday" , "mon." , "this monday" , "Monday, Feb 18" , "Mon, February 18" ] , examples (datetime (2013, 2, 19, 0, 0, 0) Day) [ "tuesday" , "Tuesday the 19th" , "Tuesday 19th" ] , examples (datetime (2013, 8, 15, 0, 0, 0) Day) [ "Thu 15th" ] , examples (datetime (2013, 2, 14, 0, 0, 0) Day) [ "thursday" , "thu" , "thu." ] , examples (datetime (2013, 2, 15, 0, 0, 0) Day) [ "friday" , "fri" , "fri." ] , examples (datetime (2013, 2, 16, 0, 0, 0) Day) [ "saturday" , "sat" , "sat." ] , examples (datetime (2013, 2, 17, 0, 0, 0) Day) [ "sunday" , "sun" , "sun." ] , examples (datetime (2013, 3, 1, 0, 0, 0) Day) [ "the 1st of march" , "first of march" , "march first" ] , examples (datetime (2013, 3, 3, 0, 0, 0) Day) ["march 3"] , examples (datetime (2013, 3, 15, 0, 0, 0) Day) ["the ides of march"] , examples (datetime (2015, 3, 3, 0, 0, 0) Day) [ "march 3 2015" , "march 3rd 2015" , "march third 2015" , "3/3/2015" , "3/3/15" , "2015-3-3" , "2015-03-03" ] , examples (datetime (2013, 2, 15, 0, 0, 0) Day) [ "on the 15th" , "the 15th of february" , "15 of february" , "february the 15th" , "february 15" , "15th february" , "2/15" , "on 2/15" , "February 15" ] , examples (datetime (2013, 8, 8, 0, 0, 0) Day) ["Aug 8"] , examples (datetime (2014, 7, 18, 0, 0, 0) Day) [ "Fri, Jul 18" , "Jul 18, Fri" ] , examples (datetime (2014, 10, 1, 0, 0, 0) Month) ["October 2014"] , examples (datetime (1974, 10, 31, 0, 0, 0) Day) [ "10/31/1974" , "10/31/74" , "10-31-74" ] , examples (datetime (2015, 4, 14, 0, 0, 0) Day) [ "14april 2015" , "April 14, 2015" , "14th April 15" ] , examples (datetime (2013, 2, 19, 0, 0, 0) Day) [ "next tuesday" , "around next tuesday" ] , examples (datetime (2013, 2, 22, 0, 0, 0) Day) ["friday after next"] , examples (datetime (2013, 3, 1, 0, 0, 0) Month) ["next March"] , examples (datetime (2014, 3, 1, 0, 0, 0) Month) ["March after next"] , examples (datetime (2013, 2, 10, 0, 0, 0) Day) ["Sunday, Feb 10"] , examples (datetime (2013, 2, 13, 0, 0, 0) Day) ["Wed, Feb13"] , examples (datetime (2013, 2, 11, 0, 0, 0) Week) [ "this week" , "current week" , "coming week" ] , examples (datetime (2013, 2, 4, 0, 0, 0) Week) [ "last week" , "past week" , "previous week" ] , examples (datetime (2013, 2, 18, 0, 0, 0) Week) [ "next week" , "the following week" , "around next week" ] , examples (datetime (2013, 1, 1, 0, 0, 0) Month) ["last month"] , examples (datetime (2013, 3, 1, 0, 0, 0) Month) ["next month"] , examples (datetime (2013, 1, 1, 0, 0, 0) Quarter) [ "this quarter" , "this qtr" ] , examples (datetime (2013, 4, 1, 0, 0, 0) Quarter) [ "next quarter" , "next qtr" ] , examples (datetime (2013, 7, 1, 0, 0, 0) Quarter) [ "third quarter" , "3rd quarter" , "third qtr" , "3rd qtr" , "the 3rd qtr" ] , examples (datetime (2018, 10, 1, 0, 0, 0) Quarter) [ "4th quarter 2018" , "4th qtr 2018" , "the 4th qtr of 2018" ] , examples (datetime (2012, 1, 1, 0, 0, 0) Year) [ "last year" , "last yr" ] , examples (datetime (2013, 1, 1, 0, 0, 0) Year) [ "this year" , "current year" , "this yr" ] , examples (datetime (2014, 1, 1, 0, 0, 0) Year) [ "next year" , "next yr" ] , examples (datetime (2013, 2, 10, 0, 0, 0) Day) [ "last sunday" , "sunday from last week" , "last week's sunday" ] , examples (datetime (2013, 2, 5, 0, 0, 0) Day) ["last tuesday"] , examples (datetime (2013, 2, 19, 0, 0, 0) Day) ["next tuesday"] , examples (datetime (2013, 2, 13, 0, 0, 0) Day) ["next wednesday"] , examples (datetime (2013, 2, 20, 0, 0, 0) Day) [ "wednesday of next week" , "wednesday next week" , "wednesday after next" ] , examples (datetime (2013, 2, 22, 0, 0, 0) Day) ["friday after next"] , examples (datetime (2013, 2, 11, 0, 0, 0) Day) ["monday of this week"] , examples (datetime (2013, 2, 12, 0, 0, 0) Day) ["tuesday of this week"] , examples (datetime (2013, 2, 13, 0, 0, 0) Day) ["wednesday of this week"] , examples (datetime (2013, 2, 14, 0, 0, 0) Day) ["the day after tomorrow"] , examples (datetime (2013, 2, 14, 17, 0, 0) Hour) [ "day after tomorrow 5pm" ] , examples (datetime (2013, 2, 10, 0, 0, 0) Day) ["the day before yesterday"] , examples (datetime (2013, 2, 10, 8, 0, 0) Hour) [ "day before yesterday 8am" ] , examples (datetime (2013, 3, 25, 0, 0, 0) Day) ["last Monday of March"] , examples (datetime (2014, 3, 30, 0, 0, 0) Day) ["last Sunday of March 2014"] , examples (datetime (2013, 10, 3, 0, 0, 0) Day) ["third day of october"] , examples (datetime (2014, 10, 6, 0, 0, 0) Week) ["first week of october 2014"] , examples (datetime (2013, 10, 7, 0, 0, 0) Week) ["the week of october 6th"] , examples (datetime (2013, 10, 7, 0, 0, 0) Week) ["the week of october 7th"] , examples (datetime (2015, 10, 31, 0, 0, 0) Day) [ "last day of october 2015" , "last day in october 2015" ] , examples (datetime (2014, 9, 22, 0, 0, 0) Week) ["last week of september 2014"] , examples (datetime (2013, 10, 1, 0, 0, 0) Day) [ "first tuesday of october" , "first tuesday in october" ] , examples (datetime (2014, 9, 16, 0, 0, 0) Day) ["third tuesday of september 2014"] , examples (datetime (2014, 10, 1, 0, 0, 0) Day) ["first wednesday of october 2014"] , examples (datetime (2014, 10, 8, 0, 0, 0) Day) ["second wednesday of october 2014"] , examples (datetime (2015, 1, 13, 0, 0, 0) Day) ["third tuesday after christmas 2014"] , examples (datetime (2013, 2, 13, 3, 0, 0) Hour) [ "at 3am" , "3 in the AM" , "at 3 AM" , "3 oclock am" , "at three am" ] , examples (datetime (2013, 2, 13, 3, 18, 0) Minute) [ "3:18am" , "3:18a" ] , examples (datetime (2013, 2, 12, 15, 0, 0) Hour) [ "at 3pm" , "@ 3pm" , "3PM" , "3pm" , "3 oclock pm" , "3 o'clock in the afternoon" , "3ish pm" , "3pm approximately" , "at about 3pm" ] , examples (datetime (2013, 2, 12, 15, 15, 0) Minute) [ "at 15 past 3pm" , "a quarter past 3pm" , "3:15 in the afternoon" , "15:15" , "3:15pm" , "3:15PM" , "3:15p" ] , examples (datetime (2013, 2, 12, 15, 20, 0) Minute) [ "at 20 past 3pm" , "3:20 in the afternoon" , "3:20 in afternoon" , "twenty after 3pm" , "3:20p" ] , examples (datetime (2013, 2, 12, 15, 30, 0) Minute) [ "at half past three pm" , "half past 3 pm" , "15:30" , "3:30pm" , "3:30PM" , "330 p.m." , "3:30 p m" , "3:30" , "half three" ] , examples (datetime (2013, 2, 12, 15, 23, 24) Second) ["15:23:24"] , examples (datetime (2013, 2, 12, 11, 45, 0) Minute) [ "a quarter to noon" , "11:45am" , "15 to noon" ] , examples (datetime (2013, 2, 12, 20, 0, 0) Hour) [ "8 tonight" , "eight tonight" , "8 this evening" , "at 8 in the evening" , "in the evening at eight" ] , examples (datetime (2013, 9, 20, 19, 30, 0) Minute) ["at 7:30 PM on Fri, Sep 20"] , examples (datetime (2013, 2, 16, 9, 0, 0) Hour) ["at 9am on Saturday"] , examples (datetime (2013, 2, 16, 9, 0, 0) Hour) ["on Saturday for 9am"] , examples (datetime (2014, 7, 18, 19, 0, 0) Minute) ["Fri, Jul 18, 2014 07:00 PM"] , examples (datetime (2013, 2, 12, 4, 30, 1) Second) [ "in a sec" , "one second from now" , "in 1\"" ] , examples (datetime (2013, 2, 12, 4, 31, 0) Second) [ "in a minute" , "in one minute" , "in 1'" ] , examples (datetime (2013, 2, 12, 4, 32, 0) Second) [ "in 2 minutes" , "in 2 more minutes" , "2 minutes from now" ] , examples (datetime (2013, 2, 12, 5, 30, 0) Second) ["in 60 minutes"] , examples (datetime (2013, 2, 12, 4, 45, 0) Second) [ "in a quarter of an hour" , "in 1/4h" , "in 1/4 h" , "in 1/4 hour" ] , examples (datetime (2013, 2, 12, 5, 0, 0) Second) [ "in half an hour" , "in 1/2h" , "in 1/2 h" , "in 1/2 hour" ] , examples (datetime (2013, 2, 12, 5, 15, 0) Second) [ "in three-quarters of an hour" , "in 3/4h" , "in 3/4 h" , "in 3/4 hour" ] , examples (datetime (2013, 2, 12, 7, 0, 0) Second) [ "in 2.5 hours" , "in 2 and an half hours" ] , examples (datetime (2013, 2, 12, 5, 30, 0) Minute) [ "in one hour" , "in 1h" ] , examples (datetime (2013, 2, 12, 6, 30, 0) Minute) [ "in a couple hours" , "in a couple of hours" ] , examples (datetime (2013, 2, 12, 7, 30, 0) Minute) [ "in a few hours" , "in few hours" ] , examples (datetime (2013, 2, 13, 4, 30, 0) Minute) ["in 24 hours"] , examples (datetime (2013, 2, 13, 4, 0, 0) Hour) [ "in a day" , "a day from now" ] , examples (datetime (2016, 2, 1, 0, 0, 0) Month) ["3 years from today"] , examples (datetime (2013, 2, 19, 4, 0, 0) Hour) ["in 7 days"] , examples (datetime (2013, 2, 19, 0, 0, 0) Day) [ "in 1 week" , "in a week" ] , examples (datetime (2013, 2, 12, 5, 0, 0) Second) ["in about half an hour"] , examples (datetime (2013, 2, 5, 4, 0, 0) Hour) ["7 days ago"] , examples (datetime (2013, 1, 29, 4, 0, 0) Hour) [ "14 days Ago" , "a fortnight ago" ] , examples (datetime (2013, 2, 5, 0, 0, 0) Day) [ "a week ago" , "one week ago" , "1 week ago" ] , examples (datetime (2013, 1, 22, 0, 0, 0) Day) ["three weeks ago"] , examples (datetime (2012, 11, 12, 0, 0, 0) Day) ["three months ago"] , examples (datetime (2011, 2, 1, 0, 0, 0) Month) ["two years ago"] , examples (datetime (1954, 1, 1, 0, 0, 0) Year) ["1954"] , examples (datetime (2013, 2, 19, 4, 0, 0) Hour) ["7 days hence"] , examples (datetime (2013, 2, 26, 4, 0, 0) Hour) [ "14 days hence" , "a fortnight hence" ] , examples (datetime (2013, 2, 19, 0, 0, 0) Day) [ "a week hence" , "one week hence" , "1 week hence" ] , examples (datetime (2013, 3, 5, 0, 0, 0) Day) ["three weeks hence"] , examples (datetime (2013, 5, 12, 0, 0, 0) Day) ["three months hence"] , examples (datetime (2015, 2, 1, 0, 0, 0) Month) ["two years hence"] , examples (datetime (2013, 12, 1, 0, 0, 0) Month) [ "one year After christmas" , "a year from Christmas" ] , examples (datetimeInterval ((2013, 6, 21, 0, 0, 0), (2013, 9, 24, 0, 0, 0)) Day) [ "this Summer" , "current summer" ] , examples (datetimeInterval ((2012, 12, 21, 0, 0, 0), (2013, 3, 21, 0, 0, 0)) Day) ["this winter"] , examples (datetime (2013, 12, 25, 0, 0, 0) Day) [ "xmas" , "christmas" , "christmas day" ] , examples (datetime (2013, 12, 31, 0, 0, 0) Day) [ "new year's eve" , "new years eve" ] , examples (datetime (2014, 1, 1, 0, 0, 0) Day) [ "new year's day" , "new years day" ] , examples (datetime (2013, 2, 14, 0, 0, 0) Day) [ "valentine's day" , "valentine day" ] , examples (datetime (2013, 5, 12, 0, 0, 0) Day) [ "Mother's Day" , "next mothers day" ] , examples (datetime (2012, 5, 13, 0, 0, 0) Day) ["last mothers day"] , examples (datetime (2014, 5, 11, 0, 0, 0) Day) ["mothers day 2014"] , examples (datetime (2013, 6, 16, 0, 0, 0) Day) ["Father's Day"] , examples (datetime (2012, 6, 17, 0, 0, 0) Day) ["last fathers day"] , examples (datetime (1996, 6, 16, 0, 0, 0) Day) ["fathers day 1996"] , examples (datetime (2013, 5, 27, 0, 0, 0) Day) [ "memorial day" , "Next Memorial Day" ] , examples (datetime (2012, 5, 28, 0, 0, 0) Day) [ "last memorial day" , "memorial day of last year" ] , examples (datetimeInterval ((2013, 5, 24, 18, 0, 0), (2013, 5, 28, 0, 0, 0)) Hour) ["memorial day week-end"] , examples (datetime (2013, 7, 4, 0, 0, 0) Day) [ "independence day" , "4th of July" , "4 of july" ] , examples (datetime (2013, 9, 2, 0, 0, 0) Day) ["labor day"] , examples (datetime (2012, 9, 3, 0, 0, 0) Day) [ "labor day of last year" , "Labor Day 2012" ] , examples (datetimeInterval ((2013, 8, 30, 18, 0, 0), (2013, 9, 3, 0, 0, 0)) Hour) ["labor day weekend"] , examples (datetime (2013, 10, 31, 0, 0, 0) Day) [ "halloween" , "next halloween" , "Halloween 2013" ] , examples (datetime (2013, 11, 28, 0, 0, 0) Day) [ "thanksgiving day" , "thanksgiving" , "thanksgiving 2013" , "this thanksgiving" , "next thanksgiving day" ] , examples (datetime (2014, 11, 27, 0, 0, 0) Day) [ "thanksgiving of next year" , "thanksgiving 2014" ] {- FIXME (jodent) Doesn't work in Duckling either. t13908315 , examples (datetime (2012, 11, 22, 0, 0, 0) Day) [ "last thanksgiving" , "thanksgiving day 2012" ] , examples (datetime (2016, 11, 24, 0, 0, 0) Day) ["thanksgiving 2016"]-} , examples (datetime (2014, 1, 20, 0, 0, 0) Day) [ "MLK day" , "next Martin Luther King day" , "this MLK day" ] , examples (datetime (2013, 1, 21, 0, 0, 0) Day) [ "last MLK day" , "MLK day 2013" ] , examples (datetime (2012, 1, 16, 0, 0, 0) Day) [ "MLK day of last year" , "MLK day 2012" ] , examples (datetimeInterval ((2013, 2, 12, 18, 0, 0), (2013, 2, 13, 0, 0, 0)) Hour) [ "this evening" , "today evening" , "tonight" ] , examples (datetimeInterval ((2013, 2, 8, 18, 0, 0), (2013, 2, 11, 0, 0, 0)) Hour) ["this past weekend"] , examples (datetimeInterval ((2013, 2, 13, 18, 0, 0), (2013, 2, 14, 0, 0, 0)) Hour) ["tomorrow evening"] , examples (datetimeInterval ((2013, 2, 13, 12, 0, 0), (2013, 2, 13, 14, 0, 0)) Hour) [ "tomorrow lunch" , "tomorrow at lunch" ] , examples (datetimeInterval ((2013, 2, 11, 18, 0, 0), (2013, 2, 12, 0, 0, 0)) Hour) ["yesterday evening"] , examples (datetimeInterval ((2013, 2, 15, 18, 0, 0), (2013, 2, 18, 0, 0, 0)) Hour) ["this week-end"] , examples (datetimeInterval ((2013, 2, 18, 4, 0, 0), (2013, 2, 18, 12, 0, 0)) Hour) ["monday mOrnIng"] , examples (datetimeInterval ((2013, 2, 18, 4, 0, 0), (2013, 2, 18, 9, 0, 0)) Hour) [ "monday early in the morning" , "monday early morning" , "monday in the early hours of the morning" ] , examples (datetimeInterval ((2013, 2, 15, 4, 0, 0), (2013, 2, 15, 12, 0, 0)) Hour) [ "february the 15th in the morning" , "15 of february in the morning" , "morning of the 15th of february" ] , examples (datetimeInterval ((2013, 2, 12, 4, 29, 58), (2013, 2, 12, 4, 30, 0)) Second) [ "last 2 seconds" , "last two seconds" ] , examples (datetimeInterval ((2013, 2, 12, 4, 30, 1), (2013, 2, 12, 4, 30, 4)) Second) [ "next 3 seconds" , "next three seconds" ] , examples (datetimeInterval ((2013, 2, 12, 4, 28, 0), (2013, 2, 12, 4, 30, 0)) Minute) [ "last 2 minutes" , "last two minutes" ] , examples (datetimeInterval ((2013, 2, 12, 4, 31, 0), (2013, 2, 12, 4, 34, 0)) Minute) [ "next 3 minutes" , "next three minutes" ] , examples (datetimeInterval ((2013, 2, 12, 3, 0, 0), (2013, 2, 12, 4, 0, 0)) Hour) [ "last 1 hour" , "last one hour" ] , examples (datetimeInterval ((2013, 2, 12, 5, 0, 0), (2013, 2, 12, 8, 0, 0)) Hour) [ "next 3 hours" , "next three hours" ] , examples (datetimeInterval ((2013, 2, 10, 0, 0, 0), (2013, 2, 12, 0, 0, 0)) Day) [ "last 2 days" , "last two days" , "past 2 days" ] , examples (datetimeInterval ((2013, 2, 13, 0, 0, 0), (2013, 2, 16, 0, 0, 0)) Day) [ "next 3 days" , "next three days" ] , examples (datetimeInterval ((2013, 2, 13, 0, 0, 0), (2013, 2, 16, 0, 0, 0)) Day) ["next few days"] , examples (datetimeInterval ((2013, 1, 28, 0, 0, 0), (2013, 2, 11, 0, 0, 0)) Week) [ "last 2 weeks" , "last two weeks" , "past 2 weeks" ] , examples (datetimeInterval ((2013, 2, 18, 0, 0, 0), (2013, 3, 11, 0, 0, 0)) Week) [ "next 3 weeks" , "next three weeks" ] , examples (datetimeInterval ((2012, 12, 1, 0, 0, 0), (2013, 2, 1, 0, 0, 0)) Month) [ "last 2 months" , "last two months" ] , examples (datetimeInterval ((2013, 3, 1, 0, 0, 0), (2013, 6, 1, 0, 0, 0)) Month) [ "next 3 months" , "next three months" ] , examples (datetimeInterval ((2011, 1, 1, 0, 0, 0), (2013, 1, 1, 0, 0, 0)) Year) [ "last 2 years" , "last two years" ] , examples (datetimeInterval ((2014, 1, 1, 0, 0, 0), (2017, 1, 1, 0, 0, 0)) Year) [ "next 3 years" , "next three years" ] , examples (datetimeInterval ((2013, 7, 13, 0, 0, 0), (2013, 7, 16, 0, 0, 0)) Day) [ "July 13-15" , "July 13 to 15" , "July 13 thru 15" , "July 13 through 15" , "July 13 - July 15" ] , examples (datetimeInterval ((2013, 8, 8, 0, 0, 0), (2013, 8, 13, 0, 0, 0)) Day) ["Aug 8 - Aug 12"] , examples (datetimeInterval ((2013, 2, 12, 9, 30, 0), (2013, 2, 12, 11, 1, 0)) Minute) ["9:30 - 11:00"] , examples (datetimeInterval ((2013, 2, 14, 9, 30, 0), (2013, 2, 14, 11, 1, 0)) Minute) [ "from 9:30 - 11:00 on Thursday" , "between 9:30 and 11:00 on thursday" , "between 9:30 and 11:00 on thursday" , "between 9:30 and 11:00 on thursday" , "9:30 - 11:00 on Thursday" , "later than 9:30 but before 11:00 on Thursday" , "Thursday from 9:30 to 11:00" , "from 9:30 untill 11:00 on thursday" , "Thursday from 9:30 untill 11:00" , "9:30 till 11:00 on Thursday" ] , examples (datetimeInterval ((2013, 2, 13, 1, 0, 0), (2013, 2, 13, 2, 31, 0)) Minute) [ "tomorrow in between 1-2:30 ish" ] , examples (datetimeInterval ((2013, 2, 12, 15, 0, 0), (2013, 2, 12, 17, 0, 0)) Hour) [ "3-4pm" , "from 3 to 4 in the PM" , "around 3-4pm" ] , examples (datetimeInterval ((2013, 2, 12, 15, 30, 0), (2013, 2, 12, 19, 0, 0)) Minute) [ "3:30 to 6 PM" , "3:30-6 p.m." ] , examples (datetimeInterval ((2013, 2, 12, 8, 0, 0), (2013, 2, 12, 14, 0, 0)) Hour) [ "8am - 1pm" ] , examples (datetimeInterval ((2013, 2, 14, 9, 0, 0), (2013, 2, 14, 12, 0, 0)) Hour) [ "Thursday from 9a to 11a" , "this Thu 9-11am" ] , examples (datetimeInterval ((2013, 2, 12, 11, 30, 0), (2013, 2, 12, 13, 31, 0)) Minute) ["11:30-1:30"] , examples (datetime (2013, 9, 21, 13, 30, 0) Minute) ["1:30 PM on Sat, Sep 21"] , examples (datetimeInterval ((2013, 2, 12, 4, 30, 0), (2013, 2, 26, 0, 0, 0)) Second) ["Within 2 weeks"] , examples (datetimeInterval ((2013, 2, 12, 4, 30, 0), (2013, 2, 12, 14, 0, 0)) Second) ["by 2:00pm"] , examples (datetimeInterval ((2013, 2, 12, 4, 30, 0), (2013, 2, 13, 0, 0, 0)) Second) ["by EOD"] , examples (datetimeInterval ((2013, 2, 12, 4, 30, 0), (2013, 3, 1, 0, 0, 0)) Second) ["by EOM"] , examples (datetimeInterval ((2013, 2, 12, 4, 30, 0), (2013, 4, 1, 0, 0, 0)) Second) ["by the end of next month"] , examples (datetime (2013, 2, 12, 13, 0, 0) Minute) [ "4pm CET" ] , examples (datetime (2013, 2, 14, 6, 0, 0) Minute) [ "Thursday 8:00 GMT" , "Thu at 8 GMT" ] , examples (datetime (2013, 2, 12, 14, 0, 0) Hour) [ "today at 2pm" , "at 2pm" ] , examples (datetime (2013, 4, 25, 16, 0, 0) Minute) ["4/25 at 4:00pm"] , examples (datetime (2013, 2, 13, 15, 0, 0) Hour) [ "3pm tomorrow" ] , examples (datetimeOpenInterval Before (2013, 2, 12, 14, 0, 0) Minute) [ "until 2:00pm" , "through 2:00pm" ] , examples (datetimeOpenInterval After (2013, 2, 12, 14, 0, 0) Hour) ["after 2 pm"] , examples (datetimeOpenInterval After (2013, 2, 17, 4, 0, 0) Hour) ["after 5 days"] , examples (datetimeOpenInterval Before (2013, 2, 12, 11, 0, 0) Hour) ["before 11 am"] , examples (datetimeInterval ((2013, 2, 12, 12, 0, 0), (2013, 2, 12, 19, 0, 0)) Hour) ["in the afternoon"] , examples (datetimeInterval ((2013, 2, 12, 8, 0, 0), (2013, 2, 12, 19, 0, 0)) Hour) [ "8am until 6" ] , examples (datetime (2013, 2, 12, 13, 30, 0) Minute) [ "at 1:30pm" , "1:30pm" ] , examples (datetime (2013, 2, 12, 4, 45, 0) Second) [ "in 15 minutes" , "in 15'" , "in 15" ] , examples (datetimeInterval ((2013, 2, 12, 13, 0, 0), (2013, 2, 12, 17, 0, 0)) Hour) ["after lunch"] , examples (datetimeInterval ((2013, 2, 12, 15, 0, 0), (2013, 2, 12, 21, 0, 0)) Hour) [ "after school" ] , examples (datetime (2013, 2, 12, 10, 30, 0) Minute) [ "10:30" , "approximately 1030" ] , examples (datetimeInterval ((2013, 2, 12, 4, 0, 0), (2013, 2, 12, 12, 0, 0)) Hour) ["this morning"] , examples (datetime (2013, 2, 18, 0, 0, 0) Day) ["next monday"] , examples (datetime (2013, 2, 12, 12, 0, 0) Hour) [ "at 12pm" , "at noon" ] , examples (datetime (2013, 2, 13, 0, 0, 0) Hour) [ "at 12am" , "at midnight" ] , examples (datetime (2013, 3, 1, 0, 0, 0) Month) [ "March" , "in March" ] , examples (datetime (2013, 2, 13, 17, 0, 0) Hour) [ "tomorrow afternoon at 5" , "at 5 tomorrow afternoon" , "at 5pm tomorrow" , "tomorrow at 5pm" ] , examples (datetimeInterval ((2013, 2, 13, 13, 0, 0), (2013, 2, 13, 15, 0, 0)) Hour) [ "1pm-2pm tomorrow" ] , examples (datetime (2013, 3, 1, 0, 0, 0) Day) [ "on the first" , "the 1st" ] , examples (datetime (2013, 2, 12, 10, 30, 0) Minute) [ "at 1030" , "around 1030" ] , examples (datetime (2013, 2, 12, 19, 30, 0) Minute) [ "at 730 in the evening" ] , examples (datetime (2013, 2, 13, 1, 50, 0) Minute) [ "tomorrow at 150ish" ] , examples (datetime (2013, 2, 12, 23, 0, 0) Hour) [ "tonight at 11" ] , examples (datetime (2013, 2, 12, 4, 23, 0) Minute) -- yes, the result is in the past, we may need to revisit [ "at 4:23" , "4:23am" ] ]