# US 9,436,927 B2 · Web-based multiuser collaboration

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

- Number: US 9,436,927 B2
- Document ID: US9436927B2
- Status: Granted
- Kind: B2
- Application number: 12/048,615
- Filed: 2008-03-14
- Published: 2009-09-17
- Granted: 2016-09-06
- Earliest claimed: 2008-03-14
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Hani Saliba; Peter Engrav
- Inventors: Hani Saliba; Peter Engrav
- Web page: https://patentgrep.com/patent/US9436927B2

## CPC

- G06Q 10/10: Office automation; Time management
- G06F 40/166: Editing, e.g. inserting or deleting
- G06F 40/197: Version control (for software G06F8/71)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Tools and techniques are described for web-based multiuser collaboration. These tools may provide methods that enable users to collaborate remotely on documents using respective browsers. These methods may send representations of portions of a given document to the browsers, and associate portions of the documents with particular users. The browsers may receive representations of commands as provided by the users, and may determine whether to execute the commands at the browser. The methods may also include receiving from the browsers revisions to the portions of the document, and storing these portions of the document in storage areas that are configured for storing content that has changed relatively recently.

## Claims

### Claim 1

A computer-implemented method for web-based multiuser collaboration, the method comprising executing instructions in one or more computer systems to perform the operations of:
modeling a document on a server into semantic pieces as a plurality of cells for a construct of the document;
identifying at least one cell of interest of the plurality of cells to at least one user of a plurality of users, the at least one cell of interest comprising a portion of the document cached on the server;
in response to identifying the at least one cell of interest, sending the cached portion of the at least one cell of interest to a browser associated with the at least one user;
associating the at least one cell of interest with the at least one user;
storing an association between the at least one cell of interest and the at least one user;
obtaining a first revision of interest to the at least one cell of interest;
determining, based upon the association between the at least one cell of interest and the at least one user, that the first revision of interest is to be sent to the browser associated with the at least one user; and
sending a cached portion of the first revision of interest to the browser associated with the at least one user, whereby the cached portion of the first revision is configured to be displayed by the browser along with a first identifier indicating the association between the at least one cell of interest and the at least one user.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising:
determining that a second user is collaborating on the at least one cell of interest; and
in response to determining that the second user is collaborating on the at least one cell of interest, send a representation of the first revision to at least a second browser associated with the second user.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, further comprising:
receiving from the browser a representation of a second revision to the at least one cell of interest; and
merging the first revision and the second revision to the at least one cell of interest.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, further comprising:
retrieving from the cache the at least one cell of interest; and
sending a representation of the at least one cell of interest from the cache to at least a second browser associated with a second user.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, further comprising:
receiving a request for the at least one cell of interest; and
redirecting the request to the cache.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein identifying the at least one cell of interest to the at least one user of the plurality of users include:
sending names of pages of the document to the browser associated with the at least one user of the plurality of users, along with a content of a first page of the document; and
receiving a selection of a name of a page of the document from the browser associated with the at least one user of the plurality of users.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, further comprising providing a number of look-ahead pages and a number of look-behind pages occurring before and after, respectively, the at least one cell of interest.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, wherein modeling the document as the plurality of cells further comprises:
modeling the document as a graph data structure; and
providing a semantic model of the document, the semantic model providing a hierarchy for the document.

### Claim 9 (depends on 8)

The computer-implemented method of claim 8, wherein the graph data structure comprises a directed acyclic graph comprising one or more types of nodes, property sets, and other elements representing the plurality of cells.

### Claim 10 (depends on 9)

The computer-implemented method of claim 9, wherein the at least one cell of interest of the plurality of cells is represented as at least one node of the directed acyclic graph of the graph data structure.

### Claim 11

