In-database connectivity components analysis of data
AssigneePivotal Software, Inc.
InventorsMichael Brand, Florian Schoppmann, Chunsheng Fang, Jarrod James Vawdrey, Emily Kawaler
Life of this patent
Estimating the term…
Abstract
A method determines the connectivity components defined by a set of relations over a set of data elements. For each first data element of a selected subset of data elements, a second data element that is linked to the first data element by a path of relations is selected as its representative, using a randomization process. A new set of relations is created by replacing each first data element of the subset by its representative in at least part of the set of relations.
Claims18
A computer-implemented method for determining connectivity components defined by an input set of relations over an input set of data elements, wherein a connectivity component is a subset of the input set data elements that are pair-wise connected such that no other data element of the input set can be added to the subset that is connected to any of the data elements of the subset, and wherein two data elements are connected whenever the two data elements are related by a relation in the set of relations or a path of relations between data elements exists that connects the two data elements, the method comprising:
- performing the following actions of selecting and forming iteratively beginning with a set of data elements that is the input set of data elements and a set of relations that is the input set of relations, and at each subsequent iteration using the contracted set of data elements as the set of data elements and the contracted set of relations as the set of relations, until the contracted set of relations is empty:
- selecting a respective representative for each data element, each representative being a data element in the set of data elements, to form a contracted set of data elements, the selecting comprising:
- assigning a random number to each data element in the set of data elements;
- identifying for each data element a respective group of data elements that includes the data element and all other data elements that are related to the data element;
- selecting as the respective representative a particular data element in the respective group that has an assigned random number with a predetermined random number position among the data elements in the respective group;
- and
- replacing each data element with the representative of the data element to form a contracted set of data elements;
- forming a contracted set of relations over the contracted set of data elements, the forming comprising:
- defining two representatives in the contracted set of data elements as related in the contracted set of relations if the two representatives represent data elements that were connected in the set of relations;
- and
- defining all other pairs of data elements in the contracted set of data elements as not related in the contracted set of relations;
- whereby, when the contracted set of relations is empty, each data element in the contracted set of data elements is an isolated data element, an isolated data element being a data element that is not related to any other data element in the contracted set of data elements;
- and
- outputting each isolated data element as a respective representative of a respective connectivity component of the input set of data elements, each connectivity component of the input set of data elements being representing by a distinct isolated data element.
Non-transitory computer-readable storage media encoded with computer program instructions for determining connectivity components defined by an input set of relations over an input set of data elements, wherein a connectivity component is a subset of the input set data elements that are pair-wise connected such that no other data element of the input set can be added to the subset that is connected to any of the data elements of the subset, and wherein two data elements are connected whenever the two data elements are related by a relation in the set of relations or a path of relations between data elements exists that connects the two data elements, the instructions when executed by one or more computers causing the one or more computers to perform operations comprising:
- performing the following actions of selecting and forming iteratively beginning with a set of data elements that is the input set of data elements and a set of relations that is the input set of relations, and at each subsequent iteration using the contracted set of data elements as the set of data elements and the contracted set of relations as the set of relations, until the contracted set of relations is empty:
- selecting a respective representative for each data element, each representative being a data element in the set of data elements, to form a contracted set of data elements, the selecting comprising:
- assigning a random number to each data element in the set of data elements;
- identifying for each data element a respective group of data elements that includes the data element and all other data elements that are related to the data element;
- selecting as the respective representative a particular data element in the respective group that has an assigned random number with a predetermined random number position among the data elements in the respective group;
- and
- replacing each data element with the representative of the data element to form a contracted set of data elements;
- forming a contracted set of relations over the contracted set of data elements, the forming comprising:
- defining two representatives in the contracted set of data elements as related in the contracted set of relations if the two representatives represent data elements that were connected in the set of relations;
- and
- defining all other pairs of data elements in the contracted set of data elements as not related in the contracted set of relations;
- whereby, when the contracted set of relations is empty, each data element in the contracted set of data elements is an isolated data element, an isolated data element being a data element that is not related to any other data element in the contracted set of data elements;
- and
- outputting each isolated data element as a respective representative of a respective connectivity component of the input set of data elements, each connectivity component of the input set of data elements being representing by a distinct isolated data element.
A database system comprising one or more computers programmed for determining connectivity components defined by an input set of relations over an input set of data elements, wherein a connectivity component is a subset of the input set data elements that are pair-wise connected such that no other data element of the input set can be added to the subset that is connected to any of the data elements of the subset, and wherein two data elements are connected whenever the two data elements are related by a relation in the set of relations or a path of relations between data elements exists that connects the two data elements, wherein the one or more computers of the database system are programmed perform operations comprising:
- performing the following actions of selecting and forming iteratively beginning with a set of data elements that is the input set of data elements and a set of relations that is the input set of relations, and at each subsequent iteration using the contracted set of data elements as the set of data elements and the contracted set of relations as the set of relations, until the contracted set of relations is empty:
- selecting a respective representative for each data element, each representative being a data element in the set of data elements, to form a contracted set of data elements, the selecting comprising:
- assigning a random number to each data element in the set of data elements;
- identifying for each data element a respective group of data elements that includes the data element and all other data elements that are related to the data element;
- selecting as the respective representative a particular data element in the respective group that has an assigned random number with a predetermined random number position among the data elements in the respective group;
- and
- replacing each data element with the representative of the data element to form a contracted set of data elements;
- forming a contracted set of relations over the contracted set of data elements, the forming comprising:
- defining two representatives in the contracted set of data elements as related in the contracted set of relations if the two representatives represent data elements that were connected in the set of relations;
- and
- defining all other pairs of data elements in the contracted set of data elements as not related in the contracted set of relations;
- whereby, when the contracted set of relations is empty, each data element in the contracted set of data elements is an isolated data element, an isolated data element being a data element that is not related to any other data element in the contracted set of data elements;
- and
- outputting each isolated data element as a respective representative of a respective connectivity component of the input set of data elements, each connectivity component of the input set of data elements being representing by a distinct isolated data element.
Dependencies are inferred from the claim text.