# US 9,141,628 B1 · Relationship model for modeling relationships between equivalent objects accessible over a network

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

- Number: US 9,141,628 B1
- Document ID: US9141628B1
- Status: Granted
- Kind: B1
- Application number: 12/551,732
- Filed: 2009-09-01
- Granted: 2015-09-22
- Earliest claimed: 2008-11-07
- Assignees: Cloudlock, Inc.
- Applicants: Gil Zimmermann; Ron Zalkind; Tsahy Shapsa
- Inventors: Gil Zimmermann; Ron Zalkind; Tsahy Shapsa
- Web page: https://patentgrep.com/patent/US9141628B1

## CPC

- G06F 16/211: {Schema design and management}
- G06F 16/148: {File search processing}
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- 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 relationship model system automatically recognizes relationships among data in a local IT environment. Such data may be derived from multiple sources, such as multiple devices and/or software applications of different types. Such data are collected automatically, remotely, and transparently from the local IT environment. Relationships among the data are recognized automatically by correlating data from the multiple sources. Records of such relationships are stored remotely in a relationship model. The system may draw conclusions based on the recognized relationships and take actions in response to those conclusions.

## Claims

### Claim 1

A method performed by at least one computer processor executing computer program instructions tangibly stored in at least one non-transitory computer-readable medium, the method comprising:
(A) obtaining, over a network, first data from a first information technology (IT) subsystem of a first type;
(B) obtaining, over the network, second data from a second IT subsystem of a second type, wherein the first type differs from the second type;
(C) identifying a first portion of the first data, wherein the first portion refers to a first object, wherein the first object comprises one of: (1) a first data structure stored in the at least one non-transitory computer-readable medium, and (2) a first physical object;
(D) identifying a second portion of the second data, wherein the second portion refers to a second object, wherein the second object comprises one of: (1) a second data structure stored in the at least one non-transitory computer-readable medium, and (2) a second physical object;
(E) determining whether the first portion of the first data and the second portion of the second data refer to the same object as each other by correlating the first portion of the first data with the second portion of the second data;
(F) if the first portion of the first data and the second portion of the second data are determined to refer to the same object as each other, then:
(F1) storing the first portion, the second portion, and an indication that the first object and the second object are the same object remotely from the first and second resources;
(G) if the first portion and the second portion are not determined to refer to the same object as each other, then:
(G1) not storing an indication that the first object and the second object are the same object;
(H) receiving a query over the network, wherein the query includes a first predicate and a second predicate;
(I) determining whether the first portion satisfies the first predicate of the query;
(J) determining whether the second portion satisfies the second predicate of the query; and
(K) providing a response to the query over the network based on the outcomes of the determinations in (H) and (I), wherein the response to the query indicates whether the first portion satisfies the first predicate of the query and whether the second portion satisfies the second predicate of the query.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
(L) receiving, over the network, a request for information about the first object; and
(M) in response to the request, providing, over the network, the first and second portion.

### Claim 3 (depends on 1)

The method of claim 1, wherein (K) comprises:
(K1) providing a first response to the query if the first portion satisfies the first predicate and the second portion satisfies the second predicate; and
(K2) if the first portion does not satisfy the first predicate or the second portion does not satisfy the second predicate, then providing a second response, which differs from the first response.

### Claim 4 (depends on 1)

The method of claim 1, wherein (K) comprises:
(K1) providing a first response to the query if the first portion satisfies the first predicate or the second portion satisfies the second predicate; and
(K2) if the first portion does not satisfy the first predicate or the second portion does not satisfy the second predicate, then providing a second response, which differs from the first response.

### Claim 5 (depends on 1)

The method of claim 1, wherein the first IT subsystem comprises a first application.

### Claim 6 (depends on 1)

The method of claim 1, wherein the first IT subsystem comprises a first device.

### Claim 7 (depends on 1)

The method of claim 1, wherein the first IT subsystem comprises an application and wherein the second IT subsystem comprises a device.

### Claim 8 (depends on 1)

The method of claim 1, wherein the first IT subsystem is at least one of a backup subsystem, an access control subsystem, an archive subsystem, and a file system.

### Claim 9 (depends on 8)

The method of claim 8, wherein the second IT subsystem is at least one of a backup subsystem, an access control subsystem, an archive subsystem, and a file system.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
(L) repeating (A)-(G) for a plurality of first data maintained by the first IT subsystem and a plurality of second data maintained by the second IT subsystem.

