Patent ID: 7539697

Claim:
A computerized method of creating and maintaining a relationship graph having nodes representing entities and edges representing relationships between entities, the method comprising: receiving data extracted from a private data source on a client device by a data extractor module, the received data being associated with a new entity and being in accordance with privacy criteria specified by a user, the privacy criteria prohibiting an extraction of at least one pre-defined type of data from the private data source on the client device, the at least one pre-defined type of data relating to a type of contact information; adding a new node created from the received data to the relationship graph for the new entity; calculating a strength of relationship value for a relationship between the new entity and an existing entity represented by an existing node in the relationship graph, the strength of relationship value being calculated based on a calculated quality of contact between the new entity and the existing entity and a frequency of contact between the new entity and the existing entity, wherein the quality of contact is calculated automatically based, at least in part, on what contact information is possessed by the new entity for the existing entity, without requiring a user to specify a quality of contact value; creating an edge to represent the relationship in the relationship graph; assigning the corresponding strength of relationship value to the edge linking the new node and the existing node; automatically comparing the received data to existing data in any existing node to determine if any conflicts exist between the received data and the existing data, the existing data pertaining to the new entity or the existing entity; and automatically reconciling, without user input, the received data with the existing data if a conflict is detected between the received data and the existing data, wherein reconciling includes determining an accuracy of the existing data and an accuracy of the received data, updating the existing data based on the received data if the received data has a higher accuracy, and updating the received data based on the existing data if the existing data has a higher accuracy.