Quality: Contextually Rich


Guiding Principle:
People work with data in the context of solving a problem or performing a particular task. Values frequently carry more than one type of information: a date is not only a value on a timeline but may be expressed in a particular format; the number 5 may represent 5 millimeters or 5 dollars. An intuitive language should be able to work with rich data that carries multiple types of information.

In SenseTalk:
Use of the local variable 'it' provides immediate local context that leads to friendlier and more natural language. Date and time values in SenseTalk include a presentation format as well as a numeric timeline value. Numeric values may have a unit type which is carried through in calculations.

Examples:
get the last word of customerName
if it isn't in surnamesList then insert it into surnamesList

put "March 5" into dueDate
add thirty days to dueDate
put dueDate —> "April 4"
set dueDate's format to "[mon] [day], a [weekday name]"
put dueDate —> "Apr 4, a Saturday"

put 5 into howLong -- a simple number
repeat howLong -- repeats 5 times
(* repeated statements here *)
end repeat

put 5 seconds into howLong -- a duration
repeat howLong -- repeats for 5 seconds
(* repeated statements here *)
end repeat

set width to 2 feet -- a dimensioned value with unit of feet
add 3 inches to width
put width —> 2.25 feet
put width as inches —> 27 inches
put width as cm —> 68.58 centimeters

put 7 mph as m/s —> 3.12928 meters per second
put 25 mph * 12 minutes into distanceTraveled
put distanceTraveled —> 5 miles
put distanceTraveled as km —> 8.04672 kilometers