### Claim 11 (depends on 1)

The method of claim 1, further comprising:
(M) repeating (A)-(G) for a plurality of first IT subsystems and a plurality of second IT subsystems.

### Claim 12 (depends on 1)

The method of claim 1, wherein (A) comprises obtaining data from a file stored on a non-transitory computer-readable medium without opening the file.

### Claim 13 (depends on 12)

The method of claim 12, wherein the data from the file comprises at least one of a filename, file creation date, file modification date, file size, and file creator.

### Claim 14 (depends on 1)

The method of claim 1, wherein (A) comprises obtaining data from a file stored on a non-transitory computer-readable medium without modifying the file.

### Claim 15 (depends on 1)

The method of claim 1, wherein the first data comprises metadata.

### Claim 16 (depends on 1)

The method of claim 1, wherein the first data comprises unstructured data.

### Claim 17 (depends on 1)

The method of claim 1, wherein (E) comprises using first correlation logic to determine whether the first object and the second object are equivalent to each other, and wherein the method further comprises:
(L) providing second correlation logic;
(M) using the second correlation logic to determine whether the first object and the second object are equivalent to each other; and
(N) if the second correlation logic determines that the first object and the second object are equivalent to each other, then storing an indication of a relationship between the first portion and the second portion remotely from the first and second IT subsystems.

### Claim 18

A non-transitory computer-readable medium tangibly storing computer program instructions executable by at least one computer processor, the computer program instructions comprising instructions for:
(A) obtaining, over a network, first data from a first information technology (IT) subsystem of a first type;
(B) obtaining, over the network, second data from a second IT subsystem of a second type, wherein the first type differs from the second type;
(C) identifying a first portion of the first data, wherein the first portion refers to a first object, wherein the first object comprises one of: (1) a first data structure stored in the at least one non-transitory computer-readable medium, and (2) a first physical object;
(D) identifying a second portion of the second data, wherein the second portion refers to a second object, wherein the second object comprises one of: (1) a second data structure stored in the at least one non-transitory computer-readable medium, and (2) a second physical object;
(E) determining whether the first portion of the first data and the second portion of the second data refer to the same object as each other by correlating the first portion of the first data with the second portion of the second data;
(F) if the first portion and the second portion are determined to refer to the same object as each other, then:
(F1) storing the first portion, the second, portion and an indication that the first object and the second object are the same object remotely from the first and second resources;
(G) if the first portion and the second portion are not determined to refer to the same object as each other, then:
(G1) not storing an indication that the first object and the second object are the same object;
(H) receiving a query over the network, wherein the query includes a first predicate and a second predicate;
(I) determining whether the first portion satisfies the first predicate of the query;
(J) determining whether the second portion satisfies the second predicate of the query; and
(K) providing a response to the query over the network based on the outcomes of the first portion satisfies the first predicate of the query and whether the second portion satisfies the second predicate of the query.

### Claim 19

A method performed by at least one computer processor executing computer program instructions tangibly stored in at least one non-transitory computer-readable medium, the method comprising:
(A) obtaining first data from a first information technology (IT) subsystem of a first type;
(B) obtaining second data a second IT subsystem of a second type, wherein the first type differs from the second type;
(C) identifying a first portion of the first data, wherein the first portion refers to a first object, wherein the first object comprises one of: (1) a first data structure stored in the at least one non-transitory computer-readable medium, and (2) a first physical object;
(D) identifying a second portion of the second data, wherein the second portion refers to a second object, wherein the second object comprises one of: (1) a second data structure stored in the at least one non-transitory computer-readable medium, and (2) a second physical object;
(E) determining whether the first portion of the first data and the second portion of the second data refer to the same object as each other by correlating the first portion of the first data with the second portion of the second data;
(F) if the first portion of the first data and the second portion of the second data are determined to refer to the same object as each other, then:
(F1) storing the first portion, the second portion, and an indication that the first object and the second object are the same object;
(G) if the first portion and the second portion are not determined to refer to the same object as each other, then:
(G1) not storing an indication that the first object and the second object are the same object;
(H) receiving a query over the network, wherein the query includes a first predicate and a second predicate;
(I) determining whether the first portion satisfies the first predicate of the query;
(J) determining whether the second portion satisfies the second predicate of the query; and
(K) providing a response to the query over the network based on the outcomes of the determinations in (H) and (I), wherein the response to the query indicates whether the first portion satisfies the first predicate of the query and whether the second portion satisfies the second predicate of the query.

