1. A data processing method comprising:
using a computer, receiving a first electronic document, wherein the first electronic document is structured according to a document structure, contains a plurality of content elements separate from the document structure, and contains a plurality of field identifiers and field values;
using the computer, generating, based only upon the document structure and not using the content elements, a fingerprint value for the first electronic document by applying a hash function over a document object model (DOM) of the first electronic document;
using the computer, determining whether the fingerprint value is in a stored fingerprint map of known fingerprint values;
using the computer, generating an intermediate template based upon the first electronic document, and receiving input specifying one or more modifications to the intermediate template, wherein the modifications specify changes to the field labels, and storing the final template based upon the modifications;
using the computer, when the fingerprint value is in the fingerprint map, retrieving the final template and a document parser from a plurality of parsers, each of which is associated with a different fingerprint value, parsing the first electronic document using the document parser to identify the field identifiers and field values, and storing the field values in a record in a database;
using the computer, when the fingerprint value is not in the fingerprint map, creating and storing a new final template associated with the fingerprint value for the first electronic document, wherein the new final template comprises field labels corresponding to the field identifiers of the first electronic document, and creating and storing a new document parser associated with the new final template that is configured to locate other field identifiers in other electronic documents that match the field identifiers of the first electronic document, and to extract other field values associated with the other field identifiers.
2. The method of claim 1 wherein the final template comprises a plurality of regular expressions.
3. The method of claim 1 wherein the first electronic document is an electronic receipt.
4. The method of claim 1 wherein the first electronic document is in Hypertext Markup Language (HTML) format, is structured according to the document object model (DOM) and contains the plurality of content elements separate from the DOM.
5. The method of claim 1 wherein each of the modifications comprises a selection of a range of text and a key-value pair specifying the field label associated with the range of text and a label value indicated at the field label.
6. The method of claim 1 wherein each of the modifications comprises a selection of a link and a key-value pair specifying the field label associated with the link and a link value indicated at the field label.
7. The method of claim 1 wherein the first electronic document comprises HTML source code and further comprising generating the final template by substituting, in a copy of the first electronic document, the field labels for one or more tag values in the HTML source code and storing, in the database, one or more records specifying the field labels and one or more attributes of the field labels.
8. The method of claim 1 wherein the document parser comprises data extraction logic that is configured to identify the field identifiers and field values, and normalization logic that is configured to normalize the field values after identification and extraction.
9. A data processing system comprising:
one or more processors;
a document buffer coupled to the one or more processors and that is configured to receive a plurality of electronic documents from a distributed plurality of user computers;
one or more computer-readable non-transitory storage media storing fingerprint generating instructions that are programmed to perform, using the one or more processors:
receiving a first electronic document from the document buffer, wherein the first electronic document is structured according to a document structure, contains a plurality of content elements separate from the document structure, and contains a plurality of field identifiers and field values;
generating, based only upon the document structure and not using the content elements, a fingerprint value for the first electronic document by applying a hash function over a document object model (DOM) of the first electronic document;
determining whether the fingerprint value is in a stored fingerprint map of known fingerprint values;
generating an intermediate template based upon the first electronic document, and receiving input specifying one or more modifications to the intermediate template, wherein the modifications specify changes to the field labels, and storing the final template based upon the modifications;
when the fingerprint value is in the fingerprint map, retrieving the final template and a document parser that are associated with the fingerprint value, parsing the first electronic document using the document parser to identify the field identifiers and field values, and storing the field values in a record in a database;
using a parser generator, when the fingerprint value is not in the fingerprint map, creating and storing a new final template for the first electronic document, wherein the new final template comprises field labels corresponding to the field identifiers, and creating and storing a new document parser that is configured to locate other field identifiers in other electronic documents that match the field identifiers of the first electronic document, and to extract other field values associated with the other field identifiers.
10. The data processing system of claim 9, wherein the final template comprises a plurality of regular expressions.
11. The data processing system of claim 9, wherein the first electronic document is an electronic receipt.
12. The data processing system of claim 9, wherein the first electronic document is in Hypertext Markup Language (HTML) format, is structured according to the document object model (DOM) and contains the plurality of content elements separate from the DOM.
13. The data processing system of claim 9, wherein each of the modifications comprises a selection of a range of text and a key-value pair specifying the field label associated with the range of text and a label value indicated at the field label.
14. The data processing system of claim 9, wherein each of the modifications comprises a selection of a link and a key-value pair specifying the field label associated with the link and a link value indicated at the field label.
15. The data processing system of claim 9, wherein the first electronic document comprises HTML source code and further comprising generating the final template by substituting, in a copy of the first electronic document, the field labels for one or more tag values in the HTML source code and storing, in the database, one or more records specifying the field labels and one or more attributes of the field labels.
16. The data processing system of claim 9, wherein the document parser comprises data extraction instructions that are configured to identify the field identifiers and field values, and normalization instructions that are configured to normalize the field values after identification and extraction.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. An epoxy-capped polythioether comprising:
a reaction product of n moles (i) a dithiol and divinyl ether reaction product; and n+1 moles (ii) a monoepoxy olefin, wherein the dithiol and divinyl ether reaction product was formed by reacting n+1 moles of a dithiol having a structure HS\u2014R1\u2014SH and n moles of a divinyl ether having a structure CH2\u2550CH\u2014O\u2014\u2014R5\u2014O\u2014m\u2014CH\u2550CH2,
wherein R1 and R5 are each independently selected from the group consisting of C2-6 n-alkylene, C3-6 branched alkylene, C6-8 cycloalkylene, C6-10 alkylcycloalkylene, and \u2014\u2014(CHR3)p\u2014X\u2014q\u2014(CHR3)r\u2014, wherein
each R3 is independently selected from H, and \u2014CH3,
each X is independently selected from O, S, \u2014NH\u2014, and \u2014NR4\u2014,
R4 is selected from H, and \u2014CH3,
p is an integer from 2 to 6,
q is an integer from 1 to 5,
r is an integer from 2 to 10, and
m is an integer from 1 to 10.
2. The epoxy-capped polythioether of claim 1, wherein the dithiol is selected from the group consisting of dimercaptodioxaoctane, and dimercaptodiethylsulfide.
3. The epoxy-capped polythioether of claim 1, wherein the divinyl ether is selected from the group consisting of an alkylene having from 3 to 5 carbon atoms, and an oxyalkylene having from 3 to 5 carbon atoms.
4. The epoxy-capped polythioether of claim 1, wherein the divinyl ether comprises at least one alkylene oxy group.
5. The epoxy-capped polythioether of claim 1, wherein the monoepoxy olefin has a structure
wherein R2 is an olefinic group.
6. The epoxy-capped polythioether of claim 1, which is free of hydrolizable chlorine.
7. The epoxy-capped polythioether of claim 1, having an epoxy-equivalent weight range less than 300.
8. A method for making the epoxy-capped polythioether of claim 1, comprising:
reacting n moles (i) a dithiol and divinyl ether reaction product; with n+1 (ii) a monoepoxy olefin, wherein the dithiol and divinyl ether reaction product was formed by reacting n+1 moles of a dithiol having a structure HS\u2014R1\u2014SH and n moles of a divinyl ether having a structure CH2\u2550CH\u2014O\u2014\u2014R5\u2014O\u2014m\u2014CH\u2550CH2,
wherein R1 and R1 are each independently selected from the group consisting of C2-6 n-alkylene, C3-6 branched alkylene, C6-8 cycloalkylene, C6-10 alkylcycloalkylene, and \u2014\u2014(CHR3)p\u2014X\u2014q\u2014(CHR3)r\u2014, wherein
each R3 is independently selected from H, and \u2014CH3,
each X is independently selected from O, S, \u2014NH\u2014, and \u2014NR4\u2014,
R1 is selected from H, and \u2014CH3,
p is an integer from 2 to 6,
q is an integer from 1 to 5,
r is an integer from 2 to 10, and
m is an integer from 1 to 10.
9. The method of claim 8, wherein the dithiol and divinyl ether reaction product is formed in the presence of a catalyst selected from the group consisting of a free radical catalyst, and ultraviolet light.
10. The method of claim 8, wherein the catalyst does not comprise an acidic or basic compound and does not produce acidic or basic compounds upon decomposition.
11. The method of claim 8, wherein the catalyst comprises a free radical catalyst.
12. The method of claim 11, wherein the free radical catalyst is selected from the group consisting of azo catalysts, and alkyl peroxides.
13. The method of claim 12, wherein the azo catalyst is an azobis(isobutyronitrile) catalyst.
14. The epoxy-capped polymer of claim 1, wherein the divinyl ether is diethylene glycol divinyl ether.
15. The epoxy-capped polymer of claim 5, wherein the monoepoxy olefin is selected from the group consisting of allyl glycidyl ether, 1,2-epoxy-5-hexene, 1,2-epoxy-7-octene, 1,2-epoxy-9-decene, 4-vinyl-1-cyclohexene 1,2-epoxide, butadiene monoepoxide, isoprene monoepoxide, and limonene monoepoxide.
16. The epoxy-capped polymer of claim 2, wherein the dithiol comprises dimercaptodioxaoctane.
17. The epoxy-capped polymer of claim 15, wherein the monoepoxy olefin comprises allyl glycidyl ether.