IP Library Granted Patent US 12,536,152
Granted Patent B2
US 12,536,152 · App. 18/503,957 · Granted Jan 27, 2026

Systems and methods for establishing and enforcing relationships between items

Inventors: Jack Fischer (New York, NY); Advaith Anand (Austin, TX); Andrew Jiang (San Jose, CA); Christopher Dugan (Bronx, NY)
Assignee: Palantir Technologies Inc.
G06F16/2365G06F3/0482G06F3/0484
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,536,152
App. No.
18/503,957
Granted
Jan 27, 2026
Kind
B2
Abstract

Systems and methods are provided for tracking and enforcing relationships between items. A relationship interface may be provided that conveys the relationship (or link) between items, and through which a user may define the link between two or more items. Identifying a link between two items may establish a set of one or more rules to be enforced with respect to the use of one or both of the items (e.g., when the items are stored, when the items are used to create other items, when other items are associated with the items). In various embodiments, violations of one or more rules may be identified and provided via the user interface. In some embodiments, new items that conflict with one or more rules may be prevented from being committed.

Claims (90)

1 . A system for tracking and enforcing relationships between items, the system comprising:

one or more processors; and

a memory storing instructions that, when executed by the one or more processors, cause the system to perform operations comprising:

obtaining a plurality of data items each comprising metadata information, at least a portion of the data items comprising databases;

displaying an interface comprising a plurality of nodes representing the plurality of data items;

receiving a selection of a first node representing a first data item and a second node representing a second data item;

generating or obtaining relationship information between the first data item and the second data item based on the metadata information;

receiving an update to the relationship information;

updating the metadata information of the first data item and the second data item based on the update to the relationship information, wherein the updated relationship information comprises one or more new rules to be enforced with respect to the first data item or the second data item, wherein the updated relationship information comprises a new directionality relationship between the first data item and the second data item;

enforcing the updated relationship information by maintaining data flow in a direction from the first data item to the second data item while prohibiting data flow in an opposite direction from the second data item to the first data item, the enforcing comprising:

reflecting any first change in the first data item onto the second data item; and

prohibiting any second change in the second data item from being reflected onto the first data item;

based on the updated relationship information, prohibiting the first data item or the second data item from being linked to any other data items;

identifying any violations corresponding to one or more uncommitted new items associated with the first data item or the second data item based on the updated relationship information; and

generating a visualization of the any violations.

2 . The system of claim 1 , the operations further comprising:

determining that the first data item comprises a raw upload and the second data item comprises an analyzed dataset generated based on the raw upload;

automatically determining a parent-child relationship between the first data item and the second data item; and

updating the metadata information of the first data item and the second data item is based on the parent-child relationship in additional to a user-selected relationship.

3 . The system of claim 2 , the operations further comprising:

determining, based on the updated metadata information of the second data item, that the second data item comprises information that is derived from a source that is different from the first data item; and

generating a visualization of the any violations comprises generating a visualization of a violation of the parent-child relationship between the first data item and the second data item.

4 . The system of claim 1 , the operations further comprising:

identifying the first data item comprises references that are linked to data stored in the second data item in the plurality of data items;

automatically determining a parent-child relationship between the first data item and the second data item; and

updating the metadata information of the first data item and the second data item is based on the parent-child relationship in additional to a user-selected relationship.

5 . The system of claim 4 , the operations further comprising:

detecting a modification of the references in the first data item without modifying the linked data in the second data item; and

generating a visualization of the any violations comprises generating a visualization of a violation of the parent-child relationship between the first data item and the second data item.

6 . The system of claim 1 , wherein the obtaining the plurality of data items comprises:

receiving a user access request comprising an identification of a user; and

identifying, based on the identification of the user, one or more data items that the user has access to.

7 . The system of claim 1 , wherein the operations further comprise:

displaying a selectable link between the first node representing the first data item and the second node representing the second data item, wherein the selectable link represents at least a user-selected relationship between the first data item and the second data item; and

generating a visualization of the any violations is in response to the selectable link being selected.

8 . The system of claim 7 , wherein the visualization of the any violations comprises one or more selectable violations, and generating a visualization of the any violations comprises:

in response to one of the one or more selectable violations being selected, displaying a description of the selected violation, and one or more items from the first data item and the second data item that are causing the selected violation.

9 . The system of claim 1 , wherein the generating or obtaining relationship information is based on set of predefined link candidates comprises: a link defining a one-to-one relationship between the first data item and the second data item; a link defining a subset relationship between the first data item and the second data item; and a link defining an access control between the first data item and the second data item.