### Claim 20

A non-transitory computer-readable medium tangibly storing computer program instructions executable by at least one computer processor, the computer program instructions comprising instructions for:
(A) obtaining first data from a first information technology (IT) subsystem of a first type;
(B) obtaining second data from a second IT subsystem of a second type, wherein the first type differs from the second type;
(C) identifying a first portion of the first data, wherein the first portion refers to a first object, wherein the first object comprises one of: (1) a first data structure stored in the at least one non-transitory computer-readable medium, and (2) a first physical object;
(D) identifying a second portion of the second data, wherein the second portion refers to a second object, wherein the second object comprises one of: (1) a second data structure stored in the at least one non-transitory computer-readable medium, and (2) a second physical object;
(E) determining whether the first portion of the first data and the second portion of the second data refer to the same object as each other by correlating the first portion of the first data with the second portion of the second data;
(F) if the first portion of the first data and the second portion of the second data are determined to refer to the same object as each other, then:
(F1) storing the first portion, the second portion, and an indication that the first object and the second object are the same object;
(G) if the first portion and the second portion are not determined to refer to the same object as each other, then:
(G1) not storing an indication that the first object and the second object are the same object;
(H) receiving a query over the network, wherein the query includes a first predicate and a second predicate;
(I) determining whether the first portion satisfies the first predicate of the query;
(J) determining whether the second portion satisfies the second predicate of the query; and
(K) providing a response to the query over the network based on the outcomes of the determinations in (H) and (I), wherein the response to the query indicates whether the first portion satisfies the first predicate of the query and whether the second portion satisfies the second predicate of the query.

### Claim 21

A method performed by at least one computer processor executing computer program instructions tangibly stored in at least one non-transitory computer-readable medium, the method comprising:
(A) obtaining, over a network, first data from a first information technology (IT) subsystem of a first type, wherein the first data contains a first portion that refers to a first object, wherein the first object comprises one of: (1) a first data structure stored in the at least one non-transitory computer-readable medium, and (2) a first physical object;
(B) obtaining, over the network, second data from a second IT subsystem of a second type, wherein the second data contains a second portion that refers to the first object, wherein the first type differs from the second type;
(C) storing an indication that the first object and the second object are the same object;
(D) receiving a query over the network, wherein the query includes a first predicate and a second predicate;
(E) determining whether the first portion satisfies the first predicate of the query;
(F) determining whether the second portion satisfies the second predicate of the query;
(G) providing a response to the query over the network based on the outcomes of the determinations in (E) and (F), wherein the response to the query indicates whether the first portion satisfies the first predicate of the query and whether the second portion satisfies the second predicate of the query.

### Claim 22

A non-transitory computer-readable medium tangibly storing computer program instructions executable by at least one computer processor, the computer program instructions comprising instructions for:
(A) obtaining, over a network, first data from a first information technology (IT) subsystem of a first type, wherein the first data contains a first portion that refers to a first object, wherein the first object comprises one of: (1) a first data structure stored in the at least one non-transitory computer-readable medium, and (2) a first physical object;
(B) obtaining, over the network, second data from a second IT subsystem of a second type, wherein the second data contains a second portion that refers to the first object, wherein the first type differs from the second type;
(C) storing an indication that the first object and the second object are the same object;
(D) receiving a query over the network, wherein the query includes a first predicate and a second predicate;
(E) determining whether the first portion satisfies the first predicate of the query;
(F) determining whether the second portion satisfies the second predicate of the query; and
(G) providing a response to the query over the network based on the outcomes of the determinations in (E) and (F), wherein the response to the query indicates whether the first portion satisfies the first predicate of the query and whether the second portion satisfies the second predicate of the query.

### Claim 23 (depends on 1)

The method of claim 1, wherein the first IT subsystem comprises a cloud-based IT subsystem.

### Claim 24 (depends on 23)

The method of claim 23, wherein the second IT subsystem comprises a cloud-based IT subsystem.

### Claim 25 (depends on 18)

The non-transitory computer-readable medium of claim 18, wherein the first IT subsystem comprises a cloud-based IT subsystem.

