IP Library Granted Patent US 7,555,480
Granted Patent B2
US 7,555,480 · App. 11/456,753 · Granted Jun 30, 2009

Comparatively crawling web page data records relative to a template

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,555,480
App. No.
11/456,753
Granted
Jun 30, 2009
Kind
B2
Abstract

The invention provides a method of interactively crawling data records on a web page. Users may select various data records of interest on a web page to generate templates to search for similar data items on the same web page or on different web pages. A tree matching algorithm may be used to compare and extract data matching the generated template.

Claims (241)

1. A method of searching data records on a web page, the method comprising:

storing, in a memory, instructions for performing the method of searching data records on a web page;

executing the instructions on a processor;

according to the instructions being executed:

receiving data records selected by a user from a displayed web page;

defining a web block based on the data records that were selected by the user, wherein the web block represents search criteria to be used to identify a similar web block of data records on another web page;

generating a structure template based on the defined web block, wherein the structure template represents an underlying schema of the web block;

comparing the generated structure template to a structure of other data records displayed on another web page; and

determining if the structure of the other data records matches the generated template, wherein the determining if other data records match the generated template comprises calculating a minimum difference using an equation,

Diff

(

T

,

T

)

=

n

(

T

)

+

n

(

T

)

-

2

-

0

i

<

m

n

(

S

pi

)

+

n

(

S

pi

)

-

Diff

(

S

pi

,

S

pi

)

wherein:

the generated template, T is a Document Object Model (DOM) tree template based on the defined web block;

T′ is a DOM tree of the other data records;

n(T) is a number of nodes in T;

n(T′) is a number of nodes in T′;

m is a number of pairs of corresponding sub-trees in T and T′;

Spi is a sub-tree of T;

Spi′ is a sub-tree of T′;

n(Spi) is a number of nodes in Spi; and

n(Spi′) is a number of nodes in Spi′

Diff (T, T″) is recursively defined to be the edit distance between T and T′;

Diff(S pi , S′ pi ′) is recursively defined to be the edit distance between S pi and S′ pi ′.

2. The method of claim 1 , wherein the defining a web block comprises incorporating the received data records into a Document Object Model (DOM) tree structure.

3. The method of claim 1 , wherein the web page comprises hypertext mark-up language.

4. The method of claim 1 , wherein the first DOM tree is associated with the generated template and the second DOM tree is associated with the other data records.

5. A computer-readable storage medium encoded with computer-executable instructions that, when executed, direct a computing system to perform a method, the method comprising:

receiving data records selected from a displayed web page, the received data records including a user's selection of the data records;

defining a web block based on the received data records that were selected by the user, wherein the web block represents search criteria to be used to identify a similar web block of data records on another web page;

generating a structure template based on the defined web block, wherein the structure template represents an underlying schema of the web block; and

extracting a structure of other data records from the web page based on the generated template, wherein the extracting the other data records from the web page comprises calculating a minimum difference using the equation

Diff

(

T

,

T

)

=

n

(

T

)

+

n

(

T

)

-

2

-

0

i

<

m

n

(

S

pi

)

+

n

(

S

pi

)

-

Diff

(

S

pi

,

S

pi

)

,

wherein:

T is a Document Object Model (DOM) tree template based on the defined web block;

T′ is a DOM tree of the other data records;

n(T) is a number of nodes in T;

n(T′) is a number of nodes in T′;

m is a number of pairs of corresponding sub-trees in T and T′;

Spi is a sub-tree of T;

Spi′ is a sub-tree of T′;

n(Spi) is a number of nodes in Spi; and

n(Spi′) is a number of nodes in Spi′

Diff (T, T″) is recursively defined to be the edit distance between T and T′;

Diff(S pi , S′ pi ′) is recursively defined to be the edit distance between S pi and S′ pi ′.

6. The computer-readable storage medium of claim 5 , wherein the defining a web block comprises incorporating the received data records into a first Document Object Model (DOM) tree structure.

7. The computer-readable storage medium of claim 5 , wherein the method further comprises a learning process to learn features of an underlying schema of the defined web block.

8. A method of interactively crawling a web page, the method comprising:

storing, in a memory, instructions for performing the method of interactively crawling a web page;

executing the instructions on a processor;

according to the instructions being executed:

defining a web block based on a plurality of data records selected by a user from a displayed web page, wherein the web block represents search criteria to be used to identify a similar web block of data records on another web page;

generating a structure template based on the defined web block, wherein the structure template represents an underlying schema of the web block;

comparing the generated structure template to a structure of other information displayed on the web page; and

determining if the structure of the other data records match the generated template, wherein the determining if other data records match the generated template comprises calculating a minimum difference using an equation,

Diff

(

T

,

T

)

=

n

(

T

)

+

n

(

T

)

-

2

-

0

i

<

m

n

(

S

pi

)

+

n

(

S

pi

)

-

Diff

(

S

pi

,

S

pi

.

)

wherein:

the generated template, T is a Document Object Model (DOM) tree template based on the defined web block;

T′ is a DOM tree of the other data records;

n(T) is a number of nodes in T;

n(T′) is a number of nodes in T′;

m is a number of pairs of corresponding sub-trees in T and T′;

Spi is a sub-tree of T;

Spi′ is a sub-tree of T′;

n(Spi) is a number of nodes in Spi; and

n(Spi′) is a number of nodes in Spi′

Diff (T, T″) is recursively defined to be the edit distance between T and T′;

Diff(S pi , S′ pi ′) is recursively defined to be the edit distance between S pi and S pi ′.

9. The method of claim 8 , wherein the defining a web block comprises incorporating data included in the web block into a Document Object Model (DOM) tree structure.

10. The method of claim 8 , wherein the first DOM tree is associated with the generated template.

11. The method of claim 8 , wherein the second DOM tree is associated with the other data records.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034766/0509 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2006
From: ZHANG, BENYU; LIN, CHENXI; ZENG, HUA-JUN; WANG, JIAN; TANG, KE; CHEN, ZHENG
To: MIRCROSOFT CORPORATION
Reel/Frame 018157/0938 →