1. A method comprising: providing a system accessible over a network to users, wherein the system includes a social graph; providing in the social graph a first type of node, a user ghost user ghost node, and a first type of edge, a user ghost edge; providing in the social graph a second type of node, a system-provided node, and a second type of edge, a system-provided edge; using at least one electronic processor, maintaining the social graph comprising: allowing a plurality of system-provided nodes of the social graph to be directly coupled to other system-provided nodes by system-provided edges, wherein system-provided nodes and system-provided edges include information gathered by the system; allowing a plurality of user ghost nodes of the social graph to be directly coupled to system-provided nodes by user ghost edges, wherein user ghost edges include information specified by users of the system; disallowing user ghost nodes from being directly coupled to other user ghost nodes or to system-provided nodes using system-provided edges; and disallowing system-provided nodes from being directly coupled to other system-provided nodes using user ghost edges; crawling a network of unstructured information data sources to obtain first information; filtering the first information to obtain second information; storing the second information on a server; creating a first system-provided node in the social graph using the second information; coupling the first system-provided node to a second system-provided node in the social graph using a first system-provided edge, wherein the first system-provided edge specifies a relationship of the first and second system-provided nodes derived from the second information, and the first and second system-provided nodes have a first degree of separation, and the second system-provided node is coupled to a third system-provided node using a second system-provided edge, and the first and third system-provided nodes have a second degree of separation; allowing a first user to become a member of a system; creating a first user ghost node for the first user, wherein the first user ghost node is associated with information received from the first user; coupling the first user ghost node to the first system-provided node using a first user ghost edge based on information specified by the first user; providing a second user that is a member of the system and comprises a second user ghost node, wherein the second user ghost node is coupled to the second system-provided node using a second user ghost edge; providing a graphical user interface through which the first user can access third information stored in the social graph comprising a path in the social graph, wherein the second user and its second user ghost node and second user ghost edge are not visible to the first user; and when determining the path in the social graph for the first user, traversing user ghost edges of the first user, which comprises the first user ghost edge, and not traversing user ghost edges of the second user, which comprises the second user ghost edge, wherein the path for the first user includes first, second, and third system-provided nodes having first, second, and third degrees of separation, respectively, from the first user ghost node through the first user ghost edge, and does not include the second user ghost node and the second user ghost edge.