IP Library Granted Patent US 7,028,039
Granted Patent B2
US 7,028,039 · App. 09/766,336 · Granted Apr 11, 2006

System and method for storing connectivity information in a web database

Assignee: Hewlett-Packard Development Company, L.P.
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,028,039
App. No.
09/766,336
Granted
Apr 11, 2006
Kind
B2
Abstract

A web crawler system includes a central processing unit for performing computations in accordance with stored procedures and a network interface for accessing remotely located computers via a network. A web crawler module downloads pages from remotely located servers via the network interface. A first link processing module obtains page link information from the downloaded page; the page link information includes for each downloaded page a row of page identifiers of other pages. A second link processing module encodes the rows of page identifies in a space efficient manner. It arranges the rows of page identifiers in a particular order. For each respective row it identifies a prior row, if any, that best matches the respective row in accordance with predefined row match criteria, determines a set of deletes representing page identifiers in the identified prior row not in the respective row, and determines a set of adds representing page identifiers in the respective row not in the identifier prior row. The second link processing module delta encodes the set of deletes and delta encodes the set of adds for each respective row, and then Huffman codes the delta encoded set of deletes and delta encoded set of adds for each respective row.

Claims (44)

1. A method of storing page link information comprising:

obtaining page link information for a set of pages, the page link information including for each page in the set a row of page identifiers of other pages;

arranging the rows of page identifiers in a particular order;

for each respective row:

identifying a reference row, if any, that best matches the respective row in accordance with predefined row match criteria; and

encoding the respective row as an identifier for the identified reference row, if any, a set of deletes representing page identifiers in the identified reference row not in the respective row, and a set of adds representing page identifiers in the respective row not in the identified reference row, wherein the encoding for each respective row includes delta encoding the set of deletes and delta encoding the set of adds for each respective row; and Huffman coding the delta encoded set of deletes and delta encoded set of adds for each respective row.

2. The method of claim 1 , including sorting the page identifiers in each row in numerical order prior to performing the encoding.

3. The method of claim 2 , wherein the encoding includes generating a row distance value that identifies the identified reference row and Huffman coding the row distance value.

4. The method of claim 1 , including when no reference row exists for a respective row, encoding the respective row by encoding a null reference row identifier and a set of adds representing the page identifiers in the respective row, delta encoding the set of adds for the respective row, and Huffman coding the delta encoded set of adds for the respective row.

5. A computer program product for use in conjunction with a computer system, the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising:

a first module for obtaining page link information for a set of pages, the page link information including for each page in the set a row of page identifiers of other pages; and

a second module for storing the page link information, including instructions for:

arranging the rows of page identifiers in a particular order;

for each respective row:

identifying a reference row, if any, that best matches the respective row in accordance with predefined row match criteria; and

encoding the respective row as an identifier for the identified reference row, if any, a set of deletes representing page identifiers in the identified reference row not in the respective row, and a set of adds representing page identifiers in the respective row not in the identifier reference row, wherein the encoding instructions of the second module include instructions for delta encoding the set of deletes and delta encoding the set of adds for each respective row, and for Huffman coding the delta encoded set of deletes and delta encoded set of adds for each respective row.

6. The computer program product of claim 5 , wherein the second module includes instructions for sorting the page identifiers in each row in numerical order prior to performing the encoding.

7. The computer program product of claim 6 , wherein the encoding instructions of the second module include instructions for generating a row distance value that identifies the identified reference row and Huffman coding the row distance value.

8. The computer program product of claim 5 , wherein the second module includes instructions, used when no reference row exists for a respective row, for encoding the respective row by encoding a null reference row identifier and a set of adds representing the page identifiers in the respective row, delta encoding the set of adds for the respective row, and Huffman coding the delta encoded set of adds for the respective row.

9. A web crawler system, comprising:

a central processing unit for performing computations in accordance with stored procedures;

a network interface for accessing remotely located computers via a network;

memory, coupled to the central processing unit, for storing procedures and data, including:

a web crawler module, executable by the central processing unit, for downloading a set of pages from remotely located servers via the network interface;

a first module for obtaining page link information from the set of pages, the page link information including for each page in the set a row of page identifiers of other pages; and

a second module for storing the page link information, including instructions for:

arranging the rows of page identifiers in a particular order;

for each respective row:

identifying a reference row, if any, that best matches the respective row in accordance with predefined row match criteria, and

encoding the respective row as an identifier for the identified reference row, if any, a set of deletes representing page identifiers in the identified reference row not in the respective row, and a set of adds representing page identifiers in the respective row not in the identified reference row, wherein the encoding instructions of the second module includes instructions for delta encoding the set of deletes and delta encoding the set of adds for each respective row, and for Huffman coding the delta encoded set of deletes and delta encoded set of adds for each respective row.

10. The system of claim 9 , wherein the second module includes instructions for sorting the page identifiers in each row in numerical order prior to performing the encoding.

11. The system of claim 10 , wherein the encoding instructions of the second module include instructions for generating a row distance value that identifies the identified reference row and Huffman coding the row distance value.

12. The system of claim 9 , wherein the second module includes instructions, used when no reference row exists for a respective row, for encoding the respective row by encoding a null reference row identifier and a set of adds representing the page identifiers in the respective row, delta encoding the set of adds for the respective row, and Huffman coding the delta encoded set of adds for the respective row.

13. A computer implemented method of storing web links of web pages, comprising:

assigning identification numbers to universal resource locators (URLs) of web pages and to URLs of web links associated with the web pages;

arranging the identification numbers of the web pages in numerical order; and

encoding web links associated with a particular web page as:

(1) a pointer to another identification number having a list of identification numbers that identify web pages,

(2) a list of delete numbers that represent identification numbers included in the list of identification numbers of the another identification number but not associated as web links with the particular web page, and

(3) a list of add numbers that represent identification numbers associated as web links with the particular web page but not included in the list of identification numbers of the another identification number.

14. The method of claim 13 wherein the identification numbers arc consecutive integers.

15. The method of claim 13 wherein the identification numbers are positive integers densely allocated starting about zero.

16. The method of claim 13 further comprising removing, for a web page, duplicate identification numbers tat correspond to multiple web links that point to identical web pages.

17. The method of claim 13 wherein an index in a database for a respective web page is the identification number of the respective web page.

Assignments (4)
CHANGE OF NAME Recorded Dec 2, 2003
From: COMPAQ INFORMATION TECHNOLOGIES GROUP L.P.
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 014177/0428 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2001
From: COMPAQ COMPUTER CORPORATION
To: COMPAQ INFORMATION TECHNOLOGIES GROUP, L.P.
Reel/Frame 012402/0913 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2001
From: WICKREMESINGHE, RAJIV G.
To: COMPAQ COMPUTER CORPORATION
Reel/Frame 011496/0335 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2001
From: BURROWS, MICHAEL (NMI); RANDALL, KEITH H.; STATA, RAYMOND P.
To: COMPAQ COMPUTER CORPORATION
Reel/Frame 011496/0355 →
Continuity (1)
Related Publication 20020138509A1 · Sep 26, 2002