Abstract:
A system and a method are disclosed for creating a default network from a social network computing system. The default network contains user profiles of users who have one or more attributes in common. The attributes on which a default network is based may be chosen for users or may be chosen by users according to interest. A default network is used to suggest that a user having a user profile in the default network establish a connection with another user whose user profile is in the same default network. Users with user profiles in the same default network may participate in interactions such as making referrals, sharing content, and posing questions. User profiles in a default network may be filtered for display according to characteristics of user profiles.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims the benefit of U.S. Provisional Application No. 61/889,006, filed Oct. 9, 2013, which is incorporated by reference in its entirety. 
     
    
     BACKGROUND 
       [0002]    1. Field of Art 
         [0003]    The disclosure generally relates to the field of social networking, and more particularly, to connecting users of a social network. 
         [0004]    2. Description of the Related Art 
         [0005]    Users of a social network generally seek both to interact with contacts they have already met and to meet new contacts. Though some social networks allow a user to manually initiate connections to other users, the number of potential connections is potentially overwhelming. Users may be disinclined to search for users whom they have not already met. Although some social networks present options for filtering of potential contacts, users may not use these options due to lack of insight about which filters may yield worthwhile contacts. Users of social networks can also face problems arising from overly extensive social networks. Once a user&#39;s social network has too many users with dissimilar interests, the social network loses its value for disseminating relevant content. Although some social networks allow for manual categorization of contacts, the network&#39;s sheer number of contacts may dissuade users from thoroughly categorizing their contacts. 
     
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         [0006]    The disclosed embodiments have other advantages and features which will be more readily apparent from the detailed description, the appended claims, and the accompanying figures (or drawings). A brief introduction of the figures is below. 
           [0007]      FIG. 1  illustrates one embodiment of components of an example machine able to read instructions from a machine-readable medium and execute them in a processor (or controller). 
           [0008]      FIG. 2  illustrates an architectural configuration used to implement one example embodiment of a default network computing system. 
           [0009]      FIG. 3  illustrates a block diagram of a network server used to implement the default network computing system in one embodiment. 
           [0010]      FIG. 4  illustrates an entry in a user profile store in one embodiment. 
           [0011]      FIG. 5  illustrates an entry in a connection store in one embodiment. 
           [0012]      FIG. 6  illustrates an entry in a connection request store in one embodiment. 
           [0013]      FIG. 7  illustrates a flow chart of an example process to handle connection requests in an embodiment of a connection engine. 
           [0014]      FIG. 8  illustrates a flow chart of an example process to group users into default networks in an embodiment of a default network engine. 
           [0015]      FIG. 9  illustrates a flow chart of an example process to filter users for display in an embodiment of a user interface engine. 
           [0016]      FIG. 10  illustrates an example user interface for creating and handling connection requests in one embodiment. 
           [0017]      FIG. 11  illustrates an example user interface to view filtered users in one embodiment. 
       
    
    
     DETAILED DESCRIPTION 
       [0018]    The Figures (FIGS.) and the following description relate to preferred embodiments by way of illustration only. It should be noted that from the following discussion, alternative embodiments of the structures and methods disclosed herein will be readily recognized as viable alternatives that may be employed without departing from the principles of what is claimed. 
         [0019]    Reference will now be made in detail to several embodiments, examples of which are illustrated in the accompanying figures. It is noted that wherever practicable similar or like reference numbers may be used in the figures and may indicate similar or like functionality. The figures depict embodiments of the disclosed system (or method) for purposes of illustration only. One skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles described herein. 
       Configuration Overview 
       [0020]    One embodiment of a disclosed system, method, and computer readable storage medium is disclosed for creating a default network from user profiles in a default network computing system. User profiles are created by users of the default network computing system. In response to a request from a viewing user, a default network is created for that user&#39;s user profile. The default network contains user profiles having one or more attributes in common with the requesting user&#39;s user profile. The default network computing system includes one or more client devices connected to a network server through a network. The client devices are used by users to view and interact with the default network computing system. The network server stores the user profiles and other data relevant to the default network computing system and prepares the data for display to provide to a user of a client device. 
         [0021]    The default network computing system connects the one or more client devices with the network server. The network server stores data relating to user profiles, user profile pages, connections between users, pending connections requests between users, default networks associated with users, and previous interactions between one or more users on the default network. The network server additionally processes data to create and update connections and default networks. The network server also filters and organizes user profiles for display to a user. User profile data is stored in user profile entries, and connections between users are stored as connection entries and connection request entries. Further entries may record user interactions and membership in a default network. 
         [0022]    A disclosed embodiment to create connections within the default network includes configuring a system to receive connections, checking a user&#39;s receptiveness to connections, creating a connection request, and informing the connection request&#39;s recipient. If the connection request recipient accepts a connection, then a connection entry is created and the connection request entry is updated. After a connection request is accepted, the requesting user is notified. To create or update a shared network, a user profile is selected, and one or more attributes of the received user profile are retrieved. The user profile is added to a default network containing user profiles having one or more attributes in common with the selected user profile. User profiles in the default network are displayed for a viewing user. To display user profiles in a default network or other group of user profiles, filtering criteria may be received from viewing a user to filter user profiles from a group of user profiles. User profiles that pass the filter may be selected for a subset of displayed user profiles. User interfaces may display suggested user profiles for establishing connections. User interfaces may also display directories of user profiles in the default network computing system. 
       Computing Machine Architecture 
       [0023]      FIG. 1  is a block diagram illustrating components of an example machine able to read instructions from a machine-readable medium and execute them in a processor (or controller). Specifically,  FIG. 1  shows a diagrammatic representation of a machine in the example form of a computer system  100  within which instructions  124  (e.g., software) for causing the machine to perform any one or more of the methodologies discussed herein may be executed. In alternative embodiments, the machine operates as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine may operate in the capacity of a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. 
         [0024]    The machine may be a server computer, a client computer, a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a cellular telephone, a smartphone, a web appliance, a network router, switch or bridge, or any machine capable of executing instructions  124  (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute instructions  124  to perform any one or more of the methodologies discussed herein. 
         [0025]    The example computer system  100  includes a processor  102  (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), one or more application specific integrated circuits (ASICs), one or more radio-frequency integrated circuits (RFICs), or any combination of these), a main memory  104 , and a static memory  106 , which are configured to communicate with each other via a bus  108 . The computer system  100  may further include graphics display unit  110  (e.g., a plasma display panel (PDP), a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)). The computer system  100  may also include alphanumeric input device  112  (e.g., a keyboard), a cursor control device  114  (e.g., a mouse, a trackball, a joystick, a motion sensor, or other pointing instrument), a storage unit  116 , a signal generation device  118  (e.g., a speaker), and a network interface device  120 , which also are configured to communicate via the bus  108 . 
         [0026]    The storage unit  116  includes a machine-readable medium  122  on which is stored instructions  124  (e.g., software) embodying any one or more of the methodologies or functions described herein. The instructions  124  (e.g., software) may also reside, completely or at least partially, within the main memory  104  or within the processor  102  (e.g., within a processor&#39;s cache memory) during execution thereof by the computer system  100 , the main memory  104  and the processor  102  also constituting machine-readable media. The instructions  124  (e.g., software) may be transmitted or received over a network  126  (e.g., WiFi, 3G, 4G, Ethernet, digital subscriber line (DSL), fiber optic network) via the network interface device  120 . 
         [0027]    While machine-readable medium  122  is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) able to store instructions (e.g., instructions  124 ). The term “machine-readable medium” shall also be taken to include any medium that is capable of storing instructions (e.g., instructions  124 ) for execution by the machine and that cause the machine to perform any one or more of the methodologies disclosed herein. The term “machine-readable medium” includes, but not be limited to, data repositories in the form of solid-state memories, optical media, and magnetic media. 
       Example Architectural Configuration 
       [0028]    Referring now to  FIG. 2 , illustrated is a block diagram of a default network computing system  200  in an example embodiment. The default network computing system  200  includes one or more client device  210  (e.g., a personal computer, a tablet, a smartphone, a cellular phone, a terminal, a smart television, a personal digital assistant (PDA), a smart watch, a wearable computer), a network  126 , and a network server  230 . A computer system  100  may be used in some embodiments of the client device  210  and/or network server  230 . The one or more client devices  210  are coupled to the network  126 , which is in turn coupled to the network server  230 . In an alternate embodiment, additional networks  126 , client devices  210 , and/or network servers  230  may be present. For example, an additional network server  230  may act as a proxy server between the one or more client devices  210  and another network server  230 . 
         [0029]    The one or more client devices  210  may be used by users to view, upload, and submit, and interact with content in the default network. For example, a user may provide a numerical rating of content uploaded by another user. Users of the one or more client devices  210  may create user profiles and may connect their user profile on the default network to other user profiles on the default network. Users of the one or more client devices  210  may declare or modify preferences governing their user profile and/or content they upload. For example, a user may limit who may view content that the user has uploaded. In an example embodiment, HyperText Markup Language (HTML) code is used to display content on a client device  210 . Alternate embodiments may use Extensible Markup Language (XML) or JavaScript Object Notation (JSON). A client device  210  may be associated with a single user profile, or the client device  210  may be associated with multiple user profiles. In an embodiment, a user may access their user profile through multiple client devices  210 . 
         [0030]    In one embodiment, the network server  230  stores data about the default network including user profiles, content, and connections between users. The network server  230  may retrieve and/or process data as requested by users of client devices  210 . In an example embodiment, HyperText Transfer Protocol (HTTP) may be used to exchange or transfer data between a network server  230  and a client device  210  using HTTP methods including GET, POST, PUT, and DELETE. In an alternate embodiment, some or all of the processing and/or storing functions of the network server  230  may be performed by one or more client devices  210  alone or in combination with a network server  230 . In an alternate embodiment, a single device may implement components of a client device  210  and a network server  230 . 
         [0031]    Referring now to  FIG. 3 , illustrated is a block diagram of a network server  230  used to implement the default network in one embodiment. The network server  230  contains a user profile store  305 , a connection store  310 , a connection request store  315 , a connection engine  320 , a default network engine  325 , a user interface engine  330 , a default network store  335 , and an interaction store  340 . The user profile store  305  contains information that a user has provided (e.g., a user profile created by a user). The connection store  310  stores, using connection entries, one or more connections made between users using their user profiles. In an embodiment, the connections are stored as connection entries between a particular user profile and another user profile, but alternate embodiments may include connection entries associating three or more users. The connection request store  315  stores pending connection requests as connection request entries. When a first user requests a connection with a second user, then there is a pending connection until the second user chooses to accept or ignore the requested connection. In an alternate embodiment, the second user may deny, delete, or otherwise rebuff the connection request from the first user. 
         [0032]    The connection engine  320 , which may be configured with elements similar to the computer system  100 , implements a process for creating connection entries and processing connection request entries. The connection engine  320  retrieves and/or modifies data from the user profile store  305 , the connection store  310 , and/or the connection request store  315 . The default network engine  325 , which may be configured with elements similar to the computer system  100 , uses information from the user profile store  305  to create one or more default networks for a user profile in the default network computing system  200 . In one embodiment, the default network engine  325  may store, read, and/or modify data in the default network store  335 . In an alternate embodiment, the default network engine  325  may use information from the connection store  310 , the connection request store  315 , and/or interaction store  340  to create one or more default networks. In an alternate embodiment, the default network engine  325  may receive inputs through an Application Programming Interface (API) and return information about a constructed default network, including user profiles in the default network and attributes on which the default network is based, through the API. 
         [0033]    The default network store  330  stores data relating to a default network. In an embodiment, a default network is created for a particular user profile based on one or more attributes. An example entry in this default network store  330  may include a unique user identification (ID) for the particular user profile, user IDs of user profiles in the default network, and common attributes of those user profiles in the default network. In an alternate embodiment, default networks are created based on or more attributes but not for a particular user profile. In the alternate embodiment, an example entry in the default network store  330  may include a unique default network ID, the attributes used to create the default network, and the user IDs of user profiles in the default network. In the alternate embodiment, a user profile entry  400  in the user profile store  305  may include a field containing default network IDs corresponding to the default networks containing the user profile. 
         [0034]    The user interface engine  335 , which may be configured with elements similar to the computer system  100 , creates interfaces to provide for display on a client device  210 . Example interfaces may be structured to display a user profile page, connections of a user profile, pending connections, potential connections, one or more connections in a default network, content submitted by a user, interactions between one user profile and another user profile, and/or aggregations of user interactions. Example interfaces may be structured to display data passively and/or accept input from the user of a client device  210 . The user interface engine  335  may retrieve, store, and/or modify data from the user profile store  305 , the connection store  310 , the connection request store  315 , the default network store  330 , and/or the interaction store  340 . 
         [0035]    The interaction store  340  contains entries recording interactions between users. For example, the interaction store  340  may record when a user chooses to follow another user&#39;s user profile, to state interest in another&#39;s user profile, to state another&#39;s user profile as a favorite, to share content with another user, to comment on content, to rate content, up vote or like content, to make or fulfill a request, to ask or answer a question, to request or make a referral, to search for content, to search for a user profile, or to view content. Entries in the interaction store  340  may include fields identifying the interaction type, an interaction identification (ID), a user ID of the user who initiated the interaction, a user ID of a user profile at which an interaction is directed, a time the interaction occurred, a time the interaction was updated, an interaction ID corresponding to another interaction responsive to the interaction, a message included in the interaction, and other fields relevant to the particular interaction. 
       User and Connection Data 
       [0036]    Referring now to  FIGS. 4 through 6 , illustrated are entries to store user and connection data, in one embodiment. In one embodiment, data stores (e.g.,  305 ,  310 ,  315 ,  335 ,  340 ) are implemented in a Relational Database Management System (RDBMS) implemented by programming languages such as Structured Query Language (SQL), PostgreSQL, MySQL, SQL Server, or Oracle. A user profile entry  400  contains, for example, all or a subset of a user identification (ID) field  402 , a first name field  404 , a last name field  406 , a location field  408 , a company field  410 , a title field  412 , an account type field  414 , an expertise field  416 , and a practice area field  418 . The user profile entry  400  implements one embodiment of the user profile store  305 . The user ID field  402  is a unique identifier for a particular user profile and may be used to refer to the user profile whenever the user profile is referenced in other data entries. The first name field  404  and the last name field  406  are provided by the user upon profile creation. In one embodiment, the first name field  404  and/or last name field  406  may be omitted for purposes of anonymity. The location field  408  may comprise one or more of cities, states, provinces, territories, countries, regions, postal codes, telephone area codes, countries, addresses, geospatial coordinates, or any combination thereof. The company field  410  indicates where a user works. The title field  412  indicates a user&#39;s job title. 
         [0037]    The account type field  414  indicates what type of account a user has with the default network computing system. For example, a user may have a free membership, or a paid membership. In an embodiment, there may be a plurality of paid membership types having access to varying features of the default network. Example account types may include “Standard” for basic access, “Premium” for enhanced access, and “Enterprise” for companies or other groups. The expertise field  416  indicates specialized knowledge that a user may have (e.g., trademarks, Sarbanes-Oxley compliance, anesthetic hypersensitivity screening, heat exchanger design, baroque chamber music). Practice area may indicate more broadly what a user knows (e.g., intellectual property law, public corporation accounting, anesthesia, process engineering, historical Western music). In an alternate embodiment, a field may specify a plurality of data such as first names, last names, locations, companies, titles, areas of expertise, and/or practice areas. An alternate embodiment may contain fewer data fields and/or additional data fields such as time created, time updated, email address, account password, account payment information, phone number, professional certifications, publications, previous work history, prior projects, educational data, user preferences and settings, and other personal data a user chooses to upload to the user&#39;s profile. For example, a user may upload an image as a user profile picture, and the corresponding image file (or a reference to said file) may be included in the user profile entry  400 . 
         [0038]    A connection entry  500  contains a user ID field  502 , a colleague ID field  504 , a time created field  506 , and a time updated field  508 . The connection entry  500  implements one embodiment of the connection store  310 . The user identification (ID) field  502  is a unique identifier to reference a first user profile and to link together separate data entries concerning a user. In one embodiment, the user ID  502  for the first user profile is identical to the user ID field  402  in the first user&#39;s user profile entry  400 . The colleague identification (ID) field  504  is a unique identifier to reference a second user profile. In one embodiment, the colleague ID field  504  for the second user is identical to the user ID field  402  in the second user&#39;s user profile entry  400 . In an embodiment, the user ID  502  corresponds to a user who requested a connection and the colleague ID  504  corresponds to a user who accepted the requested connection. The time created field  506  is the time at which the connection entry  500  was created. In an embodiment, the time created field  506  is when a connection request was accepted. The time updated field  508  is the most recent time at which part of the connection entry  500  was updated. The time updated may indicate when a user ID field  502  or colleague ID  504  field was modified, or may refer to a time at which the connection entry  500  was last verified. 
         [0039]    A connection request entry  600  contains a sender ID field  602 , a recipient ID field  604 , a time created field  606 , a time updated field  608 , a time accepted field  610 , and a request message field  612 . The connection request entry  600  implements one embodiment of the connection store  310 . The user identification (ID) field  602  is a unique identifier referencing the user profile that sent the connection request. In one embodiment, the sender ID field  602  for a first user is identical to the user ID field  402  in the first user&#39;s user profile entry  400 . The recipient identification (ID) field  604  is a unique identifier to reference a user profile to which a connection request was sent. In one embodiment, the recipient ID field  604  for a second user profile is identical to the user ID field  402  in the second user&#39;s user profile entry  400 . 
         [0040]    The time created field  606  is the time at which the connection request entry  600  was created. In an embodiment, the time created field  606  is when a connection request was sent. The time updated field  608  is the most recent time at which part of the connection request entry  600  was updated. The time updated may indicate when a sender ID field  602  or recipient ID field  604  was modified, or may refer to a time at which the connection request entry  600  was last verified. The time accepted field  610  is the time when a connection request was accepted. If the connection request corresponding to the connection request entry  600  is pending, then the time accepted field  610  may be undefined or empty. In an alternate embodiment, the connection request entry may have data fields for time responded and/or response type in addition to and/or in place of the time accepted field  610 . Data fields corresponding to events like the time created  506 ,  606 , the time updated  508 ,  608  and the time accepted  610  may contain both a date and a time. In one embodiment, these data fields may contain both a universal time and a local time (i.e., the local time for the user performing the action). The request message field  612  is a text input by the user who sent the connection request addressed to the recipient of the connection request. In one embodiment, the request message field  612  may be undefined or empty because a user did not enter a request message. 
       Creating Connections 
       [0041]    Referring now to  FIG. 7 , illustrated is a flowchart of an example process to handle connection requests in an embodiment of the connection engine  320 . The connection handling process  700  receives  710  a connection request, checks  720  a user&#39;s receptiveness to connections, creates  730  a connection request, sends  740  a connection request message, receives  750  a connection request response, updates  760  connection data, and notifies  770  the user. A sender user creates a connection request using a user interface to select a connection with a recipient user. The connection request is received  710  by the default network server  230  through the user interface engine  335  or through an API. The connection request is checked  720  to determine if the connection request recipient is receptive to connections, which may be done according to preferences found in the user profile store  205  or, in an alternate embodiment, in a dedicated store for user privacy preferences. In an embodiment, the connection request is checked  720  to prevent users having different account type field  414  values from creating a connection. A connection request is created  730  by, in an embodiment, creating a connection request  600  entry in the connection request store  315 . 
         [0042]    A connection request is sent  740  to the recipient of the connection request. The connection request may be delivered by a message through the default network computing system, an email message, a text message to a phone with Short Message Service (SMS) or Multimedia Messaging Service (MMS), or a push notification to a smart phone, for example. Once the connection request recipient has chosen to accept or ignore a connection request, a connection request response  750  is received. How connection data is updated  760  depends on which response is received  750 . If the connection request was accepted, then a connection entry  500  is created and the time accepted field  610  is updated in the connection request entry  600 . If the connection request was ignored, then no connection entry  500  is created. In an embodiment, the connection request entry  600  is removed when an ignore connection request response is received  750 . In an alternate embodiment, the ignore connection response is stored and used to prevent the sending user from further requesting a connection from the recipient user. The process for creating connections then notifies  770  the connection request sender of whether the connection request was accepted or denied. In an alternate embodiment, the sender is notified when a connection is accepted but not when a connection request is denied or ignored. 
       Creating a Default Network 
       [0043]    Referring now to  FIG. 8 , illustrated is an example process to create a default network. The default network creation process  800  selects  810  a user profile, retrieves  820  attributes from the selected user profile, identifies  830  a relevant default network, adds  840  the user profile to the identified default network, and provides  850  for display the default network. A user profile may be selected  810  for placement in a default network when a viewing user requests to see the default network containing the viewing user&#39;s user profile. In alternate embodiments, user profiles may be selected  810  when the user profile is created in the default networking environment  200 , when a user requests placement of the user&#39;s user profile into a default network, when the attributes in a user profile are modified and/or added, or when a periodic routine chooses one or more unaffiliated user profiles for inclusion in a default network. In an embodiment, the default network computing system may select  810  user profiles that are not colleagues (i.e., user profiles having the same company field  410 ) with the viewing user. In an alternate embodiment, user profiles are selected regardless of employer. In an embodiment, a user profile may be part of one default network. In an alternate embodiment, user profiles may be part of more than one default network. 
         [0044]    One or more user attributes are retrieved  820  from the selected user profile. In one embodiment, attributes retrieved may include attributes provided by the user and stored in the user profile store  305 . In an alternate embodiment, attributes may be inferred from the user interaction store  340 . Examples of attributes may be retrieved  820  from the location field  408 , company field  410 , title field  412 , account type field  414 , expertise field  416 , practice area field  418 , or any combination thereof. In an alternate embodiment, user attributes retrieved  820  may also include professional certifications, education, work history, demographic information, or any combination thereof. In one embodiment, attributes are retrieved according to defaults stored in the default network computing system. For example, default attributes may include account type and practice area. In an alternate embodiment, a user selects attributes to retrieve  820  as part of an input requesting that the user&#39;s user profile be placed in a default network. For example, if a user wants to connect with local practitioners in the same field, the user would select attributes like location (e.g., San Francisco) and a practice area (e.g., medical malpractice) when placing their user profile in a default network. In the example, the user&#39;s user profile would be placed in a default network with other user profiles having the same city (e.g., San Francisco) and practice area (e.g., medical malpractice). In an alternate embodiment, a user profile may be added to a default network using either attributes chosen by default or attributes selected by the user owning the user profile. 
         [0045]    After retrieving  820  attributes, a relevant default network is identified  830 . In an embodiment, default networks are defined by one or more attributes that the user profiles in the default network have in common. Consequently, the attributes retrieved  820  from the selected user lead to identification of a default network that contains users also having the retrieved attributes. For example, if the attributes retrieved are location and practice area, then the default network is composed of user profiles having the same values in the location field  408  (e.g., San Francisco) and practice area field  418  (e.g., medical malpractice law). In an alternate embodiment, user profiles in a default network share a minimum number of attributes out of a total number of retrieved attributes. For example, if location, account type, and practice area are retrieved  820 , then an identified default network may contain user profiles having two or more of the retrieved attributes in common with the selected user profile. In an alternate embodiment, a default network may be identified  830  based on user profiles having one or more mandatory attributes in common in addition to having a minimum of one or more other attributes in common. 
         [0046]    After identifying  830  a relevant default network in which to place the user profile that was selected  810 , the user profile is added  840  to the identified default network. In an embodiment, the selecting  810 , retrieving  820 , identifying  830 , and adding  840  may be repeated to add multiple user profiles to the default network. User profiles in a default network may be provided  850  for display, and/or stored temporarily. A record of user profiles in a default network may be stored in the default network store  330 . 
         [0047]    After adding  840  a user to a default network, user profiles in the default network are provided  850  for display (e.g., on a client device  210 ). Other user profiles in the same default network as a viewing user&#39;s user profile be displayed as part of an interface to recommend establishing connections, or may be displayed as a sortable list based on one or more characteristics of the user profiles. Characteristics used for sorting may include any of the fields  404 - 418  in a user profile entry  400 , time elapsed since last interaction with a user profile, time elapsed since establishing a connection with a user profile, number of mutual connection with a particular user profile, and any combination thereof. User profiles in a default network may be visible to viewing users having a user profile in the same default network. In an alternate embodiment, another user may view a listing of user profiles in a default network containing another user&#39;s user profile. 
       Filtering Users for Display 
       [0048]    Referring now to  FIG. 9 , illustrated is an example process to filter users for display in an embodiment of a user interface engine  335 . The user filtering process  900  receives  910  one or more criteria, retrieves  920  one or more user profiles, determines  930  a collection of user profiles, selects  940  a user profile subset, and provides the subset  950  for display. The one or more criteria received  910  may be chosen by a viewing user or may be chosen according to defaults chosen by administrators of the default network computing system. The one or more criteria received may include any of the fields  404 - 418  in a user profile entry  400 , time elapsed since last interaction with the viewing user&#39;s user profile, time elapsed since establishing a connection with the viewing user, number of mutual connection with the viewing user, and any combination thereof. 
         [0049]    User profiles are retrieved  920 . In one embodiment, the user profiles retrieved  920  are the user profiles in the same default network as the viewing user&#39;s user profile. In an alternate embodiment in which user profiles may be in multiple default networks, a viewing user may choose one or more default networks from which user profiles are to be filtered. From the user profiles that are retrieved  920 , a collection of user profiles is determined  930 . Each user profile in the collection of user profiles contains the received criteria. In an alternate embodiment, user profiles in the determined collection have more than a minimum number of the one or more received criteria. 
         [0050]    From the user profiles in the determined collection, a subset of user profiles is selected  940 . The user profile subset selected  940  may include as many as all user profiles in the determined collection, or may include one or more user profiles selected  940  at random from the determined collection of user profiles. The number of user profiles selected  940  for the subset may be limited. For example, a limited number of user profiles may be selected  940  based on the size of a display space on the client device  210 . In an alternate embodiment, one or more user attributes and/or characteristics may be used to select  940  a user profile subset. For example, user profiles may be selected  940  on proximity to the location in the user profile of a viewing user. As another example, user profiles may be selected  940  based on an alphabetic ordering of last names. As another example, user profiles of users who have requested a connection with the requesting user may be chosen  940  over user profiles of users who have not requested a connection with the viewing user. After a user profile subset is selected  940 , the user profiles in the subset are provided  950  for display. In one example, user profiles may be provided  950  for display on client device  210  as part of a filtered listing based on criteria chosen by a user and received  910  by the user interface engine  335 . 
       User Interface 
       [0051]    Referring to  FIG. 10 , illustrated is an example user interface for creating and handling connection requests in one embodiment of the disclosed configuration. The add connections interface  1000  includes a user identifier  1002 , a request connection button  1004 , a user select button  1006 , a connect selected button  1008 , an accept connection button  1010 , and user scrolling buttons  1014 . The add connections interface  1000  may present one or more user profiles of users with whom a viewing user is not connected, one or more user profiles of users requesting a connection with the visiting user, or a combination thereof. The user profiles may be chosen from a default network as created by the default network creation process  800 . 
         [0052]    User profiles that are displayed in the add connections interface  1000  are identified by a user identifier  1002 . For example, a user identifier may include user name, title, and user profile picture. If a user profile picture is unavailable, a default picture may be used. In an alternate embodiment, a user&#39;s name or title may be made anonymous for privacy. In an alternate embodiment, a combination of any of the factors in a user profile entry  400  may be listed (e.g., company or location). The request connection button  1004  may be selected by a user to request a connection with the corresponding user through the connection handling process  700 . The user select button  1006  may be used to select one or more users. After a user has selected one or more user profiles using the corresponding user select buttons  1006 , the user may select the connect selected button  1008  to initiate connection requests with the selected user profiles through the connection handling process  700 . When a user is sent  740  a connection request, the connection request may be displayed in the add connections interface  1000 . When a user has requested a connection, an accept connection button  1010  may appear in place of a request connection button  1004 . Selecting the accept connection button  1010  may create a connection entry  500  through the connection handling process  700 . In an alternate embodiment, a button allowing a user to ignore a connection request may also be included with a user who has requested a connection. 
         [0053]    In an embodiment, one or more user scrolling buttons  1014  enable a user to view additional user profiles besides those currently displayed. For example, selecting the left user scrolling button  1014 A may shift the displayed user profiles to the right. The right-most user profile may be hidden and a new user profile may be displayed on the left. For example, selection of the right user scrolling button  1014 B may shift displayed user profiles back to the left. A user profile that has become hidden due to the use of the left user scrolling button  1014 A may reappear on the right side, and a user profile that has appeared on the left may become hidden. In one embodiment, a user may view any user profile in the user&#39;s default network through use of a user scrolling button  1014 . In an alternate embodiment, a user may view a limited subset of user profiles as chosen in the user filtering process  900 . 
         [0054]    Referring to  FIG. 11 , illustrated is an example user interface to view filtered users in one embodiment of the disclosed configuration. The user directory interface  1100  includes a user listing  1110 , which contains a user identifier  1112 , a user select button, a connect selected button  1116 , and an alphabetical filter  1118 . The user directory interface  1110  further includes a selectable filters panel  1120  and a network selection panel  1130 , which contains a default network tab  1132 . Also included are socially suggested connections boxes  1140 , including a followed connections box  1140 A, a referred connections box  1140 B, and an interesting connections box  1140 C. 
         [0055]    User profiles that are displayed in the user directory interface  1100  are included in a user listing  1110 . The user listing  1110  may list a limited number of user profiles, but more user profiles may be displayed through the use of scroll buttons (not shown) in an embodiment. User profiles in the user listing  1110  are identified by a user identifier  1112 . For example, a user identifier may include user name, title, and user profile picture. If a user profile picture is unavailable, a default picture may be used. In an alternate embodiment, a user&#39;s name or title may be made anonymous for privacy. In an alternate embodiment, a combination of any of the factors in a user profile entry  400  may be listed (e.g., company or location). The user select button  1114  may be used to select one or more users. After a user has selected one or more user profiles using the corresponding user select buttons  1114 , the user may select the connect selected button  1116  to initiate connection requests with the selected user profiles through the connection handling process  700 . An alphabetical filter  1118  may be used to filter user profiles according to an alphabetical ordering of names (e.g., first letter of last name). For example, when “All” is selected, the user listing  1110  is populated with users without consideration for alphabetical filtering. When “E-H” is selected, for example, user profiles having a last name that begins with the letters E, F, G, or H are displayed. 
         [0056]    The selectable filters panel  1120  provides further filtering options to restrict which user profiles may appear in the user listing  1110 . The selectable filters panel  1120 , along with the alphabetical filter  1118 , provides characteristics used to determine  930  a collection of user profiles in the user filtering process  900 . Example filters include “My Favorites,” which removes from the user listing  1110  those user profiles that have not been marked as favorites by the viewing user. Another example filter is “Following,” which removes from the user listing  1110  those user profiles that have not been selected for following by the viewing users. The example filters “Practice Area” and “Expertise” prompt a user to select a practice area or expertise from a corresponding drop-down menu and remove from the user listing  1110  those users profiles that do not have the selected practice area or expertise, as stated in the corresponding user profile entries  400 . Similarly, the example “State” filter prompts a user to select a state from a drop-down menu and remove from the user listing  1110  those user profiles with a location, as stated in the corresponding user profile entries  400 , is not contained in the selected state. In an alternate embodiment, multiple filters from the selectable filters panel  1120  may be used to remove user profiles from the user listing  1110 . In an alternate embodiment, text input may be selected from the user in place of a drop-down menu in a filter. Another example filter is “Most Recent,” which removes from the user listing  1110  those user profiles with whom a user has not recently connected. In an alternate embodiment, the “Most Recent” filter removes from the user listing  1110  those user profiles with whom a user has not recently interacted (i.e., there are not recent entries in the user interaction store  340  concerning the removed users). “Recently” or “recent” may refer to actions occurring within a time period (e.g., the last week, the last month) that is selected by a user or is preset by the default network computing system. 
         [0057]    The network selection panel  1130  is used to select which user profiles are retrieved  920  in the user filtering process  900  for inclusion in the user listing  1110 . For example, the “All Connections” tab retrieves those user profiles with which a user has a connection in the connection store  310 . The example “My Colleagues” tab retrieves those users having the same company field  410  as the viewing user in the corresponding user profile entries  400 . The example “All Members” tab retrieves user profiles in the default network computing system. In an alternate embodiment, the “All Members” tab retrieves those user profiles in the default network having the same account type field  414  as the viewing user in the corresponding user profile entry  400 . The example “Invitations” tab retrieves those user profiles from whom the viewing user has received a request to connect. The “In-House Network” tab is an example of a default network tab  1132 . The default network tab  1132  retrieves user profiles for display that have been placed by the default network creation process  800  in the same default network as the viewing user&#39;s user profile. The example “In-House Network” tab retrieves user profiles indicating the users&#39; practice area is “In-House” for display in the user listing  1100 . In an alternate embodiment, the default network tab may be differently named to reflect the attributes on which the corresponding default network is based. 
         [0058]    The user directory interface  1100  may contain one or more socially suggested connections boxes  1140 , which may display to a viewing user one or more user profiles with whom the viewing user&#39;s connections have interacted. Example socially suggested connections boxes  1140  include the followed connections box  1140 A, the referred connections box  1140 B, and the interesting connections box  1140 C. The followed connections box  1140 A displays user profiles that the viewing user&#39;s connections are following. The referred connections box  1140 B displays user profiles that the viewing user&#39;s connections have referred. The interesting connections box  1140 C displays user profiles in which the viewing user&#39;s connections have stated an interest. If a user profile is displayed in a suggested connections box, in one embodiment, the viewing user is presented the option to follow the user profile, connect with the user profile, or declare the user profile as a favorite. If the displayed user is already connected to the viewing user, then the displayed user may be listed as “connected” instead of suggested as a recipient of a connection request. The one or more user profiles displayed in a suggested connections box may be chosen at random from user profiles that have interacted with the viewing user&#39;s connections, or the displayed user profiles may be chosen from the user profiles that have received the most interactions from the viewing user&#39;s connections. For example, the user profiles displayed in the referred connections box  1140 B may be the user profiles that have been most referred by the viewing user&#39;s connections. 
       Additional Considerations 
       [0059]    The disclosed embodiments beneficially allow for more efficient display of user profiles in a default network computing system. The use of attributes to automatically sort user profiles in the default network computing system into a default network of user profiles having similar attributes to the viewing user increases the relevance of user profiles displayed for connection. Due to the use of automatically chosen attributes, a viewing user is presented with relevant options without having to manually determine attributes or characteristics to select to attain the desired categories of users. The ability to manually filter user profiles in a directory enables a viewing user to browse user profiles that have desired attributes or characteristics. Additionally, the default networks created are constantly changing and updating in response to the changes in user profile information or addition of new user profiles. 
         [0060]    Throughout this specification, plural instances may implement components, operations, or structures described as a single instance. Although individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed concurrently, and nothing requires that the operations be performed in the order illustrated. Structures and functionality presented as separate components in example configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter herein. 
         [0061]    Certain embodiments are described herein as including logic or a number of components, modules, or mechanisms, for example, as illustrated in  FIGS. 1 ,  2 , and  3 . Modules may constitute either software modules (e.g., code embodied on a machine-readable medium or in a transmission signal) or hardware modules. A hardware module is tangible unit capable of performing certain operations and may be configured or arranged in a certain manner. In example embodiments, one or more computer systems (e.g., a standalone, client or server computer system) or one or more hardware modules of a computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as a hardware module that operates to perform certain operations as described herein. 
         [0062]    In various embodiments, a hardware module may be implemented mechanically or electronically. For example, a hardware module may comprise dedicated circuitry or logic that is permanently configured (e.g., as a special-purpose processor, such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC)) to perform certain operations. A hardware module may also comprise programmable logic or circuitry (e.g., as encompassed within a general-purpose processor or other programmable processor) that is temporarily configured by software to perform certain operations. It will be appreciated that the decision to implement a hardware module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations. 
         [0063]    The various operations of example methods described herein may be performed, at least partially, by one or more processors, e.g., processor  102 , that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions. The modules referred to herein may, in some example embodiments, comprise processor-implemented modules. 
         [0064]    The one or more processors may also operate to support performance of the relevant operations in a “cloud computing” environment or as a “software as a service” (SaaS). For example, at least some of the operations may be performed by a group of computers (as examples of machines including processors), these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., application program interfaces (APIs).) 
         [0065]    The performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the one or more processors or processor-implemented modules may be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other example embodiments, the one or more processors or processor-implemented modules may be distributed across a number of geographic locations. 
         [0066]    Some portions of this specification are presented in terms of algorithms or symbolic representations of operations on data stored as bits or binary digital signals within a machine memory (e.g., a computer memory). These algorithms or symbolic representations are examples of techniques used by those of ordinary skill in the data processing arts to convey the substance of their work to others skilled in the art. As used herein, an “algorithm” is a self-consistent sequence of operations or similar processing leading to a desired result. In this context, algorithms and operations involve physical manipulation of physical quantities. Typically, but not necessarily, such quantities may take the form of electrical, magnetic, or optical signals capable of being stored, accessed, transferred, combined, compared, or otherwise manipulated by a machine. It is convenient at times, principally for reasons of common usage, to refer to such signals using words such as “data,” “content,” “bits,” “values,” “elements,” “symbols,” “characters,” “terms,” “numbers,” “numerals,” or the like. These words, however, are merely convenient labels and are to be associated with appropriate physical quantities. 
         [0067]    Unless specifically stated otherwise, discussions herein using words such as “processing,” “computing,” “calculating,” “determining,” “presenting,” “displaying,” or the like may refer to actions or processes of a machine (e.g., a computer) that manipulates or transforms data represented as physical (e.g., electronic, magnetic, or optical) quantities within one or more memories (e.g., volatile memory, non-volatile memory, or a combination thereof), registers, or other machine components that receive, store, transmit, or display information. 
         [0068]    As used herein any reference to “one embodiment” or “an embodiment” means that a particular element, feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment. 
         [0069]    Some embodiments may be described using the expression “coupled” and “connected” along with their derivatives. For example, some embodiments may be described using the term “coupled” to indicate that two or more elements are in direct physical or electrical contact. The term “coupled,” however, may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other. The embodiments are not limited in this context. 
         [0070]    As used herein, the terms “comprises,” “comprising,” “includes,” “including,” “has,” “having” or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a process, method, article, or apparatus that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Further, unless expressly stated to the contrary, “or” refers to an inclusive or and not to an exclusive or. For example, a condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present). 
         [0071]    In addition, use of the “a” or “an” are employed to describe elements and components of the embodiments herein. This is done merely for convenience and to give a general sense of the invention. This description should be read to include one or at least one and the singular also includes the plural unless it is obvious that it is meant otherwise. 
         [0072]    Upon reading this disclosure, those of skill in the art will appreciate still additional alternative structural and functional designs for a system and a process for creating a default network based on user attributes through the disclosed principles herein. Thus, while particular embodiments and applications have been illustrated and described, it is to be understood that the disclosed embodiments are not limited to the precise construction and components disclosed herein. Various modifications, changes and variations, which will be apparent to those skilled in the art, may be made in the arrangement, operation and details of the method and apparatus disclosed herein without departing from the spirit and scope defined in the appended claims.