### Claim 26 (depends on 25)

The non-transitory computer-readable medium of claim 25, wherein the second IT subsystem comprises a cloud-based IT subsystem.

### Claim 27 (depends on 1)

The method of claim 1, wherein the first IT subsystem comprises a first device, and wherein the second IT subsystem comprises a second device.

### Claim 28 (depends on 1)

The method of claim 1, wherein the first IT subsystem comprises a first software application, and wherein the second IT subsystem comprises a second software application.

### Claim 29 (depends on 28)

The method of claim 28, wherein the first software application comprises a first operating system, and wherein the second software application comprises a second operating system.

### Claim 30 (depends on 1)

The method of claim 1, wherein the first portion comprises a first filename, and wherein the second portion comprises a second filename.

### Claim 31 (depends on 1)

The method of claim 1, wherein the first object comprises a first data structure, and wherein the second object comprises a second data structure.

### Claim 32 (depends on 31)

The method of claim 31, wherein the first data structure comprises a first file in a file system, and wherein the second data structure comprises a second file in the file system.

### Claim 33 (depends on 31)

The method of claim 31, wherein the first data structure comprises a first user account, and wherein the second data structure comprises a second user account.

### Claim 34 (depends on 31)

The method of claim 31, wherein the first data structure comprises a first database record, and wherein the second data structure comprises a second database record.

### Claim 35 (depends on 1)

The method of claim 1, wherein the first object comprises a first physical object, and wherein the second object comprises a second physical object.

### Claim 36 (depends on 18)

The non-transitory computer-readable medium of claim 18, wherein the first IT subsystem comprises a first device, and wherein the second IT subsystem comprises a second device.

### Claim 37 (depends on 18)

The non-transitory computer-readable medium of claim 18, wherein the first IT subsystem comprises a first software application, and wherein the second IT subsystem comprises a second software application.

### Claim 38 (depends on 37)

The non-transitory computer-readable medium of claim 37, wherein the first software application comprises a first operating system, and wherein the second software application comprises a second operating system.

### Claim 39 (depends on 18)

The non-transitory computer-readable medium of claim 18, wherein the first portion comprises a first filename, and wherein the second portion comprises a second filename.

### Claim 40 (depends on 18)

The non-transitory computer-readable medium of claim 18, wherein the first object comprises a first data structure, and wherein the second object comprises a second data structure.

### Claim 41 (depends on 40)

The non-transitory computer-readable medium of claim 40, wherein the first data structure comprises a first file in a file system, and wherein the second data structure comprises a second file in the file system.

### Claim 42 (depends on 40)

The non-transitory computer-readable medium of claim 40, wherein the first data structure comprises a first user account, and wherein the second data structure comprises a second user account.

### Claim 43 (depends on 40)

The non-transitory computer-readable medium of claim 40, wherein the first data structure comprises a first database record, and wherein the second data structure comprises a second database record.

### Claim 44 (depends on 18)

The non-transitory computer-readable medium of claim 18, wherein the first object comprises a first physical object, and wherein the second object comprises a second physical object.

### Claim 45 (depends on 1)

The method of claim 1, wherein (F) further comprises:
(F2) determining that a first policy that applies to the first object differs from a second policy that applies to the second object; and
(F3) performing an action in response to the determination of (F2).

### Claim 46 (depends on 45)

The method of claim 45,
wherein the action comprises instructing a computer system to perform the action on the second object.

### Claim 47 (depends on 1)

The method of claim 1, wherein (F) further comprises:
(F2) determining that a pattern of usage of the first object and the second object violates a usage policy; and
(F3) performing an action in response to the determination of (F2).

### Claim 48 (depends on 18)

The non-transitory computer-readable medium of claim 18, wherein (F) further comprises:
(F2) determining that a first policy that applies to the first object differs from a second policy that applies to the second object; and
(F3) performing an action in response to the determination of (F2).

### Claim 49 (depends on 48)

The non-transitory computer-readable medium of claim 48, wherein the action comprises instructing a computer system to perform the action on the second object.

### Claim 50 (depends on 18)

The non-transitory computer-readable medium of claim 18, wherein (F) further comprises:
(F2) determining that a pattern of usage of the first object and the second object violates a usage policy; and
(F3) performing an action in response to the determination of (F2).
