IP Library Granted Patent US 12,386,496
Granted Patent B2
US 12,386,496 · App. 17/738,459 · Granted Aug 12, 2025

Data collaboration between different entities

Inventors: Graham Dennis (Downer, AU); Timothy Taylor (Wellington, NZ); Kimberley Lear (Washington, DC); Jesse Rickard (Kingston, AU); Dyon Balding (New York, NY); Hunter Pitelka (Arlington, VA); David Leblanc (Ottawa, CA); Vaughan Shanks (Dickson, AU); Joel Davies (Canberra, AU); Steffen Merten (Lower Hutt, NZ); Christopher Cook (Wellington, NZ); Christopher Male (Wellington, NZ); Marc Barker (New Acton, AU)
Assignee: Palantir Technologies Inc.
G06F3/04847G06T11/206G06T11/60H04L67/06H04L67/10G06T2200/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 12,386,496
App. No.
17/738,459
Granted
Aug 12, 2025
Kind
B2
Abstract

Techniques related to data collaboration between different entities are disclosed. In an embodiment, a graph may be displayed in a computer graphical user interface. The graph may include nodes and edges. Each node may represent a distinct data object. Each edge may represent one or more relationships between the two distinct data objects. Based on one or more redaction criteria, a portion of the graph may be identified to be redacted before the graph is exported. Display of the graph in the computer graphical user interface may be updated to remove display of the portion of the graph. After the updating, a request to export the graph may be received. Responsive to receiving the request, a machine-readable representation of a redacted graph may be exported.

Claims (81)

1. A method comprising:

importing, by a computing device, a redacted graph comprising nodes and edges and at least one access control classification,

each of the edges connecting two of the nodes,

each of the nodes representing a distinct data object,

the redacted graph being redacted based on the at least one access control classification, each edge representing one or more relationships between two distinct data objects;

redacting the at least one access control classification and assigning a new access control classification in an absence of the at least one access control classification to the redacted graph;

determining that one or more nodes of the redacted graph represent same data objects represented by nodes in a current graph stored on the computing device;

performing data deconfliction on the one or more nodes of the redacted graph and corresponding nodes in the current graph, comprising:

comparing the one or more nodes of the redacted graph to the corresponding nodes in the current graph;

when the one or more nodes of the redacted graph and the corresponding nodes in the current graph represent concurrent versions, comparing data object properties of the one or more nodes to data object properties of the corresponding nodes to determine whether values of the data object properties contain conflicting values;

when the values of the data object properties from the one or more nodes and the corresponding nodes contain conflicting values, causing displaying, in a computer graphical user interface, the conflicting values for the data object properties of the one or more nodes and the corresponding nodes;

receiving a selection of a particular data value from the conflicting values associated with a particular data object property of a particular node belonging to either the one or more nodes or the corresponding nodes; and

assigning the particular data value associated with the particular data object property as deconflicted data for the particular node;

updating the corresponding nodes in the current graph to contain the deconflicted data based on the one or more nodes of the redacted graph; and

causing displaying, in the computer graphical user interface of the computing device, the current graph with updated corresponding nodes,

wherein the method is performed by one or more processors.

2. The method of claim 1 , wherein determining that the one or more nodes of the redacted graph represent the same data objects represented by nodes in the current graph comprises:

comparing the nodes of the redacted graph to the nodes of the current graph; and determining that the one or more nodes of the redacted graph and one or more nodes of the current graph represent the same data objects based on data object properties of the nodes of the redacted graph and the nodes in the current graph.

3. The method of claim 1 , wherein

when the one or more nodes of the redacted graph and the corresponding nodes in the current graph represent different versions of the same data objects, selecting nodes that represent a most recent version.

4. The method of claim 3 , wherein selecting the nodes that represent the most recent version is based on timestamp values or vector clocks associated with the one or more nodes of the redacted graph and the corresponding nodes in the current graph.

5. The method of claim 1 , further comprising:

when the values of the data object properties form the one or more nodes and the corresponding nodes do not contain conflicting values, combining the values of the data object properties from the one or more nodes and the corresponding nodes to represent deconflicted data for the corresponding nodes in the current graph.

6. The method of claim 1 , further comprising, upon performing the data deconfliction on the one or more nodes of the redacted graph and the corresponding nodes in the current graph, maintaining copies of conflicted changes associated with the corresponding nodes in the current graph.

7. The method of claim 1 , further comprising:

wherein access control classifications associated with the nodes in the redacted graph have been redacted prior to receiving the redacted graph;

receiving, via the computer graphical user interface, access control input assigning a new access control classification to a particular node of the corresponding nodes in the current graph; and

assigning the new access control classification to the particular node.

8. A computer system comprising:

one or more processors; and

one or more computer-readable media storing instructions which, when executed by the one or more processors, cause:

importing a redacted graph comprising nodes and edges and at least one access control classification,

each of the edges connecting two of the nodes,

each of the nodes representing a distinct data object,

the redacted graph being redacted based on the at least one access control classification, each edge representing one or more relationships between two distinct data objects;

redacting the at least one access control classification and assigning a new access control classification in an absence of the at least one access control classification to the redacted graph;

determining that one or more nodes of the redacted graph represent same data objects represented by nodes in a current graph stored on the computer system;

performing data deconfliction on the one or more nodes of the redacted graph and corresponding nodes in the current graph, comprising:

comparing the one or more nodes of the redacted graph to the corresponding nodes in the current graph;

when the one or more nodes of the redacted graph and the corresponding nodes in the current graph represent concurrent versions, comparing data object properties of the one or more nodes to data object properties of the corresponding nodes to determine whether values of the data object properties contain conflicting values;

when the values of the data object properties from the one or more nodes and the corresponding nodes contain conflicting values, causing displaying, in a computer graphical user interface, the conflicting values for the data object properties of the one or more nodes and the corresponding nodes;

receiving a selection of a particular data value from the conflicting values associated with a particular data object property of a particular node belonging to either the one or more nodes or the corresponding nodes; and

assigning the particular data value associated with the particular data object property as deconflicted data for the particular node;

updating the corresponding nodes in the current graph to contain the deconflicted data based on the one or more nodes of the redacted graph; and

causing displaying, in the computer graphical user interface, the current graph with updated corresponding nodes.

9. The computer system of claim 8 , wherein determining that the one or more nodes of the redacted graph represent the same data objects represented by nodes in the current graph comprises:

comparing the nodes of the redacted graph to the nodes of the current graph; and determining that the one or more nodes of the redacted graph and one or more nodes of

the current graph represent the same data objects based on data object properties of the nodes of the redacted graph and the nodes in the current graph.

10. The computer system of claim 8 , wherein

when the one or more nodes of the redacted graph and the corresponding nodes in the current graph represent different versions of the same data objects, selecting nodes that represent a most recent version.

11. The computer system of claim 10 , wherein selecting the nodes that represent the most version is based on timestamp values or vector clocks associated with the one or more nodes of the redacted graph and the corresponding nodes in the current graph.

12. The computer system of claim 8 , wherein the one or more computer-readable media storing further instructions which, when executed by the one or more processors, further cause:

when the values of the data object properties from the one or more nodes and the corresponding nodes do not contain conflicting values, combining the values of the data object properties from the one or more nodes and the corresponding nodes to represent deconflicted data for the corresponding nodes in the current graph.

13. The computer system of claim 8 , wherein the one or more computer-readable media storing further instruction which, when executed by the one or more processors, further cause:

upon performing the data deconfliction on the one or more nodes of the redacted graph and the corresponding nodes in the current graph, maintaining copies of conflicted changes associated with the corresponding nodes in the current graph.

14. The computer system of claim 8 , wherein the one or more computer-readable media storing further instructions which, when executed by the one or more processors, further cause:

