facebook / duckling

Language, engine, and tooling for expressing, testing, and evaluating composable language rules on input strings.
Other
4.05k stars 720 forks source link

DE: Duckling does not parse time intervals correctly #645

Closed TheDome closed 3 years ago

TheDome commented 3 years ago

Hi there,

currently, I have problems when it comes to the ruleBetweenTimeofdayAndTimeofdayInterval rule.

Current behavior

When I post a query against the duckling server like zwischen 17 und 18 Uhr (between 5PM and 6PM), the server returns {:start "Friday, 20 August 2021 at 17:00:00 -0700 (-07:00)", :grain :hour, :end "Friday, 20 August 2021 at 19:00:00 -0700 (-07:00)"} which is obviously incorrect given that these two dates are in the same time zone.

Expected behavior

The rule should return a one hour time window from 5PM to 6PM. {:start "Friday, 20 August 2021 at 17:00:00 -0700 (-07:00)", :grain :hour, :end "Friday, 20 August 2021 at 18:00:00 -0700 (-07:00)"}

Additional information

The current behavior has been found in the duckling build from commit 7889f396f324028075d39e5003f1083ad05d68f3 but has also been tested against https://duckling.wit.ai.

chessai commented 3 years ago

Duckling returns intervals with an upper-exclusive bound, based on the grain. So if the "end" is 19:00 and the grain is "hour", then the upper-inclusive bound is 18:00.