10 . The system of claim 1 , wherein the first data item comprises an object representing a set of users and the second data item comprises a project, wherein a user-selected relationship between the first data item and the second data item indicates that the set of users is restricted from accessing items associated with the project, wherein the one or more new rules restrict access to the project by the set of users, and the identifying any violations comprises:

crawling the updated metadata information of the plurality of data items to determine one or more violations of the one or more new rules;

determining that a first user of the set of users is requesting access to at least one item associated with the project; and

identifying the any violations based on the determination that the first user is requesting access to the at least one item associated with the project.

11 . The system of claim 1 , wherein a user-selected relationship between the first data item and the second data item indicates that the first data item is a subset of the second data item, and wherein the one or more new rules require the second data item to include the entirety of the first data item, wherein the identifying any violations comprises:

crawling the updated metadata information of the plurality of data items to determine one or more violations of the one or more new rules;

identifying at least a portion of the first data item that is not included within the second data item; and

determining that at least the first data item or the second data item violates the one or more new rules based on the identification of at least the portion of the first data item that is not included within the second data item, wherein the visualization of the any violations includes an indication of the identified portion of the first data item that is not included within the second data item.

12 . A method being implemented by a computing system having one or more processors and storage media storing machine-readable instructions that, when executed by the one or more processors, cause the computer system to perform the method, the method comprising:

obtaining a plurality of data items each comprising metadata information, at least a portion of the data items comprising databases;

displaying an interface comprising a plurality of nodes representing the plurality of data items;

receiving a selection of a first node representing a first data item and a second node representing a second data item;

generating or obtaining relationship information between the first data item and the second data item based on the metadata information;

receiving an update to the relationship information;

updating the metadata information of the first data item and the second data item based on the update to the relationship information, wherein the updated relationship information comprises one or more new rules to be enforced with respect to the first data item or the second data item, wherein the updated relationship information comprises a new directionality relationship between the first data item and the second data item;

enforcing the updated relationship information by maintaining data flow in a direction from the first data item to the second data item while prohibiting data flow in an opposite direction from the second data item to the first data item, the enforcing comprising:

reflecting any first change in the first data item onto the second data item; and

prohibiting any second change in the second data item from being reflected onto the first data item;

based on the updated relationship information, prohibiting the first data item or the second data item from being linked to any other data items;

identifying any violations corresponding to one or more uncommitted new items associated with the first data item or the second data item based on the updated relationship information; and

generating a visualization of the any violations.

13 . The method of claim 12 , further comprising:

determining that the first data item comprises a raw upload and the second data item comprises an analyzed dataset generated based on the raw upload;

automatically determining a parent-child relationship between the first data item and the second data item; and

updating the metadata information of the first data item and the second data item is based on the parent-child relationship in additional to a user-selected relationship.

14 . The method of claim 12 , further comprising:

identifying the first data item comprises references that are linked to data stored in the second data item in the plurality of data items;

automatically determining a parent-child relationship between the first data item and the second data item; and

updating the metadata information of the first data item and the second data item is based on the parent-child relationship in additional to a user-selected relationship.

15 . The method of claim 12 , further comprising:

displaying a selectable link between the first node representing the first data item and the second node representing the second data item, wherein the selectable link represents at least a user-selected relationship between the first data item and the second data item; and

generating a visualization of the any violations is in response to the selectable link being selected.

16 . The method of claim 15 , the displaying of the one or more violations comprises one or more selectable violations, and generating a visualization of the any violations comprises:

in response to one of the one or more selectable violations being selected, displaying a description of the selected violation, and one or more items from the first data item and the second data item that are causing the selected violation.

17 . A non-transitory computer readable medium comprising instructions that, when executed, cause one or more processors to perform:

obtaining a plurality of data items each comprising metadata information, at least a portion of the data items comprising databases;

displaying an interface comprising a plurality of nodes representing the plurality of data items;

receiving a selection of a first node representing a first data item and a second node representing a second data item;

generating or obtaining relationship information between the first data item and the second data item based on the metadata information;

receiving an update to the relationship information;

updating the metadata information of the first data item and the second data item based on the update to the relationship information, wherein the updated relationship information comprises one or more new rules to be enforced with respect to the first data item or the second data item, wherein the updated relationship information comprises a new directionality relationship between the first data item and the second data item;

enforcing the updated relationship information by maintaining data flow in a direction from the first data item to the second data item while prohibiting data flow in an opposite direction from the second data item to the first data item, the enforcing comprising:

reflecting any first change in the first data item onto the second data item; and

prohibiting any second change in the second data item from being reflected onto the first data item;

based on the updated relationship information, prohibiting the first data item or the second data item from being linked to any other data items;

