27. The system of claim 24 , where the score further reflects a number of attributes on the initial attribute whitelist that are in a group with the unique attribute.
24. A system comprising: one or more computers configured to perform operations comprising: obtaining an initial attribute whitelist, the initial attribute whitelist including one or more initial attributes; processing a first collection of structured documents to identify structures in the structured documents; identifying a plurality of candidate attributes in the first collection of structured documents based on the identified structures in the structured documents in the first collection; grouping the candidate attributes into a plurality of groups according to both a particular structured document in the first collection from which each candidate attribute was extracted and a structure in that structured document in the first collection; calculating a score for each unique attribute in the candidate attributes, where the score reflects a number of groups containing the unique attribute and an attribute on the initial attribute whitelist; wherein the score for each unique attribute is calculated according to: f ⁡ ( a ) = ∑ g ∈ G ⁢ ⁢ n ⁡ ( a , g ) × n ′ ⁡ ( A , a , g ) , where f(a) is the score for an attribute a, G is a set of all groups of candidate attributes, A is the initial attribute whitelist, n(a, g) is a number of times the attribute a appears in a group g, and n′(A, a, g) is the number of times any attribute in A, except a, appears in group g; generating an expanded attribute whitelist, the expanded attribute whitelist including the initial attributes and each unique attribute having a respective score that satisfies a threshold; and using the expanded attribute whitelist to identify valid attribute-value pairs.