Constructing narratives from data