identifying any violations corresponding to one or more uncommitted new items associated with the first data item or the second data item based on the updated relationship information; and

generating a visualization of the any violations.

18 . The non-transitory computer readable medium of claim 17 , wherein the instructions that, when executed, cause one or more processors to perform:

displaying a selectable link between the first node representing the first data item and the second node representing the second data item, wherein the selectable link represents at least a user-selected relationship between the first data item and the second data item; and

generating a visualization of the any violations is in response to the selectable link being selected.

19 . The non-transitory computer readable medium of claim 18 , the visualization of the any violations comprises one or more selectable violations, and generating a visualization of the any violations comprises:

in response to one of the one or more selectable violations being selected, displaying a description of the selected violation, and one or more items from the first data item and the second data item that are causing the selected violation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2023
From: FISCHER, JACK; ANAND, ADVAITH; JIANG, ANDREW; DUGAN, CHRISTOPHER
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 065487/0178 →
Continuity (4)
Continuation 17747920 · May 18, 2022
Continuation 16250810 · Jan 17, 2019
Provisional Application 62772005 · Nov 27, 2018
Related Publication 20240070142A1 · Feb 29, 2024
References Cited (40)
US 6122443A · Nishikawa · 2000 [cited by examiner]
US 6847980B1 · Benitez · 2005 [cited by examiner]
US 7107268B1 · Zawadzki · 2006 [cited by examiner]
US 8924919B2 · Erl · 2014 [cited by applicant]
US 10037339B1 · Kleinpeter et al. · 2018 [cited by applicant]
US 11347716B1 · Fischer et al. · 2022 [cited by applicant]
US 12374432B1 · Stack · 2025 [cited by examiner]
US 20030227487A1 · Hugh · 2003 [cited by examiner]
US 20060195460A1 · Nori · 2006 [cited by examiner]
US 20070073787A1 · Tysowski · 2007 [cited by examiner]
US 20080028001A1 · Erl · 2008 [cited by examiner]
US 20090288018A1 · Paliwal et al. · 2009 [cited by applicant]
US 20100281390A1 · Kurtz · 2010 [cited by examiner]
US 20110213631A1 · Mislavsky · 2011 [cited by applicant]
US 20150163198A1 · Moore · 2015 [cited by examiner]
US 20150261394A1 · Shah · 2015 [cited by examiner]
US 20160062562A1 · Ragothaman · 2016 [cited by examiner]
US 20160110374A1 · Wetherall et al. · 2016 [cited by applicant]
US 20170004449A1 · Hubbard et al. · 2017 [cited by applicant]
US 20170017708A1 · Fuchs · 2017 [cited by examiner]
US 20170019487A1 · Maheshwari et al. · 2017 [cited by applicant]
US 20170046374A1 · Fletcher et al. · 2017 [cited by applicant]
US 20180025011A1 · Aksionkin et al. · 2018 [cited by applicant]
US 20180314724A1 · Anderson et al. · 2018 [cited by applicant]
US 20190042950A1 · Lin et al. · 2019 [cited by applicant]
US 20190042951A1 · Lin et al. · 2019 [cited by applicant]
US 20190208013A1 · Lai · 2019 [cited by applicant]
US 20190361900A1 · Rogynskyy · 2019 [cited by examiner]
US 20200167062A1 · Prakash · 2020 [cited by examiner]
US 20220121965A1 · Chatterji · 2022 [cited by examiner]
US 20220291821A1 · Chen · 2022 [cited by examiner]
US 20230208882A1 · Crabtree · 2023 [cited by examiner]
US 20240346163A1 · Panikkar · 2024 [cited by examiner]
Demetrescu et al. Reactive Imperative Programming with Dataflow Constraints, 2011 (Year: 2011). [cited by examiner]
Adam Neary, Unidirectional Data Flow? Yes. Flux? I Am Not So Sure.2015 (Year: 2015). [cited by examiner]
Unidirectional Secure Information Transfer via RabbitMQ, 2015 (Year: 2015). [cited by examiner]
Max Koretskyi, Do you really know what unidirectional data flow means in Angular, 2017 (Year: 2017). [cited by examiner]
Non-Final Office Action dated Mar. 13, 2023, issued in related U.S. Appl. No. 17/747,920 (13 pages). [cited by applicant]
Notice of Allowance mailed Jul. 6, 2023, issued in related U.S. Appl. No. 17/747,920 (10 pages). [cited by applicant]
FAI Pre-Interview Communication dated Sep. 22, 2021, issued in related U.S. Appl. No. 16/250,810 (6 pages). [cited by applicant]