1. A method for a profile engine to perform an action based on an input datapoint, the method comprising: providing, to the profile engine, user-preference scores for a plurality of previous datapoints, the plurality of previous datapoints comprising an item datapoint and an attribute datapoint, the input datapoint distinct from the plurality of previous datapoints; assigning, by the profile engine, a user-preference score to the input datapoint, wherein if the input datapoint is an item datapoint, then the assigning is based, at least in part, on a user-preference score for a previous attribute datapoint, else if the input datapoint is an attribute datapoint, then the assigning is based, least in part, on a user-preference score for a previous item datapoint; based, at least in part, on a comparison of the input datapoint with at least a subset of the plurality of previous datapoints, assigning, by the profile engine, a confidence value to the input datapoint; and based, at least in part, on the user-preference score and on the confidence value assigned to the input datapoint, performing, by the profile engine, an action.