# US 10,503,806 B2 · Extracting a portion of a document, such as a web page

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,503,806 B2
- Document ID: US10503806B2
- Status: Granted
- Kind: B2
- Application number: 15/175,416
- Filed: 2016-06-07
- Published: 2016-10-06
- Granted: 2019-12-10
- Earliest claimed: 2011-06-10
- Assignees: salesforce.com, inc.
- Applicants: salesforce.com, inc.
- Inventors: Gary W. Flake
- Web page: https://patentgrep.com/patent/US10503806B2

## CPC

- G06F 16/986: {Document structures and storage, e.g. HTML extensions}
- G06F 16/2246: {Trees, e.g. B+trees}
- G06F 16/88: {Mark-up to mark-up conversion (conversion for visualization in web browsing G06F16/9577)}
- G06F 16/9577: {Optimising the visualization of content, e.g. distillation of HTML documents}
- G06F 40/103: Formatting, i.e. changing of presentation of documents (automatic justification G06F40/189; automatic line break hyphenation G06F40/191)
- G06F 40/143: Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A portion data structure representing a portion extracted from a formatted source document is described. A portion data structure contains a first subtree of nodes that is modeled after a second subtree of a complete hierarchical representation of the formatted source document. Explicit formatting attribute values are specified for nodes of the first subtree only where a value calculated for the formatting attribute in a node of the first subtree differs from a value calculated for the formatting attribute in the corresponding node in the second subtree at a time when the node of the first subtree descends from a reset node specifying standardized formatting attribute values. The contents of the portion data structure are usable to display the portion extracted from the formatted source document in a context other than the formatted source document.

## Claims

### Claim 1

A system comprising:
an extraction computer system configured to cause:
determining, using scrolling adjusted coordinates, a location of a pointer in relation to nodes in a first formatted document, each node comprising a respective one or more formatting attributes defining a graphical representation of the node;
identifying a first subtree of the nodes based on a first one of the nodes being nearer to the pointer than one or more others of the nodes;
generating a second subtree of the nodes based on each node of the first subtree, each node of the second subtree having an identical one or more formatting attributes to a corresponding node of the first subtree;
compressing the second subtree, the compressed second subtree capable of being stored on a storage device; extracting the compressed second subtree; and
displaying a presentation of the extracted second subtree in a second formatted document different from the first formatted document, the presentation of the extracted second subtree sharing characteristics of a presentation of the first subtree in the first formatted document.

### Claim 2 (depends on 1)

The system of claim 1, wherein the compressed second subtree is defined using a compressed version of a tag markup language.

### Claim 3 (depends on 1)

The system of claim 1, wherein the presentation of the extracted second subtree in the second formatted document is generated using a HyperText Markup Language (HTML) dictionary.

### Claim 4 (depends on 1)

The system of claim 1, wherein the compressed second subtree occupies less memory than the first subtree when stored.

### Claim 5 (depends on 1)

The system of claim 1, wherein the shared characteristics comprise one or more controls operable in identical fashion in the first formatted document and in the second formatted document.

### Claim 6 (depends on 1)

The system of claim 1, the extraction computer system further configurable to cause:
establishing a reset node in the first formatted document, the reset node defining a standardized set of formatting attributes inheritable by nodes dependent from the reset node; and
designating the second subtree as dependent from the reset node.

### Claim 7 (depends on 1)

The system of claim 1, wherein generating the second subtree comprises: traversing the nodes of the second subtree;
for each node of the second subtree visited during the traversal:
determining a value of each formatting attribute of each node of the first subtree;
determining a value of each formatting attribute of a corresponding node of the second subtree;
determining that the values are different; and
responsive to determining that the values are different, defining the value of the corresponding node of the second subtree based on the determined value or values of each formatting attribute of each node of the first subtree.

### Claim 8

A method comprising:
determining, using scrolling adjusted coordinates, a location of a pointer in relation to nodes in a first formatted document, each node comprising a respective one or more formatting attributes defining a graphical representation of the node;
identifying a first subtree of the nodes based on a first one of the nodes being nearer to the pointer than one or more others of the nodes;
generating a second subtree of the nodes based on each node of the first subtree, each node of the second subtree having an identical one or more formatting attributes to a corresponding node of the first subtree;
compressing the second subtree, the compressed second subtree capable of being stored on a storage device;
extracting the compressed second subtree; and
causing display of a presentation of the extracted second subtree in a second formatted document different from the first formatted document, the presentation of the extracted second subtree sharing characteristics of a presentation of the first subtree in the first formatted document.

### Claim 9 (depends on 8)

The method of claim 8, wherein the compressed second subtree is defined using a compressed version of a tag markup language.

### Claim 10 (depends on 8)

The method of claim 8, wherein the presentation of the extracted second subtree in the second formatted document is generated using a HyperText Markup Language (HTML) dictionary.

### Claim 11 (depends on 8)

The method of claim 8, wherein the compressed second subtree occupies less memory than the first subtree when stored.

### Claim 12 (depends on 8)

The method of claim 8, wherein the shared characteristics comprise one or more controls operable in identical fashion in the first formatted document and in the second formatted document.

### Claim 13 (depends on 8)

The method of claim 8, the method further comprising:
establishing a reset node in the first formatted document, the reset node defining a standardized set of formatting attributes inheritable by nodes dependent from the reset node; and
designating the second subtree as dependent from the reset node.

### Claim 14 (depends on 8)

The method of claim 8, wherein generating the second subtree comprises:
traversing the nodes of the second subtree;
for each node of the second subtree visited during the traversal:
determining a value of each formatting attribute of each node of the first subtree;
determining a value of each formatting attribute of a corresponding node of the second subtree;
determining that the values are different; and
responsive to determining that the values are different, defining the value of the corresponding node of the second subtree based on the determined value or values of each formatting attribute of each node of the first subtree.

### Claim 15

A computer program product comprising computer-readable program code to be executed by one or more processors when retrieved from a non-transitory computer-readable medium, the program code including instructions configurable to cause:
determining, using scrolling adjusted coordinates, a location of a pointer in relation to nodes in a first formatted document, each node comprising a respective one or more formatting attributes defining a graphical representation of the node;
identifying a first subtree of the nodes based on a first one of the nodes being nearer to the pointer than one or more others of the nodes;
generating a second subtree of the nodes based on each node of the first subtree, each node of the second subtree having an identical one or more formatting attributes to a corresponding node of the first subtree;
compressing the second subtree, the compressed second subtree capable of being stored on a storage device;
extracting the compressed second subtree; and
displaying a presentation of the extracted second subtree in a second formatted document different from the first formatted document, the presentation of the extracted second subtree sharing characteristics of a presentation of the first subtree in the first formatted document.

### Claim 16 (depends on 15)

The computer program product of claim 15, wherein the compressed second subtree is defined using a compressed version of a tag markup language.

### Claim 17 (depends on 15)

The computer program product of claim 15, wherein the presentation of the extracted second subtree in the second formatted document is generated using a HyperText Markup Language (HTML) dictionary.

### Claim 18 (depends on 15)

The computer program product of claim 15, wherein the compressed second subtree occupies less memory than the first subtree when stored.

### Claim 19 (depends on 15)

The computer program product of claim 15, wherein the shared characteristics comprise one or more controls operable in identical fashion in the first formatted document and in the second formatted document.

### Claim 20 (depends on 15)

The computer program product of claim 15, the instructions further configurable to cause:
identifying a reset node in the first formatted document, the reset node defining a standardized set of formatting attributes inheritable by nodes dependent from the reset node; and
designating the second subtree as dependent from the reset node.
