Any node (target or not) brought into the ruleset by a dom() or element() call for consideration


A wrapper around a DOM node, holding scores, notes, and types pertaining to it. See Fnodes.


An arbitrary, opaque-to-Fathom piece of data attached to a given type on a fnode. Notes can be consulted by scoring callbacks and are a good place to park expensive-to-recompute information. They are the main way of passing data between rules.


The unordered collection of rules that forms a Fathom program. See Writing Rules for more on the relationships between top-level constructs.


The fuzzy-edged part of fnode state. A floating-point number, typically between 0 and 1, attached to a certain type on a fnode. They represent the confidence with which a node belongs to a type.


A single rule’s contribution to a node’s score for some type. In Fathom’s current incarnation as a series of (single-layer) perceptrons, each rule’s subscore is multiplied by a coefficient, which is derived from training. The weighted subscores are then added together and fed through a sigmoid function to get the final score for a node for a type.


A “right answer” DOM node, one that should be recognized as belonging to some type


A string-typed category assigned to a fnode. Types are the boolean, hard-edged, enumerated parts of fnode state. They also largely determine inter-rule dependencies and thus which rules get run in response to a query.


To turn a collection of sample HTML pages into vectors of numbers which the trainer then imbibes.