IP Library Granted Patent US 10,908,784
Granted Patent B2
US 10,908,784 · App. 16/597,278 · Granted Feb 2, 2021

Unified document surface

Inventors: Melissa Ming-Sak Boucher (Los Altos, CA); Jeremy Edward Britton (Santa Cruz, CA); Luke Bayes (St. Petersburg, FL); Monica F. Caso (Burlingame, CA); Alexander W. Deneui (Emerald Hills, CA); Christopher Leland Eck (Sammamish, WA); Nigel Robin Ellis (Redmond, WA); Filipe P. Fortes (Sarasota, FL); David Lilja Greenspan (Aptos, CA); Brett Robert Hobbs (Santa Monica, CA); Matthew B. Hudson (San Carlos, CA); Timothy Andrew James (Seattle, WA); Kenneth Francis Mendes (Sunnyvale, CA); Shishir S. Mehrotra (Los Altos, CA); Trevor Michael O'Brien (San Francisco, CA); Lane Patrick Shackleton (San Francisco, CA); Rhed Shi (San Jose, CA); Hariharan Sivaramakrishnan (Sunnyvale, CA); Jason Peter Stowe (Newcastle, WA); Jason Andrew Tamulonis (Seattle, WA); Himanshu Vasishth (Sunnyvale, CA); Ramesh Krishna Vyaghrapuri (Kenmore, WA); David Richard Wright (Redwood City, CA); Irvin Zhan (New Hyde Park, NY); Roger Mathieu Zurawicki (San Francisco, CA)
Assignee: Coda Project, Inc.
G06F3/0482G06F3/0486G06F3/04847G06F7/544G06F11/3476G06F16/2228G06F16/2282G06F16/93G06F40/106G06F40/14G06F40/177G06F40/18G06F40/205G06F3/04842G06F11/3438G06F16/235G06F16/2358G06F16/26G06F40/10G06T11/206G06T2200/24
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 10,908,784
App. No.
16/597,278
Granted
Feb 2, 2021
Kind
B2
Abstract

The present disclosure describes methods and systems for interpreting a first user input comprising a text flow entry, interpreting a second user input comprising one of an in-line data access entry and a table-based calculation entry, positioning a text entry value on a unified document surface in response to the first user input, creating at least one data structure in response to the one of the in-line data access entry and the table-based calculation entry, and positioning the data structure on the unified document surface.

Claims (71)

1. A method, comprising:

interpreting a first user input comprising a text flow entry;

positioning a text entry value on a unified document surface in response to the first user input;

creating at least one data structure in response to the text flow entry;

positioning the at least one data structure on the unified document surface;

interpreting an operation log, wherein the operation log comprises at least one first sequential operation defining operations to create data values of a document associated with the unified document surface;

interpreting a user formula value and updating the document in response to the user formula value; and

determining a calculation definition in response to the user formula value and a document object model, wherein the calculation definition comprises requirements for operations of an executable model to implement the user formula value.

2. The method of claim 1 , further comprising:

providing a data view of the document, wherein the data view is determined using extraction context parameters; and

wherein the extraction context parameters are based at least in part on whether other users are accessing portions of the document.

3. The method of claim 1 , further comprising:

communicating a change value in response to user edits of the document, wherein timing of the communication of the change value is based at least in part on a number of other users associated with separate computing devices that are accessing and/or changing a document reflected by the operation log.

4. The method of claim 1 , further comprising:

receiving a change value in response to changes to the document from a second user, the change value comprising at least one sequential operation to add to the operation log;

determining if the change value results in conflicting operations in the operation log; and

resolving conflicting operations based at least in part on an assigned priority of the second user.

5. The method of claim 4 , further comprising applying non conflicting operations of the operation log.

6. The method of claim 1 , further comprising:

receiving a change value in response to changes to the document from a second user, the change value comprising at least one sequential operation to add to the operation log;

determining if the change value results in conflicting operations in the operation log; and

resolving conflicting operations based at least in part on a number of users affected by the changes.

7. The method of claim 1 , further comprising:

receiving a change value in response to changes to the document from a second user; and

storing the change value outside of the operation log.

8. A system, comprising:

a first computing device communicatively coupled to a second computing device; the first computing device comprising a document server structured to communicate a data value to the second computing device, the data value comprising at least a portion of a document;

the second computing device comprising:

a unified document surface application circuit structured to interpret a first user input comprising a text flow entry, and to interpret a second user input comprising one of an in-line data access entry and a table-based calculation entry;

a text flow processing circuit structured to position a text entry value on a unified document surface in response to the first user input; and

an enhanced data processing circuit structured to create at least one data structure in response to the one of the in-line data access entry and the table-based calculation entry, and to position the data structure on the unified document surface;

a document comprising an operation log, wherein the operation log comprises at least one first sequential operation defining operations to create data values of the document, and wherein the document is associated with the unified document surface;

a document object model, wherein the document object model comprises an object definition corresponding to each of a plurality of objects in the document;

a formula engine structured to determine a calculation definition in response to a user formula value and the document object model wherein the calculation definition comprises requirements for operations of an executable model to implement the user formula value; and

wherein the document is at least partially positioned on at least one of the first computing device and the second computing, device.

