A computer-implemented method of providing information to a user, the method comprising: determining a current situation of said user, said current situation comprising a current time and a current location; finding first proximity relationships between people, things, and said current situation of said user, said people and things being items, said first proximity relationships being defined based on factors comprising a time between those items that are associated with times, wherein a graph is used as a basis to find proximity relationships, wherein existing relationships between people and/or things are expressed in the graph in the form of labeled edges, and an algorithm is used to assess the proximity of the user's current situation to the items represented in the graph; assigning levels to said items based on said first proximity relationships, such that items that are determined to be more proximate to said user are assigned higher levels than items that are determined to be less proximate to said user; displaying items on a screen in a way that visually shows said levels to which said items are assigned; receiving an indication from the user to center focus on a first one of said items; recalculating the way in which to display the various items in the graph by evaluating the proximity between the various items in the graph and the indicated item, comprising finding second proximity relationships between people, things, and said first one of said items, and re-assigning levels to said items based on said second proximity relationships, such that items that are determined to be more proximate to said first one of said items are assigned higher levels than items that are determined to be less proximate to said first one of said items; and displaying items based on proximity to re-centered position and relationship to user, wherein said items that are displayed on said screen are filtered based on whether said items have an existing relationship to said user. determining a current situation of said user, said current situation comprising a current time and a current location; finding first proximity relationships between people, things, and said current situation of said user, said people and things being items, said first proximity relationships being defined based on factors comprising a time between those items that are associated with times, wherein a graph is used as a basis to find proximity relationships, wherein existing relationships between people and/or things are expressed in the graph in the form of labeled edges, and an algorithm is used to assess the proximity of the user's current situation to the items represented in the graph; assigning levels to said items based on said first proximity relationships, such that items that are determined to be more proximate to said user are assigned higher levels than items that are determined to be less proximate to said user; displaying items on a screen in a way that visually shows said levels to which said items are assigned; receiving an indication from the user to center focus on a first one of said items; recalculating the way in which to display the various items in the graph by evaluating the proximity between the various items in the graph and the indicated item, comprising finding second proximity relationships between people, things, and said first one of said items, and re-assigning levels to said items based on said second proximity relationships, such that items that are determined to be more proximate to said first one of said items are assigned higher levels than items that are determined to be less proximate to said first one of said items; and displaying items based on proximity to re-centered position and relationship to user, wherein said items that are displayed on said screen are filtered based on whether said items have an existing relationship to said user.