iThoughts has an advanced, rules-based, topic matching engine built right in. Amongst other things, this is used by the Filter function to show and hide topics matching various criteria. This page describes how that engine can be configured.

Terminology:

  • A 'criteria' is a simple test (e.g. match if Priority equals 1)
  • A 'rule' is a collection of 'criteria' (ANY or ALL of which must match)
  • A 'topic attribute' is something like its text or icon or progress setting (i.e. something that the criteria can match on)

 

There are 5 types of attribute that the criteria can match on:

  • Numbers
  • Strings
  • Dates
  • Time Periods
  • Icons

 

Each topic attribute will fit into one of the 5 types above - as follows:

  • Topic Text = String
  • Topic Note = String
  • Topic Start = Date
  • Topic Due = Date
  • Topic Progress = Number (0-100)
  • Topic Priority = Number (1-5)
  • Topic Icon = Icon
  • Topic Effort = Time Period
  • Topic Resources = String

 

The following screenshot shows many of the different criteria that can be configured in a rule.

NB: When configuring the rule, you must decide if a given topic must match ALL or ANY of the criteria.

NB2: A rule has a name - so it can be referenced from elsewhere within the app.

 

Number criteria

When matching on a number, the following evaluations are possible:

  • Equal To
  • Not Equal To
  • Less than
  • Less than or equal to
  • Greater than
  • Greater than or equal to
  • Between
  • Not between

NB: Between includes the constraints (e.g. 3 is between 3 and 6)

 

String criteria

When matching on a string, the following evaluations are possible:

  • Same as
  • Not same as
  • Contains
  • Doesn't contain
  • Starts with
  • Ends with

NB: All string matching is case-insensitive (e.g. meaning 'todo' matches 'TODO')

 

Date criteria

When matching on a date, the following evaluations are possible:

  • Equal to
  • Not equal to
  • Later than
  • Later than or equal to
  • Earlier than
  • Earlier than of equal to
  • Between
  • Not between

NB: Between includes the constraints (e.g. 21st January is between 21st and 22nd January)

 

In addition to the absolute date matching above, it will also match on 'relative dates'. You can, for example, match on a date 'in the next week'. The following evaluations are possible.

  • In the next...(hours, days, weeks, months, years)
  • Not in the next...(hours, days, weeks, months, years)
  • In the previous...(hours, days, weeks, months, years)
  • Not in the previous...(hours, days, weeks, months, years)

The system is 'intelligent'. It knows about calendar months and when the start of week is.

  • If you want to match on THIS week then you should configure 'in the next 1 week'
  • If you want to match in 7 DAYS then you should configure 'in the next 7 days'

 

Time period criteria

When matching a time period, the following evaluations are possible:

  • Greater than or equal to
  • Less than or equal to

The time period itself has 2 components - a magnitude (size) and a unit. Units can be hours, days, weeks, months or years. Question is - how long is a day, or week or month?

  • 1 hour = 1 hour
  • 1 day = 8 hours
  • 1 week = 5 days (5 x 8 = 40 hours)
  • 1 month = 4 weeks (5 x 8 x 4 = 160 hours)
  • 1 year = 12 months (5 x 8 x 4 x 12 = 1920 hours)

This is not configurable - so, for example, if want to consider a day as 24 hours, you must specify the period in terms of hours (for both match criteria and topic attribute.) Remember that 12 hours will come out as 'greater than' 1 day in the evaluation.

 

Icon criteria

When matching an icon, the only option is 'contains'.