A system for web-based multiuser collaboration, the system comprising:
a processor; and
an optical disk, magnetic storage device, or semiconductor storage device having executable instructions stored thereupon which, when executed by the processor, cause the processor to
model a document on a server into semantic pieces as a plurality of cells for a construct of the document,
identify at least one cell of interest of the plurality of cells to at least one user of a plurality of users, the at least one cell of interest comprising a portion of the document cached on the server,
in response to identifying the at least one cell of interest, send the cached portion of the at least one cell of interest to a browser associated with the at least one user,
associate the at least one cell of interest with the at least one user,
store an association between the at least one cell of interest and the at least one user,
obtain a first revision of interest to the at least one cell of interest,
determine, based upon the association between the at least one cell of interest and the at least one user, that the first revision of interest is to be sent to the browser associated with the at least one user, and
send a cached portion of the first revision of interest to the browser associated with the at least one user, whereby the cached portion of the first revision is configured to be displayed by the browser along with a first identifier indicating the association between the at least one cell of interest and the at least one user.

### Claim 12 (depends on 11)

The system of claim 11, wherein the optical disk, magnetic storage device, or semiconductor storage device contains further instructions which, when executed by the processor, further causes the processor to:
determine that a second user is collaborating on the at least one cell of interest; and
in response to determining that the second user is collaborating on the at least one cell of interest, send a representation of the first revision to at least a second browser associated with the second user.

### Claim 13 (depends on 11)

The system of claim 11, wherein the optical disk, magnetic storage device, or semiconductor storage device contains further instructions which, when executed by the processor, further causes the processor to:
retrieve from the cache the at least one cell of interest; and
send a representation of the at least one cell of interest from the cache to at least a second browser associated with a second user.

### Claim 14 (depends on 11)

The system of claim 11, wherein the optical disk, magnetic storage device, or semiconductor storage device contains further instructions which, when executed by the processor, further causes the processor to:
receive a request for the at least one cell of interest; and
redirect the request to the cache.

### Claim 15 (depends on 11)

The system of claim 11, wherein identifying the at least one cell of interest to the at least one user of the plurality of users includes:
sending names of pages of the document to the browser associated with the at least one user of the plurality of users, along with a content of a first page of the document; and
receiving a selection of a name of a page of the document from the browser associated with the at least one user of the plurality of users.

### Claim 16

An optical, magnetic, or semiconductor computer-readable storage medium having instructions stored thereon which, when executed by a processor of a computing system, cause the computing system to perform operations comprising:
modeling a document on a server into semantic pieces as a plurality of cells for a construct of the document;
identifying at least one cell of interest of the plurality of cells to at least one user of a plurality of users, the at least one cell of interest comprising a portion of the document cached on the server;
in response to identifying the at least one cell of interest, sending the cached portion of the at least one cell of interest to a browser associated with the at least one user;
associating the at least one cell of interest with the at least one user;
storing an association between the at least one cell of interest and the at least one user;
obtaining a first revision of interest to the at least one cell of interest;
determining, based upon the association between the at least one cell of interest and the at least one user, that the first revision of interest is to be sent to the browser associated with the at least one user; and
sending a cached portion of the first revision of interest to the browser associated with the at least one user, whereby the cached portion of the first revision is displayed by the browser along with a first identifier indicating the association between the at least one cell of interest and the at least one user.

### Claim 17 (depends on 16)

The optical, magnetic, or semiconductor computer-readable storage medium of claim 16, comprising further computer-readable instructions which, when executed by the computing system, cause the computing system to convert the cached portion of the document to or from at least one format associated with a client application.

### Claim 18 (depends on 16)

The optical, magnetic, or semiconductor computer-readable storage medium of claim 16, wherein identifying the at least one cell of interest to the at least one user of the plurality of users comprises:
sending names of pages of the document to the browser associated with the at least one user of the plurality of users, along with a content of a first page of the document; and
receiving a selection of a name of a page of the document from the browser associated with the at least one user of the plurality of users.

### Claim 19 (depends on 16)

The optical, magnetic, or semiconductor computer-readable storage medium of claim 16, wherein modeling the document as the plurality of cells further comprises:
modeling the document as a graph data structure; and
providing a semantic model of the document, the semantic model providing a hierarchy for the document.

### Claim 20 (depends on 19)

The optical, magnetic, or semiconductor computer-readable storage medium of claim 19, wherein the graph data structure comprises a directed acyclic graph comprising one or more types of nodes, property sets, and other elements representing the plurality of cells.