9. The system of claim 8 , wherein the document is at least partially positioned ? the first computing device and the second computing device.

10. The system of claim 8 , wherein the second computing device is structured to:

provide a data view of the document, wherein the data view is determined using extraction context parameters; and

wherein the extraction context parameters are based at least in part on whether other users are accessing portions of the document.

11. The system of claim 8 , wherein the second computing device is structured to:

communicate a change value to the first computing device in response to user edits of the document, wherein timing of the communication of the change value is based at least in part on a number of other users associated with separate computing devices that are simultaneously accessing and/or changing a document reflected by the operation log.

12. The system of claim 8 , wherein the second computing device is structured to:

receive a change value from the first computing device in response to changes to the document from a second user, the change value comprising at least one sequential operation to add to the operation log;

determine if change value results in conflicting operations in the operation log; and

resolve conflicting operations based at least in part on an assigned priority of the second user.

13. The system of claim 12 , wherein the second computing device is structured to apply non conflicting operations of the operation log.

14. The system of claim 8 , wherein the second computing device is structured to:

receive a change value from the first computing device in response to changes to the document from a second user, the change value comprising at least one sequential operation to add to the operation log;

determine if change value results in conflicting operations in the operation log; and

resolve conflicting operations based at least in part on a number of users affected by the changes.

15. The system of claim 8 , wherein the second computing device is structured to:

receive a change value from the first computing device in response to changes to the document from a second user; and

store the change value outside of the operation log.

16. A method, comprising:

interpreting a user input indicating a table reference value;

accessing a unified document surface comprising at least two tables;

resolving a referenced table of the at least two tables in response to the table reference value;

wherein the at least two tables each comprise a reference name value consistent with the table reference value, and wherein the resolving comprises:

determining a first user related position in the unified document surface, and finding a closest hierarchically related one of the at least two tables in response to the first user related position;

interpreting an operation log, wherein the operation log comprises at least one first sequential operation defining operations to create data values of a document associated with the unified document surface; and

interpreting a user formula value and to update the document in response to the user formula value.

17. The method of claim 16 , wherein resolving further comprises:

determining one or more disambiguation values; and

returning the one or more disambiguation values to a user.

18. The method of claim 17 , wherein the operation log includes disambiguation values and wherein the one or more disambiguation values enforce uniqueness.

19. The method of claim 17 , further comprising determining a document view in response to the one or more returned disambiguation values.

20. The method of claim 17 , wherein the one or more returned disambiguation values are selected from values consisting of: an object name, an object method, and a dereferencing option value.

21. The method of claim 17 , wherein the one or more disambiguation values are returned to the user ordered based on priority.

22. The method of claim 17 , wherein the one or more disambiguation values are selected from at least one of: primary keys, offset data, neighboring column names, and table name.

23. The method of claim 17 , wherein the one or more disambiguation values are selected from at least one of: reference entries, related tables, related websites, and external data.

24. The method of claim 17 , wherein the one or more disambiguation values are presented in response to: a partial entry of the user input, misspelling of the user input, or more than one masks values matching user input.

Assignments (5)
CHANGE OF NAME Recorded Nov 21, 2025
From: GRAMMARLY, INC.
To: SUPERHUMAN PLATFORM INC.
Reel/Frame 073655/0099 →
MERGER Recorded Mar 5, 2025
From: CODA PROJECT, INC.
To: CODA PROJECT, LLC
Reel/Frame 070407/0635 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2025
From: CODA PROJECT, LLC
To: GRAMMARLY, INC.
Reel/Frame 070407/0687 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2020
From: BOUCHER, MELISSA MING-SAK; BRITTON, JEREMY EDWARD; BAYES, LUKE; CASO, MONICA F.; DENEUI, ALEXANDER W.; ECK, CHRISTOPHER LELAND; ELLIS, NIGEL ROBIN; FORTES, FILIPE P.; GREENSPAN, DAVID LILJA; HOBBS, BRETT ROBERT; HUDSON, MATTHEW B.; JAMES, TIMOTHY ANDREW; MENDES, KENNETH FRANCIS; MEHROTRA, SHISHIR S.; O'BRIEN, TREVOR MICHAEL; SHACKLETON, LANE PATRICK; SHI, RHED; SIVARAMAKRISHNAN, HARIHARAN; STOWE, JASON PETER; TAMULONIS, JASON ANDREW; VASISHTH, HIMANSHU; VYAGHRAPURI, RAMESH KRISHNA; WRIGHT, DAVID RICHARD; ZHAN, IRVIN; ZURAWICKI, ROGER MATHIEU
To: KRYPTON PROJECT, INC.
Reel/Frame 051513/0762 →
CHANGE OF NAME Recorded Jan 14, 2020
From: KRYPTON PROJECT, INC.
To: CODA PROJECT, INC.
Reel/Frame 051631/0373 →
Continuity (5)
Continuation 15499888 · Apr 28, 2017
Continuation 15499887 · Apr 27, 2017
Provisional Application 62485908 · Apr 15, 2017
Provisional Application 62328469 · Apr 27, 2016
Related Publication 20200042143A1 · Feb 6, 2020
Cited By (4)
US 12,288,024 US 12,346,653 US 12,591,351 US 12,645,343