wherein access control classifications associated with the nodes in the redacted graph have been redacted prior to receiving the redacted graph;

receiving, via the computer graphical user interface, access control input assigning an new access control classification to a particular node of the corresponding nodes in the current graph; and

assigning the new access control classification to the particular node.

15. A non-transitory storage media storing instructions which, when executed by a processor, cause:

importing a redacted graph comprising nodes and edges and at least one access control classification,

each of the edges connecting two of the nodes,

each of the nodes representing a distinct data objet,

the redacted graph being redacted based ono the at least one access control classification, at least one of the nodes being associated with the at least one access control classification,

each edge representing one or more relationships between two distinct data objects;

redacting the at least one access control classification and assigning a new access control classification in an absence of the at least one access control classification to the redacted graph;

determining that one or more nodes of the redacted graph represent same data objects represented by nodes in a current graph stored on a computing device;

performing data deconfliction on the one or more nodes of the redacted graph and corresponding nodes in the current graph, comprising:

comparing the one or more nodes of the redacted graph to the corresponding nodes in the current graph;

when the one or more nodes of the redacted graph and the corresponding nodes in the current graph represent concurrent versions, comparing data object properties of the one or more nodes to data object properties of the corresponding nodes to determine whether values of the data object properties contain conflicting values;

when the values of the data object properties from the one or more nodes and the corresponding nodes contain conflicting values, causing displaying, in a computer graphical user interface, the conflicting values for the data object properties of the one or more nodes and the corresponding nodes;

receiving a selection of a particular data value from the conflicting values associated with a particular data object property of a particular node belonging to either the one or more nodes or the corresponding nodes; and

assigning the particular data value associated with the particular data object property as deconflicted data for the particular node;

updating the corresponding nodes in the current graph to contain the deconflicted data based on the one or more nodes of the redacted graph; and

causing displaying, in the computer graphical user interface of the computing device, the current graph with updated corresponding nodes.

16. The non-transitory storage media of claim 15 , wherein determining that the one or more nodes of the redacted graph represent the same data objects represented by nodes in the current graph, comprises:

comparing the nodes of the redacted graph to the nodes in the current graph; and determining that the one or more nodes of the redacted graph and one or more nodes of

the current graph represent the same data objects based on data object properties of the nodes of the redacted graph and the nodes in the current graph.

17. The non-transitory storage media of claim 15 , wherein

when the one or more nodes of the redacted graph and the corresponding nodes in the current graph represent different versions of same data objects, selecting nodes that represent a most recent version.

18. The non-transitory storage media of claim 17 , wherein selecting the nodes that represent the most recent version is based on timestamp values or vector clocks associated with the one or more nodes of the redacted graph and the corresponding nodes in the current graph.

Continuity (5)
Continuation 16285010 · Feb 25, 2019
Continuation 15856989 · Dec 28, 2017
Continuation 14887071 · Oct 19, 2015
Provisional Application 62209762 · Aug 25, 2015
Related Publication 20220261144A1 · Aug 18, 2022
References Cited (12)
US 8601326B1 · Kirn · 2013 [cited by examiner]
US 20060053170A1 · Hill · 2006 [cited by applicant]
US 20060075503A1 · Bunker · 2006 [cited by examiner]
US 20080275879A1 · Hammen · 2008 [cited by examiner]
US 20100010912A1 · Jones · 2010 [cited by applicant]
US 20100079461A1 · Breeds · 2010 [cited by applicant]
US 20130246480A1 · Lemcke · 2013 [cited by examiner]
US 20140129936A1 · Richards · 2014 [cited by examiner]
US 20140268244A1 · Sheridan · 2014 [cited by applicant]
US 20150006587A1 · Segaran · 2015 [cited by examiner]
US 20150033106A1 · Stetson · 2015 [cited by examiner]
US 20150186653A1 · Gkoulalas-Divanis · 2015 [cited by applicant]