GuardVocabulary

constructor(stopwords: Set<String>, sentenceOpeners: Set<String>, nonEntityCapitals: Set<String>, negationMarkers: Set<String>, antonyms: Set<Pair<String, String>>, temporalMarkers: Set<String>, scopeMarkers: Set<String>, directionalCues: Set<String>, units: Map<String, MeasurementUnit>, qualifierOpeners: Set<String> = emptySet())

Parameters

stopwords

function words removed before comparison; read by most guards.

sentenceOpeners

words that may open a sentence without naming anything (the entity guard).

nonEntityCapitals

words capitalized by grammar, not reference (the entity guard).

negationMarkers

words that negate (the negation guard).

antonyms

symmetric pairs that flip an answer (the antonym guard).

temporalMarkers

absolute time references (the temporal guard).

scopeMarkers

words describing the shape of the answer — format, length, depth (the scope guard).

directionalCues

cues that make argument order significant — comparisons, conversions (the direction guard).

units

unit and currency tokens mapped to a canonical MeasurementUnit (the unit & substitution guards).

qualifierOpeners

words that begin a clause narrowing a question rather than framing it (the sub-span guard). Empty by default, and empty is a working answer: with no openers the guard never fires, which is the safe direction for a language whose markers nobody has measured. Only the English pack fills it, because it is the only one with a corpus behind it. Fill it from a language's real traffic, not from a dictionary.