Skip to content

Class: HTM::TimeframeExtractor

Inherits: Object

Timeframe Extractor - Extracts temporal expressions from queries

This service parses natural language time expressions from recall queries and returns both the timeframe and the cleaned query text.

Supports: * Standard time expressions via Chronic gem ("yesterday", "last week", etc.) * "few" keyword mapped to FEW constant (e.g., "few days ago" → "3 days ago") * "recent/recently" without units defaults to FEW days

@example

result = TimeframeExtractor.extract("what did we discuss last week about PostgreSQL")
result[:query]     # => "what did we discuss about PostgreSQL"
result[:timeframe] # => #<Range: 2025-11-21..2025-11-28>
@example
result = TimeframeExtractor.extract("show me notes from a few days ago")
result[:timeframe] # => Time object for 3 days ago
@example
result = TimeframeExtractor.extract("what did we recently discuss")
result[:timeframe] # => Range from 3 days ago to now

Class Methods

extract(query )

Extract timeframe from a query string @param [String] The query to parse

@return [Result] Struct with :query (cleaned), :timeframe, :original_expression

temporal?(query )

Check if query contains a temporal expression @param [String] The query to check

@return [Boolean]